Word2vec可以将词语转换为高维向量空间中的向量表示,它能揭示上下文关系。首先使用word2vec,将其训练得到词向量作为特征权重,然后根据情感词典和词性的两种特征选择方法筛选出有价值的特征,最后引入SVM训练和预测,最终达到情感分类的目的。使用word2vec会得到vectors.bin词向量模型文件,对于文本聚类而言,word2vec提供了一个内部命令来获得近义词列表。我们只需要输入distance 命令便可实现词语之间相似性的比较,继而达到聚类目的。
./distance vectors.bin
训练完成后,输入要聚类的词便可以得到与输入词语义最接近的 词列表与余弦距离。它包含正面情感词语,负面情感词语,正面评价词语和负面评价词语四个文件。
情感词典构建:中国知网(HowNet)中文情感分析用词语集;
SO-PMI:
PMI指的是点互信息 PMI(a, b)=p(a,b)/(p(a)p(b)) 假设有一个句子集合,总量为N 出现a次数为A,出现b次数为B a和b同时出现在同一句话中的次数为C 则有p(a)=A/N, p(b)=B/N, p(a,b)=C/N 带入到公式里就算出PMI了。
1、首先使用庖丁分词工具将微博内容分解成分离的单词,然后我们按照使用70%的数据作为训练集并得到一个扩展的微博情感词典,使用SO-PMI算法进行词语情感倾向性分析
使用情感词典和联系信息分析文本情感具有很好的粒度和分析精确度。
情感分析的新方法
情感分析是一种常见的自然语言处理(NLP)方法的应用,特别是在以提取文本的情感内容为目标的分类方法中。通过这种方式,情感分析可以被视为利用一些情感得分指标来量化定性数据的方法。尽管情绪在很大程度上是主观的,但是情感量化分析已经有很多有用的实践,比如企业分析消费者对产品的反馈信息,或者检测在线评论中的差评信息。
最简单的情感分析方法是利用词语的正负属性来判定。句子中的每个单词都有一个得分,乐观的单词得分为 +1,悲观的单词则为 -1。然后我们对句子中所有单词得分进行加总求和得到一个最终的情感总分。很明显,这种方法有许多局限之处,最重要的一点在于它忽略了上下文的信息。例如,在这个简易模型中,因为“not”的得分为 -1,而“good”的得分为 +1,所以词组“not good”将被归类到中性词组中。尽管词组“not good”中包含单词“good”,但是人们仍倾向于将其归类到悲观词组中。
另外一个常见的方法是将文本视为一个“词袋”。我们将每个文本看出一个1xN的向量,其中N表示文本词汇的数量。该向量中每一列都是一个单词,其对应的值为该单词出现的频数。例如,词组“bag of bag of words”可以被编码为 [2, 2, 1]。这些数据可以被应用到机器学习分类算法中(比如罗吉斯回归或者支持向量机),从而预测未知数据的情感状况。需要注意的是,这种有监督学习的方法要求利用已知情感状况的数据作为训练集。虽然这个方法改进了之前的模型,但是它仍然忽略了上下文的信息和数据集的规模情况。
Word2Vec 和 Doc2Vec
最近,谷歌开发了一个叫做 Word2Vec 的方法,该方法可以在捕捉语境信息的同时压缩数据规模。Word2Vec实际上是两种不同的方法:Continuous Bag of Words (CBOW) 和 Skip-gram。CBOW的目标是根据上