موقع د. عزيز الجعيد
  • الرئـيـسـية

  • الأقسام

    • علم البيانات والذكاء الإصطناعي

    • ذكاء الأعمال

    • لغة البرمجة بايثون

    • مقالات متنوعـة

    • لغة البرمجة آر R

    • الإحــــــصــــــاء

    • البيانات المفتوحة

  • عـنــي

  • تواصل معي

علم البيانات والذكاء الاصطناعي

  • الرئـيـسـية

  • الأقسام

    • علم البيانات والذكاء الإصطناعي

    • ذكاء الأعمال

    • لغة البرمجة بايثون

    • مقالات متنوعـة

    • لغة البرمجة آر R

    • الإحــــــصــــــاء

    • البيانات المفتوحة

  • عـنــي

  • تواصل معي

مقدمة في تحليل المشاعر بإستخدام لغة البرمجة آر R

12/04/2018 | لغة البرمجة آر R | 8 تعليقات

سوف نستعرض طرق تحليل المشاعر (sentiments analysis) بإستخدام البرنامج آر R. في البداية سوف نقوم بتحميل بعض الحزم (packages) التي نحتاجها وهي:

In:
install.packages("tm")
install.packages("wordcloud") 
install.packages("qdap")
install.packages("syuzhet")
install.packages("ggplot2")

الحزمة qdap تتطلب وجود نسخة من Java مثبته على جهازك والتي يمكنك الحصول عليها من خلال الضغط على الرابط:

تحميل Java

 ثم بعد ذلك نقوم بإستدعاء نسخة الجافا بإستخدام الكود:

In:
# for 64-bit
Sys.setenv(JAVA_HOME='C:\\Program Files\\Java\\filename')
# for 32-bit
Sys.setenv(JAVA_HOME='C:\\Program Files (x86)\\Java\\filename')

حيث يتم إستبدال filename بأسم ملف نسخة الجافا الموجود على جهازك. ثم بعد ذلك قم بتحميل الحزمة qdap مرة أخرى. ثم فعل هذه الحزم كما يلي:

In:
library(tm)
library(wordcloud) 
library(qdap)
library(syuzhet)
library(ggplot2)

الآن نستخدم الدالة (freq_terms) وهي تقوم بتحديد الكلمات الأكثر تكراراً، وكذلك نستخدم الدالة (wordcloud) وهي تقوم برسم سحابة الكلمات كما يلي:

In:
Freq = freq_terms(mydata, at.least = 1) 
wordcloud(Freq$WORD, Freq$FREQ, colors = Freq$FREQ, max.words = 200)

ونلاحظ أن الكلمات في السحابة هي الكلمات شائعة الإستخدام والمتكررة عند كتابة أي جملة باللغة الإنجليزية. هذه النتيجة طبيعية لأننا لم نقوم بتنظيف البيانات. وبالتالي سوف نستخدم الدوال التالية لتنظيف البيانات:

 الدالة  وصفها
 tolower  تغيير الأحرف الصغيرة الى كبيرة أو العكس
 removeWords حذف كلمات محددة
 removePunctuation حذف علامات الترقيم
removeNumbers  حذف الأرقام

كما يلي:

In:
Clean_Data = tolower(mydata)
Removed_words = c("a", "that","and","the","it", "on","so","have", "of","for","be","this","to","is","in", stopwords("en"))
Clean_Data = removeWords(Clean_Data, Removed_words)
Clean_Data = removePunctuation(Clean_Data)
Clean_Data = removeNumbers(Clean_Data)

ثم بعد ذلك سوف نقوم برسم سحابة الكلمات مرة أخرى:

In:
Freq = freq_terms(Clean_Data , at.least = 1) 
wordcloud(Freq$WORD, Freq$FREQ, colors = Freq$FREQ, max.words = 200)

نلاحظ أنه الكلمات في سحابة الكلمات أصبحت ذات مدلول وتعطي أشارة عن طبيعة المشاعر في البيانات. الأن سوف ننتقل الى تحليل المشاعر بإستخدام الدالة (get_nrc_sentiment) والتي تستخدم قاموس NRC sentiment للبحث عن وجود مستويان من المشاعر في البيانات (النص) وهي positive و negative. كما يمكن البحث عن وجود ثمان مستويات من المشاعر وهي anger, anticipation, disgust, fear, joy, sadness, surprise, trust. سوف نستخدم الكود التالي:

In:
Sentiment_Analysis = get_nrc_sentiment(Freq$WORD)
Sentiment_Analysis = cbind("Words" = Freq$WORD, Sentiment_Analysis)
Sentiment_Score = data.frame("Score" = colSums(Sentiment_Analysis[10:11])) 
Total_Sentiment = cbind("Sentiments" = rownames(Sentiment_Score), Sentiment_Score) 
rownames(Total_Sentiment) = NULL 
ggplot(data = Total_Sentiment, aes(x = Sentiments, y = Score)) + geom_bar(stat = "identity", aes(fill = Sentiments))

كما يمكن التغيير في الكود السابق كما يلي:

In:
Sentiment_Analysis = get_nrc_sentiment(Freq$WORD)
Sentiment_Analysis = cbind("Words" = Freq$WORD, Sentiment_Analysis)
Sentiment_Score = data.frame("Score" = colSums(Sentiment_Analysis[2:9])) 
Total_Sentiment = cbind("Sentiments" = rownames(Sentiment_Score), Sentiment_Score) 
rownames(Total_Sentiment) = NULL 
ggplot(data = Total_Sentiment, aes(x = Sentiments, y = Score)) + geom_bar(stat = "identity", aes(fill = Sentiments))

لتصبح النتيجة:

 

* المرجع: موقع planet analytics

جميع الحقوق الفكرية لهذا المقال محفوظة © موقع د. عزيز، يمنع إعادة نشره في موقع آخر

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

  • برنامج آر R

    البرنامج الإحصائي آر R هو واحد من أشهر البرامج الإحصائية. هذا البرنامج يعتمد على لغة البرمجة R والتي قام بتطويرها كلاً... برنامج آر R
    اقرأ المزيد
  • آر استوديو (RStudio)

    آر استوديو هو بيئة تشغيل للبرنامج الإحصائي آر R يحوي مجموعة من النوافد والأدوات المصممة بشكل رائع والتي تساعد على... آر استوديو (RStudio)
    اقرأ المزيد
  • مقدمة في لغة البرمجة آر R

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

التعليقات 8

  1. Othman بتاريخ أبريل 15, 2018 - 7:21 م

    مرحبا دكتور،
    هل ممكن استخدام الاسلوب بالاعلى لتحليل المشاعر للتغريدات الوراده بالغة العربيه؟

  2. د. عزيز الجعيد بتاريخ أبريل 20, 2018 - 1:42 م

    نعم … ولكن مع بعض التغييرات التي سوف يتم مناقشتها في موضوع لاحق

  3. هند بتاريخ مايو 18, 2018 - 1:40 م

    هلا دكتور،، شكرا على الشرح ،، ممتاز ،،، حابه اسأل متى ستناقش كيفية تحليل البيانات في اللغه العربيه
    مع جزيل الشكر

  4. د. عزيز الجعيد بتاريخ مايو 18, 2018 - 6:16 م

    مازلت أعمل على حل بعض المشاكل المتعلقة بهذا الموضوع.

  5. khalid بتاريخ يناير 30, 2019 - 7:09 ص

    Sys.setenv(JAVA_HOME=’C:\\Program Files\\Java\\filename’)
    هل المقصود في filename اسم المجلد كامل jdk-11.0.2
    هل الاسناد صحيح
    Sys.setenv(JAVA_HOME=’C:\\Program Files\\Java\\jdk-11.0.2′)

    لدي خطا في الخطوة و الخطوات التي بعدها
    Freq <- freq_terms(Clean_Data , at.least = 1)
    wordcloud(Freq$WORD, Freq$FREQ, colors = Freq$FREQ, max.words = 200)
    و الخطوات الي بعدها

  6. خالد بتاريخ يناير 30, 2019 - 7:17 ص

    لدي مشكلة في الخطوة
    Freq <- freq_terms(Clean_Data , at.least = 1)
    wordcloud(Freq$WORD, Freq$FREQ, colors = Freq$FREQ, max.words = 200)

    هل فيه طريقة لحفظ البيانات بعد جلبها من توتر في ملف csv

  7. د. عزيز الجعيد بتاريخ فبراير 15, 2019 - 11:57 ص

    نعم، شاهد الرابط:
    https://aziz-blog.com/?p=10199

  8. nouf بتاريخ نوفمبر 6, 2019 - 11:09 ص

    السلام عليكم د.عزيز
    ابي استفسر بخصوص تحليل المشاعر بتويتر بإستخدام اللغة العربية ؟
    هل ستطرح هذا الموضوع
    او اذا في نواقع تشرح كيفية القيام بها اتمنى تزويدنا بها

    وشكرا لك وعلى مجهودك الاكل من رائع

شارك بتعليقك

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


The reCAPTCHA verification period has expired. Please reload the page.

د. عزيز عوض الله الجعيد
دكتوراه في الإحصاء، عالم بيانات، مبرمج، مهتم في التحليل المتقدم، والبيانات الضخمة والذكاء الاصطناعي، لمزيد من المعلومات أضغط هنا

  • YouTube
جميع الحقوق محفوظة © موقع د. عزيز