تحليل المشاعر
سوف نستعرض طرق تحليل المشاعر (sentiments analysis) بإستخدام البرنامج آر R. في البداية سوف نقوم بتحميل بعض الحزم (packages) التي نحتاجها وهي:
install.packages("tm")
install.packages("wordcloud")
install.packages("qdap")
install.packages("syuzhet")
install.packages("ggplot2")
الحزمة qdap تتطلب وجود نسخة من Java مثبته على جهازك والتي يمكنك الحصول عليها من خلال الضغط على الرابط:
https://www.java.com/en/download/
ثم بعد ذلك نقوم بإستدعاء نسخة الجافا بإستخدام الكود:
# 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 مرة أخرى. ثم فعل هذه الحزم كما يلي:
library(tm)
library(wordcloud)
library(qdap)
library(syuzhet)
library(ggplot2)
الآن نستخدم الدالة (freq_terms) وهي تقوم بتحديد الكلمات الأكثر تكراراً، وكذلك نستخدم الدالة (wordcloud) وهي تقوم برسم سحابة الكلمات كما يلي:
Freq <- freq_terms(mydata, at.least = 1)
wordcloud(Freq$WORD, Freq$FREQ, colors = Freq$FREQ, max.words = 200)
ونلاحظ أن الكلمات في السحابة هي الكلمات شائعة الإستخدام والمتكررة عند كتابة أي جملة باللغة الإنجليزية. هذه النتيجة طبيعية لأننا لم نقوم بتنظيف البيانات. وبالتالي سوف نستخدم الدوال التالية لتنظيف البيانات:
وصفها الدالة
tolower تغيير الأحرف الصغيرة الى كبيرة أو العكس
removeWords حذف كلمات محددة
removePunctuation حذف علامات الترقيم
removeNumbers حذف الأرقام
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)
ثم بعد ذلك سوف نقوم برسم سحابة الكلمات مرة أخرى:
Freq <- freq_terms(Clean_Data , at.least = 1)
wordcloud(Freq$WORD, Freq$FREQ, colors = Freq$FREQ, max.words = 200)