المزيد من مشاريع تحليل المشاعر...المزيد من مقالات تحليل المشاعر....تحليل المشاعرمشاريع تحليل المشاعرمقالات تحليل المشاعر

أضافة تسميات إلى مجموعة بيانات لتحليل المشاعر

يتعين على عالم البيانات قضاء الكثير من الوقت في إعداد مجموعة بيانات لأي مهمة في علم البيانات لأن البيانات التي نحصل عليها بها الكثير من الأخطاء، وفي بعض الأحيان لا يتم تصنيفها. تعد إضافة تسميات labels إلى مجموعة بيانات مهمة جدًا قبل أن تتمكن من استخدامها لحل مشكلة ما. واحدة من تلك المشاكل التي تكون فيها إضافة تسميات إلى مجموعة بيانات مهمة للغاية هي تحليل المشاعر sentiment analysis، حيث تحصل على البيانات كمراجعات أو تعليقات من المستخدمين، وتحتاج إلى إضافة تسميات إليها لإعدادها لتحليل المشاعر. لذلك، إذا كنت تريد معرفة كيفية تصنيف البيانات غير المسماة unlabeled data، فهذه المقالة مناسبة لك. في هذه المقالة، سأقدم برنامجًا تعليميًا حول كيفية إضافة تسميات إلى مجموعة بيانات لتحليل المشاعر باستخدام بايثون.

أضافة تسميات إلى مجموعة بيانات لتحليل المشاعر

لإضافة تسميات إلى البيانات غير المسماة لتحليل المشاعر، يمكننا استخدام نموذج فيدر العاطفي Vader sentiment model الذي يعد أحد أفضل الأساليب لتحليل المشاعر. يمكننا الوصول إليها باستخدام مكتبة NLTK في بايثون. دعنا نستورد مكتبات بايثون الضرورية ومجموعة بيانات غير مسماة نحتاجها لمهمة إضافة تسميات إلى البيانات لتحليل المشاعر:

import nltk
from nltk.sentiment.vader import SentimentIntensityAnalyzer
nltk.download("vader_lexicon")
import pandas as pd
data = pd.read_csv("https://raw.githubusercontent.com/amankharwal/Website-data/master/reviews%20data.csv")
data = data.dropna()
print(data.head())

لذلك تحتوي مجموعة البيانات هذه على عمود واحد فقط، وسأنتقل الآن إلى مهمة إضافة تسميات إلى مجموعة البيانات. سأبدأ بإضافة أربعة أعمدة جديدة إلى مجموعة البيانات هذه على أنها ايجابية Positive، وسلبية Negative، ومحايدة Neutral، ومركبة عن طريق حساب درجات المشاعر sentiment scores للعمود الذي يحتوي على بيانات نصية:

sentiments = SentimentIntensityAnalyzer()
data["Positive"] = [sentiments.polarity_scores(i)["pos"] for i in data["Review"]]
data["Negative"] = [sentiments.polarity_scores(i)["neg"] for i in data["Review"]]
data["Neutral"] = [sentiments.polarity_scores(i)["neu"] for i in data["Review"]]
data['Compound'] = [sentiments.polarity_scores(i)["compound"] for i in data["Review"]]
data.head()

كما ترى في الإخراج أعلاه، قمنا بإضافة أربعة أعمدة جديدة تحتوي على درجات المشاعر في عمود المراجعة Review column. الآن المهمة التالية هي إضافة تسميات عن طريق تصنيف هذه الدرجات. وفقًا لمعايير الصناعة، إذا كانت الدرجة المركبة للمشاعر أكثر من 0.05، فسيتم تصنيفها على أنها إيجابية، وإذا كانت النتيجة المركبة أقل من -0.05 ، يتم تصنيفها على أنها سلبية ، وإلا فهي محايدة. لذلك باستخدام هذه المعلومات، سأضيف عمودًا جديدًا في مجموعة البيانات هذه والذي سيتضمن جميع تسميات المشاعر:

score = data["Compound"].values
sentiment = []
for i in score:
    if i >= 0.05 :
        sentiment.append('Positive')
    elif i <= -0.05 :
        sentiment.append('Negative')
    else:
        sentiment.append('Neutral')
data["Sentiment"] = sentiment
data.head()

دعنا الآن نلقي نظرة على تكرارات frequencies جميع التصنيفات:

print(data["Sentiment"].value_counts())

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

data.to_csv("new_data.csv")

الملخص

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

بواسطة
thecleverprogrammer
المصدر
Add Labels to a Dataset for Sentiment Analysis

د. علاء طعيمة

كلية علوم الحاسوب وتكنولوجيا المعلومات / جامعة القادسية / العراق

مقالات ذات صلة

اترك تعليقاً

لن يتم نشر عنوان بريدك الإلكتروني. الحقول الإلزامية مشار إليها بـ *

زر الذهاب إلى الأعلى