王晰墨
(沈阳化工大学 辽宁省沈阳市 110000)
当代社会信息快速传播,人们越来越爱上网浏览新闻,发表评论,同时也深受网上信息的影响。例如,在去饭店吃饭的路上,我们就会首先打开评论软件看一下大家对这家饭店的评论和态度。在买一件东西的时候,也会下意识的看一下其他人对东西的评论。而且我们也越来越爱在各种社交软件上发表自己的动态,发表自己的日常生活。而微博正是当代最热门的软件之一。但是微博上的信息广泛且杂乱,没有什么规律,并且用语随意。而情感分析技术能快速且准确的提取信息,提取主题,对舆论进行监督,快速抓取情感的倾向,所以情感分析的研究意义深远。
对情感词最简单的分类分析是通过词语本身的属性来区别的,比如可以将词语的正负属性作为其中的判决条件之一,如果这个词是积极的,那么以+1 作为其词语得分,相反的,如果这个词表现的是消极的,那么就用-1 作为其词语的得分。最后我们将句子里所有的单词的情感得分进行简单的相加,就会得到一个情感总的分数。最后以情感总分作为整句话的情感定性。有的文章也对情感进行更细化的划分,分为特别喜欢的,喜欢的,无感的,讨厌的,超级讨厌的。很显然,这种计算方法十分的片面,它忽略了上下文之间的衔接性,也忽略了情感之间的联系性以及在一个句子中看似像是中性的词汇其实是有着自己的感情倾向的。比如,在这样一个建议的模型中,“not”作为一个消极词,其得分为-1,相反的“good”作为一个积极词汇,其得分为+1。然而当“not good”同时使用时,该语句会被分类到中性词汇中,但是在实际应用中,人们更倾向于将“not good”分到消极词语一类。
另一种常见方法是就是利用机器学习算法,例如Adaboost 分类器、支持向量机、线性回归等方法,通过机器学习的方法可以预测未知数据的情感状况。但是,这类有监督学习的机器学习方法,在实际应用中,需要根据已知的情感数据作为其训练集用作参考,并且这类方法的对数据集的规模有较高的要求,需要大量的训练,这大大增加了工作难度。而非监督的学习适用于样本数量大,且没有类别的状态。
如图1 所示,神经网络不需要我们告诉计算机如何处理问题,而是通过从观测数据中学习,计算出他自己的解决方案,自动地从数据中学习。神经网络的结构如下:
输入层的个数取决于样本的特征数量。X1,X2,,,Xm 为输入个数。
隐藏层就像是“”黑盒子“把输入的数据特征进行抽象,能更好的线性划分。
图3:预测食物词(蓝色)、运动词(红色)和天气词(绿色)的簇
图4:基于tweets 训练数据的logistic 分类器ROC 曲线
输出期望的特征分类。
本文提出了一种基于Word2Vec 的情感分析新方法,该方法可以对语境、语义进行捕捉,并且可以对数据规模进行压缩。Word2Vec 包含有两种不同的方法:Continuous Bag of Words(CBOW)和Skip-gram。
CBOW:可以根据上下文之间的衔接关系来预测当前词语的几率。
Skip-gram:通过当前词语来对上下文的概率进行预判。这两种方法都是利用人工神经网络作为其分类算法的基础。在大量的训练之后就得到了每个单词的最优向量。
通过每个单词的最优向量即可获得到上下文之间的关联信息。然后再利用公式来寻找各个单词之间的关系。利用词向量可以对未知的数据进行情感状态的预测。这种算法模型的优点不仅变现在可以衔接上下文语境信息,还可以压缩数据规模,经实验检验500 个单词左右的词汇量可以达到常规分类算法20000 词汇规模的效果。因为神经网络可以对语句中的特征信息进行提取,可以减少很多认为的工作。但是对于不同长度的文字段落,我们就只能将所有词向量的平均值作为一个参考值,从而对整个文本进行分类。
当通过神经网络训练,对情感文本进行分类时,我们可以将各个段落向量作为一个分类单元输入到情感分类器中,而不用对单个的词语进行分别处理。这也是当前情感分析领域最优秀的方法。经实验证明,将此方法应用到微博情感分析分类时,该模型分类错误的概率仅为5.32%。在python软件库中word2Vec方法是可以调用的。
用word2Vec分类方法可以将各个词语用高维向量空间来表示,用来承接文本中上下文之间的关系。首先使用word2vec 方法,对情感文本进行训练提取出各个词向量的权重,最后根据情感词典对词汇的词性进行评价并筛选出各文本单词的有用性特征,最后引入人工神经网络对文本的特征值进行训练和预测,最终即可达到情感分类的目的。而word2Vec 方法则是为文本情感分类提供了一种新的聚类思路。
图2 中黄色区域为十分喜欢,绿色为喜欢,紫色为一般,蓝色为不喜欢。由此可看出用word2vec 作为基础方法是可行的。
在训练完成后,只要输入想要聚类的词,即可索引到与其意思最为接近的词组。
情感词典的构建:在国内的知网中,中文情感分析用到的词语集为:
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 了。
从图3 可以很好的看出,通过word2vec 情感文本分类新方法可以将不相关的单词进行很好的分离,并将分离后的单词进行聚类处理。
经训练后得到其ROC 曲线如图4 所示。
当我们利用Scikit-Learn 构建模型并进行神经网络训练时,得到的预测精度为87%。我们发现当增加或者删除标点符号时,预测精度会有所影响,这就说明在使用Word2Vec 模型做聚类处理时,能够提取到文本中的标点符号所携带的信息。在处理单个的词语时,如果对数据做更多的预处理工作并训练更长时间,都能够使模型的预测精度提高。经过实现证明得出结论,在使用人工神经网络(ANN)模型时可以使预测精度再提高五个百分比达到92%左右。
Word2Vec 具有实用性和便捷性。使用一个非常容易而且简便的算法,我们就可以获取到非常丰富的词向量和段落向量,然后就可以把这些向量数据应用到各种各样的 NLP 应用之中,两者的结合大大提高了精确度。