تحليل المشاعر على تويتر بإستخدام التعلم الآلي

Twitter هو أحد منصات التواصل الإجتماعي حيث يتمتع الأشخاص بحرية مشاركة آرائهم حول أي موضوع. نرى أحيانًا مناقشة قوية على Twitter حول رأي شخص ما تؤدي أحيانًا إلى مجموعة من التغريدات السلبية.

مع وضع ذلك في الإعتبار، إذا كنت تريد معرفة كيفية إجراء تحليل المشاعر على Twitter، فهذه المقالة مناسبة لك. في هذه المقالة، سوف أطلعك على مهمة تحليل المشاعر على Twitter بإستخدام Python.

1- تحليل المشاعر على تويتر

تحليل المشاعر Sentiment analysis مهمة جدا في معالجة اللغة الطبيعية. يجب على جميع منصات وسائل التواصل الإجتماعي مراقبة مشاعر المشاركين في المناقشة. نرى في الغالب آراء سلبية على Twitter عندما تكون المناقشة سياسية. لذلك، يجب أن تستمر كل منصة في تحليل المشاعر للعثور على نوع الأشخاص الذين ينشرون الكراهية والسلبية على نظامهم الأساسي.

بالنسبة لمهمة تحليل المشاعر على Twitter، قمت بجمع مجموعة بيانات من Kaggle تحتوي على تغريدات حول مناقشة طويلة داخل مجموعة من المستخدمين. مهمتنا هنا هي تحديد عدد التغريدات السلبية والإيجابية حتى نتمكن من إعطاء نتيجة. لذلك، في القسم أدناه، سأقدم لك مهمة تحليل المشاعر على Twitter بإستخدام Python.

2- تحليل المشاعر على Twitter بإستخدام Python

لنبدأ مهمة تحليل المشاعر على Twitter من خلال إستيراد مكتبات Python ومجموعة البيانات اللازمة:

import pandas as pd
import numpy as np
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.model_selection import train_test_split
from sklearn.tree import DecisionTreeClassifier
import re
import nltk
import nltk
 
 
data = pd.read_csv("https://raw.githubusercontent.com/amankharwal/Website-data/master/twitter.csv")
print(data.head())

يحتوي عمود التغريدات tweet column في مجموعة البيانات أعلاه على التغريدات التي نحتاج إلى إستخدامها لتحليل مشاعر المشاركين في المناقشة. ولكن للمضي قدمًا، يتعين علينا تنظيف الكثير من الأخطاء والرموز الخاصة الأخرى لأن هذه التغريدات تحتوي على الكثير من الأخطاء اللغوية. إذن إليك كيف يمكننا تنظيف عمود التغريدة:

nltk.download('stopwords')
stemmer = nltk.SnowballStemmer("english")
from nltk.corpus import stopwords
import string
stopword=set(stopwords.words('english'))
 
 
def clean(text):
    text = str(text).lower()
    text = re.sub('\[.*?\]', '', text)
    text = re.sub('https?://\S+|www\.\S+', '', text)
    text = re.sub('<.*?>+', '', text)
    text = re.sub('[%s]' % re.escape(string.punctuation), '', text)
    text = re.sub('\n', '', text)
    text = re.sub('\w*\d\w*', '', text)
    text = [word for word in text.split(' ') if word not in stopword]
    text=" ".join(text)
    text = [stemmer.stem(word) for word in text.split(' ')]
    text=" ".join(text)
    return text
data["tweet"] = data["tweet"].apply(clean)

الآن، الخطوة التالية هي حساب درجات المشاعر لهذه التغريدات وتعيين تسمية للتغريدات على أنها إيجابية positive أو سلبية negative أو محايدة neutral. إليك كيفية حساب درجات المشاعر في التغريدات:

from nltk.sentiment.vader import SentimentIntensityAnalyzer
nltk.download('vader_lexicon')
sentiments = SentimentIntensityAnalyzer()
data["Positive"] = [sentiments.polarity_scores(i)["pos"] for i in data["tweet"]]
data["Negative"] = [sentiments.polarity_scores(i)["neg"] for i in data["tweet"]]
data["Neutral"] = [sentiments.polarity_scores(i)["neu"] for i in data["tweet"]]

الآن سأختار فقط الأعمدة من هذه البيانات التي نحتاجها لبقية مهمة تحليل المشاعر على Twitter:

data = data[["tweet", "Positive", 
             "Negative", "Neutral"]]
print(data.head())

دعنا الآن نلقي نظرة على التصنيف الأكثر شيوعًا المخصص للتغريدات وفقًا لدرجات المشاعر:

x = sum(data["Positive"])
y = sum(data["Negative"])
z = sum(data["Neutral"])
 
def sentiment_score(a, b, c):
    if (a > b) and (a > c):
        print('Positive <img draggable="false" role="img" class="emoji" alt="" src="https://s.w.org/images/core/emoji/14.0.0/svg/1f60a.svg"> ')
    elif (b > a) and (b > c):
        print('Negative <img draggable="false" role="img" class="emoji" alt="😠" src="https://s.w.org/images/core/emoji/14.0.0/svg/1f620.svg"> ')
    else:
        print('Neutral <img draggable="false" role="img" class="emoji" alt="🙂" src="https://s.w.org/images/core/emoji/14.0.0/svg/1f642.svg"> ')

sentiment_score(x, y, z)

النتيجة:

Neutral <img draggable="false" role="img" class="emoji" alt="🙂" src="https://s.w.org/images/core/emoji/14.0.0/svg/1f642.svg"> 

لذا فإن معظم التغريدات محايدة، ما يعني أنها ليست إيجابية ولا سلبية. الآن دعنا نلقي نظرة على إجمالي درجات المشاعر:

print("Positive: ", x)
print("Negative: ", y)
print("Neutral: ", z)

النتيجة:

Positive:  2880.086000000009
Negative:  7201.020999999922
Neutral:  14696.887999999733

مجموع التغريدات المحايدة أعلى بكثير من السلبية والإيجابية، لكن من بين جميع التغريدات السلبية أكبر من التغريدات الإيجابية، لذلك يمكننا القول إن معظم الآراء سلبية.

3- الملخص

هذه هي الطريقة التي يمكنك بها أداء مهمة تحليل المشاعر على Twitter بإستخدام لغة برمجة Python. تحليل المشاعر مهمة جدا في معالجة اللغة الطبيعية. تحتاج جميع منصات وسائل التواصل الاجتماعي إلى التحقق من مشاعر الأشخاص المشاركين في المناقشة. آمل أن تكون قد أحببت هاته المقالة. نلتقي في مقالات أخرى إن شاء الله.


المصادر ومقالات أخرى ذات صلة بالموضوع

Twitter Sentiment Analysis With Python | Introduction & Techniques (analyticsvidhya.com) (مقالة أفضل مع شرح أكثر تفصيلا)

Text Mining, Scraping and Sentiment Analysis with R | Udemy (دورة على يودمي)

Twitter Sentiment Analysis Using Machine Learning Algorithms: A Case Study | IEEE Conference Publication | IEEE Xplore

مشروع3: تحليل المشاعر على تويتر باستخدام التعلم الالي – التعلم العميق بالعربي || DL بالعربي || الدكتور علاء طعيمة (dlarabic.com)


مقالات أخرى

مستقبل الطائرات بدون طيار في الطاقة الشمسية: المراقبة-الصيانة-تحسين الإنتاجية

الطائرات بدون طيار ومكافحة الحرائق: تحديات وفرص جديدة للكشف عن الحرائق وإخمادها

الكاتب

مقالات متعلقة

تنمية خوارزميات التعلم ا

في عصر الابتكار التكنولوجي وا...

باحثة كفيفة تبتكر حقيبة

1- المقدمة يشعر بعض الأشخاص ب...

الروبوتات المنزلية وطري

1- ما هو الروبوت؟ يُقصد بالرو...

اترك تعليقا