当前位置:首页 期刊杂志

基于词典的文本极性计算及分类研究

时间:2024-09-03

◆薛兴荣 靳其兵

(北京化工大学信息科学与技术学院 北京 100029)

伴随着网络技术的飞速发展,网络上积累着海量的评论资源,通过对这些评论文本的分析和挖掘,从中可以识别出评论者的情感态度,进而可以掌握消费者的消费习性、了解人们对热点话题的看法、预测舆情的发展趋势等。因此对网络舆论的情感自动识别和分类进行研究不论对于个人、企业还是政府都非常有意义。情感自动分类就是通过自动识别评论文本中的某些关键信息后,对评论文本自动划分为差评、中评、好评等类别,它的研究对象主要是网络上存在的各类评论文本,然后以分析这些文本中蕴含的情感态度为目的。针对网络评论这一具有鲜明情感色彩的数据资源,本文首先利用爬虫技术爬取国内某电商网店平台上关于“999 感冒药”的销售评论文本数据,然后对采集的评论文本做预处理,接着使用本文提出的基于语义词典的方法对预处理后的数据进行情感分类及极性值计算,最后依据准确率、召回率及F1值等指标对该方法进行性能分析。

1 相关工作

近年来,网络文本情感分类方面的研究已取得大量的研究成果,而且还在吸引越来越多的研究者投入其中,但是与国内相比,国外在这方面的研究要更早且涉及的领域也更广。目前,情感倾分类研究的最小单位粒度分为词语、句子、文档三个层次,但是大部分是以词作为最小单位粒度。主要采用机器学习和词典匹配等方法来实现文本情感识别。其中,属于无监督分类方案的基于语义词典的方法,它需要先从语料文本中通过构建的各类词典识别情感词,根据相关的判断规则或算法计算该文本的整体情感值,对该文本的情感类别作出判断[1]。这种方法虽然简单有效,但是需要人为地构建各类词典,且对词典的质量有着严格的要求。而属于有监督学习的机器学习分类方法,虽然更容易建模,但是该方法对特征选择及训练数据的规模都非常依赖,且在处理复杂问题时泛化能力也受到很大的限制。深度学习的快速兴起为这类问题提供了一种新的解决方案[2]。由于本文的任务之一是实现文本的情感极性计算,所以本次选用基于词典的方法。

在情感词典构建方面,国外主要有WordNet[3]、SentiWordNet[4]等词典,此外,国外研究者也对情感词典的构建也展开了相关研究[5]。国内的情感词典主要有Hownet[6]、NTSUD[7]、情感词汇本体[8]等,与此同时,还对网络流行语等领域情感词典的构建进行了相关研究[9-11]。在对词典的自动扩展方面,为了分析新词的情感类别,朱嫣岚等人采用了Hownet 词典并标注部分已知的种子词的方法[12]。还有的学者考虑将多个不同类型的词典进行合并从而达到词典扩充的目的。例如,王勇等人在基础情感词典中融入了符号词典、否定词典,以此来实现词典的合并任务,最后还利用合并后的新词典结合相关规则来对微博评论文本的情感类别进行分析,他们的实验证明,这种融合多个词典的方法有更高的准确率[13]。此外,还有学者对未登录词的情感极性进行了研究,如Turney 等人采用计算词语间的点互信息来实现将未登录词加入情感词典以实现词典的扩充和文本的情感分类任务[14]。

2 方法

本文的文本情感分类及极性值计算流程如图1 所示,主要包含以下几个步骤:

(1)利用爬虫技术抓取电商网站上的商品评论数据。

(2)加载用户自建的用户词典,并对评论文本进行繁简转化、重复数据过滤、中文分词和去停用词等预处理操作。

(3)对未登录词进行识别。在分词过程中出现未登录词时,利用fastText 算法进行新词识别,并将其添加到用户词典中,接着使用本文的情感极值计算算法确定其情感极性,最后再将其添加至语义情感词典中。

(4)提取情感特征信息。加载各类已经构建完成的语义词典,然后把分词后的语料与各个词典进行匹配,得到以情感词为中心,程度副词和否定词等为辅助的匹配结构,最后再以标点符号完成断句。

图1 基于语义词典的情感分类流程

(5)评论文本情感值极性计算。先对评论中各词的情感值进行确定,然后通过累加求均值的方法确定评论中每个句子的情感值,最后再对各句的情感值累加求均值最终得到评论整体的情感极性值。

(6)评论情感分类。判断最终得到的情感极性值是否大于设定的阈值,若大于阈值则评论为正面文本,小于则为负面文本,否则为中性文本。

2.1 文本数据预处理

首先对数据进行清洗,主要是删除没有意义的数据以及一些重复数据。删除这类数据可以使用Excel 中的函数或者使用正则表达式完成。接下来对文本进行切分、分词和去停用词等操作。由于评论文本内容通常比较简短,故只进行分词和去停用词即可,分词就是把句子切分为一个个单独的词语,它是进行文本分类的基础。分词完成之后还需进行名词、形容词、副词等词性标注。在分词时需要加载用户词典,用户词典由未登录词、候选情感词以及用户自己构建的词典组成。在中文中,一篇文本的内容是通过名词、动词、形容词、代词、介词和连词等词汇构成,其中,名词等实词对文本情感极性计算有极大的帮助作用;而介词、连词、冠词等虚词以及一些常用词汇则不能提供太多的帮助,将这些对文本情感极性计算帮助不大的词称作停用词。在进行文本处理时往往都需要去停用词,比如英文中的“the、of、and、to、for”等,汉语中如“的,地,这个,那个”等助词。在本文中针对研究内容共收集停用词 1208 个,部分如表1 所示。分词和去停用词可以使用jieba 完成。至此,实现文本的预处理操作,粗略筛选出有用词条。

表1 部分停用词

2.2 各类语义词典构建

2.2.1 基础情感词典构建

情感词是指能表达出意见持有者情感倾向的词汇,它是情感计算过程的基础,包括名词、动词、形容词、副词以及成语等。本文将台湾大学NTUSD 情感词典、大连理工大学的中文情感词汇本体库,和中国知网的Hotnet 情感词典作为基础词典,分别合并这三个词典中的正向和负向情感词,过滤掉情感极性不明显、存在情感倾向歧义以及重复的情感词,最终得到正、负向基础情感词典,构建过程如图2 所示。

图2 基础情感词典构建流程图

首先,将《中文情感词汇本体库》里面极性为正的词添加到正向基础情感词典中,同理,得到负向基础情感词典。然后分别遍历NTUSD 和Hotnet 的褒义词和贬义词,若是新词则添加到对应的基础情感词典,实现基础情感词典的构建。

利用基于词典的方法进行文本情感极性计算,结果依赖于情感词典的准确性和全面性,但是仅考虑情感词是不全面的,此外,还需考虑程否定词和度副词等其他词性的影响。

2.2.2 程度副词词典构建

程度副词的影响体现在它可以对文本的情感进行一定程度的加强或减弱,它在情感词的前后位置均可出现。在分词结束并确定情感词后,以情感词为中心先逆向搜索再正向搜索,搜索的同时确定该情感词附近是否有程度副词出现,若出现则根据该程度副词对该情感词的加强或减弱作用的幅度对该情感词的极性值进行变更,一旦遇到断句的标点符号时则停止搜索。另外,如果在评论中遇到总结性的词汇,如:总而言之、综上所述等,这类词也属于程度副词,同时赋予一个较高的权值。本文共整理了221 个程度副词,并划分为±1、±2、±3、±4、±5 五个情感强度等级。当不能区分其极性程度时,则统一标注正面词的极性程度为+3,负面词的极性程度为-3。

2.2.3 否定词词典的构建

否定词可以改变句子极性,因此,它对文本情感的影响非常大。否定词在文本中一般是作为前缀来对情感词进行修饰,故对文本进行分词和确定情感词后,搜索该情感词前面是否出现了否定词,若出现则将该情感词的极性置反,当为双重否定时则其极性保持不变。本研究一共收集了29 个否定词。

图3 情感词典扩充的流程

2.2.4 情感词典的扩充

情感词典的质量对基于语义词典的文本情感极性计算具有非常大的影响。由于使用人工方式对情感词典进行扩充需要大量的人力、物力及时间周期较长等缘故,目前大家更加倾向于情感词典自动构建的方法。本文从未登录词中实现情感词典扩充的流程如图3 所示。

借助Google 开源工具word2vec 得到分词后语料和基础情感词典的向量表示,然后计算语料和基础情感词典的语义相似度距离来判断语料中未登录词的情感倾向,再利用极性判断算法将该未登录词划分到与之最相近的基础情感词典中,实现自动判断语料中未登录词的情感倾向和扩充基础情感词典的目的。其中,语义相似度距离可以通过计算两个词向量的余弦值得到,余弦值越大,表示两个词语的语义越相近。

大规模语料情感词典自动扩充的难点是如何表达己知的基础情感词典和用户词典之间的语义相似度,即通过对两个词汇的情感相似度计算,进而识别语料中的情感词并实现情感词典的自动扩充。基于“相似的词汇出现在相似的上下文语境中”的分布性假设[15],本文采用计算两个词向量的余弦值方法实现语料中情感词的自动提取与基础情感词库的自动扩充,情感词的极性由EO(w)与预设的阈值决定,当EO(w)大于阈值时,w的情感极性为正向;小于阈值时,w的情感极性为负。向其扩充算法描述如表2 所示。

构建好的新情感词典中既包含了原来的基础情感词,又包含了新增的情感词。最终整理得到的各个词典信息如表3 所示。

表3 最终整理得到的各个词典信息

2.3 标点符号处理规则

有些标点符号对文本的情感分析也会有一定的影响,如“!”和“?”。当句末有“!”时,通常是对整个句子起强调作用,如果句末出现则把整个句子的极性强度再扩大一倍。当句末有“?”时,既可能是疑问句也可能是反问句,反问句语气强烈会对文本内容起到强调作用,进而也会影响情感分析,但疑问句不会造成大的影响,对句末带“?”的句子,通过搜索查找该句中是否存在反问句标记词,若存在则为反问句并把整个句子的极性置反。

2.4 文本情感极性计算

(1)计算句子中每个词的情感值

首先要对句子进行主观性和客观性区分。具有情感色彩或者表达了作者的某种态度的语句视为主观性句子;客观性句子通常是指没有任何感情色彩的语句,因此可以将其过滤掉。通过情感词典对分词后的句子进行匹配,若匹配过程中出现了情感词则为主观句,然后对该主观句中的各个词赋予对应的情感权值,各类语义词典的情感值权重大小如表4 所示。

表4 各类词典的情感值权重

(2)计算评论中每个句子的情感均值

可以通过加权求和的方法来计算每个句子的情感均值。每个句子经过预处理之后表示为Sj={W1,W2,…,Wi,…,Wn},则任意一个句子的情感均值计算如下:

其中,Neg为句子中的否定词个数,n为句子中的情感词个数,EO(Wi)表示句子中每个词的情感值,m是对应的第i个情感词的修饰词个数,modj是对应第j个修饰词的权重。

(3)计算整篇文本的情感均值

文本D一般是由多个句子组成,即D= {S1,S2,…,Sj,…,Sy},可以通过断句的标点符号对文章进行分句,这里只考虑“,”、“。”、“!”、“?”、“;”、“……”这六种符号。其中当为“!”时,整个句子的情感得分乘2;当为“?”且含有反问句标记词时,整个句子的得分乘-1;当为其他标点符号时,句子的得分保持不变。

最后,对评论的各个句子的得分再加权求和作为整个评论的情感得分。本文中将情感阈值T设为0,当最终的情感得分Score(D)大于T时,则评论为正面评论,小于T则为负面评论,否则为中性评论。计算公式如下:

3 实验

3.1 语料

本次实验使用的语料数据是利用爬虫技术爬取某大型电商平台上关于“999 感冒药”销售的评论数据,去除不规范文本,最终选出2550 条评论数据。手工对所有数据进行情感倾向性标注,然后把所有语料分为两部分,其中2100 条评论作为训练语料,其余的450 条作为测试语料,语料基本信息如表5 所示。图4 为语料的句子长度分布,图5 以词云的形式展示了语料的一些关键信息。

图4 语料句子长度分布

图5 语料关键信息词云图

表5 语料信息

3.2 实验环境

本次实验在Spyder 开发环境下使用Python 语言完成的,实验环境配置信息如表6 所示。

表6 实验环境配置

3.3 评价指标

衡量文本分类问题的分类性能可以从准确度方面进行考虑,准确度可以由准确率(P)、召回率(R)和F1值三个指标来衡量。

其中,TP为真正率,TF为真负率,FN为假负率,FP为假正率,关系如表7 所示。

表7 评价指标的参数关系

3.4 实验结果

最终的实验结果如表8 所示,验证结果如表9 所示。

表8 基于词典的文本极性计算模型评价指标结果

表9 基于词典的文本极性计算模型验证结果

3.5 结果讨论

由表8 中数据可以看出,本文提出的方法在网络评论文本分类和情感极性值计算任务中,对实验语料的正面情感类别划分的准确率为75%,负面语料准确率为79%,但中性语料的准确率只有65%,说明本文的方法单从准确性角度考虑,对具有正面和负面情感倾向的评论文本有更好的识别作用;在从召回率角度来看,正面、中性、负面的召回率依次为79%、74%、64%,说明该方法在查全性方面只对正面和中性的评论更有作用;最后再从F1 值的角度来看,正面评论的F1值为77%,略高于负面评论的71%以及中性情感倾的70%。此外,还可以发现模型的总体准确率、召回率、F1值均在为73%,这表明本文的方法在电子商务在线评论文本情感极性计算及分类任务中,分类效果较为理想。

表9 展示了本文模型的验证效果,模型基本上以100%的准确率实现了评论数据的正确分类。此外,当情感值为正时,表示该评论为好评,为负时表示为差评,等于0 时表示中评,情感值既可以进一步确定分类的准确性,又可以实现文本情感的数字化衡量。

4 结束语

虽然基于词典的方法实施简单并且计算速度快,但是其缺点也是非常显著的。随着机器学习尤其是深度学习的发展,为解决这些问题提供了一种有效的方法,因此下一步的工作是融合这两种方法,充分发挥各自的优势进一步提高中文文本信息挖掘能力。

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!