分析文本中的情感
这个例子展示了如何使用价感字典和情感推理器(VADER)算法进行情感分析。
VADER算法使用一个带注释的单词列表(情感词典),其中每个单词都有相应的情感评分。VADER算法还利用单词列表来修改文本中后续单词的分数:
助推器-词或n-grams,促进进行符号的情绪。例如,像“absolutely”和“amazing”这样的词。
Dampeners -单词或n-grams,抑制进行符号的情绪。例如,“hardly”和“somewhat”。
否定-词,否定的感情进行符号。例如,像"not"和"isn't"这样的单词。
要评估文本中的情绪,请使用vaderSentimentScores
函数。
加载数据
提取文件中的文本数据weekendUpdates.xlsx
使用readtable
.该文件weekendUpdates.xlsx
包含包含标签的状态更新“#周末”
而且“#假期”
.
文件名=“weekendUpdates.xlsx”;TBL =可读(文件名,“TextType”,“字符串”);头(台)
ID TextData __ _________________________________________________________________________________ 1”结婚纪念日快乐!下一站:巴黎!哈哈,在海滩上烧烤,进入自鸣得意的模式!4“和我一起说——我需要一个#假期!!”多年来第一次在家放松一下…这就是生活!“周末”6“考试前的最后一个周末”7“真不敢相信我的假期结束了,太不公平了”8“这个周末等不及打网球了”
从文本数据创建一个标记化文档数组,并查看前几个文档。
str = tbl.TextData;documents = tokenizedDocument(str);文档(1:5)
ans = 5x1 tokenizedDocument: 11 token:周年快乐!下一站:巴黎!度假16个代币:哈哈,在海滩上烧烤,进入自鸣得意模式!9个象征:为周六晚上做好准备#yum #周末13个象征:和我一起说——我需要一个#假期!!!多年来第一次在家放松一下…这就是生活!#周末
评估情绪
方法评估标记化文档的情绪vaderSentimentLexicon
函数。得分接近1表示积极,得分接近-1表示消极,得分接近0表示中立。
compoundScores = vaderSentimentScores(文档);
查看前几个文档的分数。
compoundScores (1:5)
ans =5×10.4738 0.9348 0.6705 -0.5067 0.7345
在词云中想象带有积极和消极情绪的文本。
idx = compoundScores >;strPositive = str(id);strNegative = str(~idx);图subplot(1,2,1) wordcloud(strPositive);标题(“积极情绪”) subplot(1,2,2) wordcloud(strNegative);标题(“负面情绪”)
另请参阅
vaderSentimentScores
|ratioSentimentScores
|tokenizedDocument