新闻资讯

深圳私人调查公司

PMI(w, pos) = log2((freq(w, pos) * N) / (freq(w) * freq(pos))), (2)

➤ 这里freq(w,pos)是单词w在正向情感的tweet中出现的次数,freq(w)是单词w在语料中出现的总次数,freq(pos)是正向情感的tweet中单词的总数,N是语料中的单词总数。PMI(w,neg)以类似的方式计算。因此,方程式1等同于:

SS(w) = log2((freq(w, pos) * freq(neg)) / (freq(w, neg) * freq(pos))), (3)

我使用的电影评论数据是从斯坦福(Stanford)下载的,是来自IMDB的50000条评论的数据集。我在训练和测试中分别使用了25000条评论作为数据集,其中包含了均等数量的正向和负向的评论。我使用SAS文本分析软件将评论解析成词,并编写了SAS程序来计算情感分值。

在实验中,我用训练数据集来提取情感词,用测试数据集来评估模型在不同情感截断值下的分类效果,情感分值的截断值从0到2,增量为0.25。数据驱动的学习方法经常会有过度拟合的问题,我利用测试数据过滤掉了所有情感分数绝对值低于0.75的弱预测词。从图1中可以得知,当截断值低于0.75时,模型在测试数据上的准确率会有明显下降。

图1 基于情感分数截断值的情感分类准确率

最后,我得到了一个由14397个情感词组成的列表,即从电影评论中所提取出来的7850个正向词和6547个负向词。两个情感类别的前50个词如图2所示。

图2 前50个情感词的情感分值

现在我已经自动提取出了情感词表,但是这个词表有多精确以及该如何评估其准确率呢?我对电影词汇进行了搜索,并从Useful Adjectives for Describing Movies(描述电影的有用形容词)和Words for Movies & TV(电影和电视词汇)中得到了329个形容词,分别为正向和负向的两个词表。其中279个形容词在GloVe词向量模型中有向量数据,如图3T-SNE散点图所示。

Glove是一种无监督学习算法,用于生成词语的向量表征。模型训练过程基于对语料库中词与词共同出现的统计量进行聚合运算来生成词的向量表征。T-SNE是一种进行降维的机器学习算法,由Geoffrey Hinton和Laurens van der Maaten共同开发。它是一种非线性的降维技术,特别适合于将高维数据降维并映射到二维或三维空间中,然后在散点图中做可视化。因此,如果两个词的语意接近或是在相同语境下的同现性高,那么这两个词在散点图中的位置就会相同或是紧密相邻。除了语义的紧密度,我还通过不同的颜色来显示情感极性。红色代表负向,蓝色代表正向。

图3 电影词汇的T-SNE散点图

从图3中我发现正向情感词和负向情感词形成了两大簇,在散点图中正向和负向词的重叠很少出现。

现在,我可以检查这些词的情感分值了。其中有175个词包含在了我的结果中,图4展示了每类的前50个词。我把我的情感词极性结果跟这个列表进行对比,175个词中有168个被正确地打上了正向或负向的标签,整体准确率是96%。

图4 前50个电影词汇的情感分值

表1列出了预测标签与人工标签不一致的7个词

表1 预测标签与人工标签不一致的情感词

一个明显的错误是coherent这个词。我检查了所有包含“coherent”这个词的原始电影评论,有103篇,其中只有25篇是正向的。这就是它的情感分值被预测为负向而非正向的原因。我查看了所有这些评论,发现大多数都存在情感极性反转的现象,比如这篇评论“情节方面——即使是对一部史蒂芬·席格的电影来说,情节也是愚蠢的。我的意思是它不只是差,而且基本讲不通……”(原文:“The Plot - Even for a Seagal film, the plot is just stupid. I mean it’s not just bad, it’s barely coherent. …”)。使情感分值更准确的一个可能的解决方案是使用更多的数据或是为极性反转现象添加一个特殊的操作。我尝试过第一种方法,它确实可以大幅度地提高准确率。

联系我们

CONTACT US

广州及时雨私家侦探(广州本地私家侦探公司)

微信:185-2064-4544

电话:185-2064-4544

地址:广州市天河区

广州出轨调查