r语言上机文本分析与词云绘制_R语言和文本挖掘 :情感分析(1)

前面的文章介绍了整洁文本和标记化,并且统计了词频和词频之间的相关性。但是,仅仅知道某些词汇出现的频率是不够的。正如我们自己在阅读一篇文章或者一本书的时候,能体会到作者的喜怒哀乐,我们也想知道如何利用R语言检测文本表达的含义和对事物的看法,挖掘文本中的观点。这就是情感分析。

66f23fdc2894616bf99d09de6ef9247d.png

通常,如果一篇文章中充满了赞美(或者批判)的词汇,那么我们就知道这篇文章赞美(或者批判)的观点。这是一种简单的情感分析的方法。但这并非唯一的方法,我们还有其它的方法。接下来,我们就来介绍如何用R语言实现情感分析。

现在有很多方法可以用来分析文本的观点或者情感。在tidytext程序包中,有一些情感词典,常用的是以下三个:

  • AFINN:对单词打分,介于-5和+5之间。分数越高,词汇越正面。

  • bing:这个是Bing Liu等人开发的。他有一本书,叫做Sentiment Analysis: mining sentiments, opinions, and emotions。有兴趣的朋友可以读一下。

  • nrc:nrc情感词典包括英语中8种感情(生气、恐惧、希望、信任、惊奇、悲伤、高兴和反感)。

这三个词典都建立在单词之上。它们根据正面感情和负面感情对英语词汇分类。下面,我们来看一下如何使用这三个词典。

首先,我们需要下载textdata程序包,并且引用它和tidytext程序包。

install.packages("textdata")library(textdata)library(tidytext)

接下来,我们就可以用get_sentiments()函数调用这三个词典。

get_sentiments("afinn")# A tibble: 2,477 x 2   word      value          1 abandon      -2 2 abandoned    -2 3 abandons     -2 4 abducted     -2 5 abduction    -2 6 abductions   -2 7 abhor        -3 8 abhorred     -3 9 abhorrent    -310 abhors        -3# ... with 2,467 more rows

我们可以看出affin是如何对每一个单词打分的。看起来a开头的这些单词得分都不高。

再来看bing,我们同样可以用get_sentiments()函数调用。同affin类似,以a开头的单词都在表达负面信息。

get_sentiments("bing")# A tibble: 6,786 x 2   word       sentiment           1 2-faces    negative 2 abnormal   negative 3 abolish    negative 4 abominable negative 5 abominably negative 6 abominate  negative 7 abomination negative 8 abort      negative 9 aborted    negative10 aborts      negative# ... with 6,776 more rows

相比之下,nrc对单词的分类显得更加有意思。例如,算盘(Abacus)表示信任,看来信心建立在算清楚的基础上。另外,abandon这个单词可以表达多种情感。

get_sentiments("nrc")# A tibble: 13,901 x 2   word       sentiment           1 abacus     trust    2 abandon    fear     3 abandon    negative 4 abandon    sadness  5 abandoned  anger    6 abandoned  fear     7 abandoned  negative 8 abandoned  sadness  9 abandonment anger   10 abandonment fear    # ... with 13,891 more rows

总得来说,这些词典对词语的情感分析似乎也不是很到位。我们不能完全依赖于它们。而且,任何语言会随着时间,发展和变化。当我们用21世纪对词汇的理解,去解释一些过去的著作的时候,就会产生差异。

除了这三个词典,还有一些特定领域(domain-specific)的词典,它们可以用来解释一些专业词汇。例如,金融和医学中就有很多专业词汇。


版权声明:本文为weixin_33570610原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。