基于方面级的餐厅用户评论细粒度情感分析

2019-10-08 11:55袁丁章剑林吴广建
软件 2019年8期
关键词:情感分析

袁丁 章剑林 吴广建

摘  要: 评论数据的情感分析一直是自然语言研究的热点之一,特别是评论观点丰富性、情感化、多元化、非结构化等特征方面的研究近年来深受大家关注。本文基于AI Challenger2018细粒度情感分析比赛为研究背景,在分析GCAE和SynATT两种模型基础上,通过研究方面类别情绪分析(ACSA)方法,提出了CNN-GCAE和CNN-SynATT模型,解决了原来模型在数据处理方面的不足,提高了情感分析的精准度和召回率。实验结果表明,改进模型对评论数据情感分析的准确率效果明显。

关键词: 方面级;情感分析;word2vec;字词向量联合

中图分类号: TP339    文献标识码: A    DOI:10.3969/j.issn.1003-6970.2019.08.042

本文著录格式:袁丁,章剑林,吴广建. 基于方面级的餐厅用户评论细粒度情感分析[J]. 软件,2019,40(8):181189

【Abstract】: The emotion analysis of comment data has always been one of the hot topics in the study of natural language, especially the research on the richness, emotion, diversity and unstructure of comment views. Based on the AI Challenger2018 fine-grained emotion analysis competition as the research background, this paper challenges two models, GCAE and SynATT, and proposes the CNN-GCAE and CNN-SynATT models through the research category emotion analysis (ACSA) method. It solves the shortage of the original model in data processing and improves the accuracy and recall rate of emotion analysis. The experimental results show that the improved model has a significant effect on the accuracy of emotional analysis of critical data.

【Key words】: Aspect level; Emotional analysis; Word2vec; Word-Char vector association

0  引言

在2018年AI Challenger2018细粒度用户评论情感分析的比赛中,要求对给定的用户餐厅评论数据进行细粒度情感分析。在线评论的细粒度情感分析对于深刻理解商家和用户、挖掘用户情感等方面有至关重要的价值,并且在互联网行业有極其广泛的应用。情感分析[1]-[3](Sentiment Analysing)又称为观点挖掘、意见挖掘等。其主要任务是通过对包含情感倾向的文本进行挖掘分析,识别消费者对该商品的褒贬态度和意见。

按照分析的目的不同,情感分析可以分为“粗粒度情感分析”和“细粒度情感分析”[4]。比赛中的数据内容是来自于用户餐厅评论的数据,属于文本片段或者句子级的单位,所属于细粒度情感分析范围。W.Medhat等[5]认为情感分析的主要任务是识别情感并进行分类。所以W.Medhat等以产品评论细粒度情感分析为例,将情感分析分为情感识别、产品属性选择、情感分类和情感极性识别4个步骤。Xue[6]提出有伴有实体提取。针对细粒度情感分析开发了许多模型,但是有两个不同的子任务,即类别情绪分析(ACSA)和实体情绪分析(ATSA)。通过对数据进行细粒度情感分析,并且使用了情绪分析的方法,从不同层次和不同方面来对数据进行充分的分析解剖,可以更精准的得到结果。本文提出了一种情绪分析和情感分析相结合的用于餐饮行业评论数据的细粒度情感识别,方法的核心思想是利用以有的数据资源,抽取情感特征,采用字词向量相结合的模型表示评论文本,借助GCAE模型和SynATT模型改进的方法构建评论数据细粒度情感分析模型。

1  相关技术

1.1  词典构建

从一个规模较大的用户评论语料库集合中,根据已给出的数据可以看到对于每一个评论数据,都有相对应的情感分数标注。但是数据还是带有一定的噪音,针对这样的语料集合还是需要对其进行清理的。为了让数量小的数据集合有更准确的情感体现,在这里不仅对数据进行了分词的向量显示,更细致到对于字的向量处理。这样可以对数据的现实最大化的体现了它的情感特色。

这里使用的是AI Challenger2018细粒度情感分析比赛的数据,数据共包含6大类20个细粒度要素的情感倾向。数据中的评价对象按照粒度不同划分为两个层次,层次一为粗粒度的评价对象,例如评论文本中涉及的服务、位置等要素;层次二位细粒度的情感对象,例如“服务”属性中的“服务人员态度”、“排队等候时间”等细粒度要素。评价对象的具体划分如下表1。

每个细粒度要素的情感倾向有4种状态:正向、中性、负向、未提及。使用[1,0,-1,-2]四个值对情感倾向进行描述。每条语料都给予了如表2的所有标注。

对每一条语料都需进行如下处理:

(1)过滤。在这里使用了哈工大停用词数据库来对语料数据进行清洗;

#使用停词表函数

def get_stop_word_set(only_punctuation=False):

words_set = set()

fname = '../data/哈工大停用标点表.txt' if only_punctuation else '../data/哈工大停用词表扩展.txt'

with open(fname) as f_r:

for line in f_r:

words_set |= set(line.strip())

if only_punctuation:

words_set |= set([' '])

return words_set

在自然语言处理时,与文章包含的情感信息,或文章主题信息关系性不强的词语,所以如果进行筛选过滤之后,更便于主题分析,或者情感分析。这里使用了哈工大提供的公开的停用词数据库。如图1所示,这是停用词的内容,通过使用停用词函数对原数据进行停用词的数据清洗。

(2)分词。使用word2vec语言模型对语料进行分词处理;

Word2vec由谷歌研究人员Mikolov等提出[7]。

可以高效的将单词映射成实数值向量,在向量空间上表示单词。Word2Vec有两种模型架构,分别为CBOW模型和Skip-gram模型。关于这两个模型,Tomas Mikolov[8]在2010年所发表的论文中给出了这两种模型和传统的神经网络结构类似,都是由三层网络结构组成的。本文用到的方法是Skip-gram模型,如代码所示,分别对字词向量进行语言模型的处理。

#Word2vec处理词向量

model = Word2Vec(sentences, sg=1, size=100, compute_loss=True, window=5, workers=8, iter=8, min_count=2)

#Word2vec处理字向量

model = Word2Vec(sentences, sg=1, size=100, compute_loss=True, window=10, workers=8, iter=15, min_count=2)

(3)词向量和字向量。在这里使用了语言模型对数据进行向量化的处理,通过对语料库的词和字的两种不同的程度进行向量化。如表3显示,原语料数据转化成词向量和字向量的结果展示,使用Word2vec的语言模型对预料进行分词处理后得到如下结果。

1.2  特征提取

基于情感词典、数据自身的结构以及相关情感资源,在对原始数据进行清洗分词后,对词向量还有特征提取的步骤,这里用到的是读取词向量后,先进行TF-IDF特征矩阵,再去其进行TruncatedSVD的操作,其中这里输出数据的维数是20*4的,迭代次数用到的是7。

基于方面级的情感分析内容,包括分成两个部分:方面类的提取和方面级的情感识别。首先,需要对方面类的识别,在给定一个句子和句子中出现的某个方面,它的情感分析目标是分析出这个句子在给定方面的情感倾向如何。方面词的提取指的是从原文本中直接提取涉及到的方面级的单词或词组,而方面级分类指的是为每个领域预定义方面级种类,然后对每个句子进行分类。例如:"Great food but the service was dreadful!" 在“food”这个aspect上,情感倾向为正,而在“service”这个aspect上情感倾向为负。本文还使用到的是梯度提升决策树[9]LightGBM,一种应用广泛的机器学习算法,具有高效、准确和可解释性。通过对数据进行LightGBM跑了20次二分类,并根据特征重要性选取了TopK作为方面词,然后选择了前七个,如下所示。

subjects = ['地铁站 地铁 地理位置 位置 公交车 公交车站 公交站',

'百货 商圈 商场 广场 购物中心 城 商业街',

'容易 位置 醒目 找到 找 地理位置 显眼',

'小时 排队 等 排 排号 队 号',

'态度 服务员 热情 服务态度 老板 服务 服务生',

'开车 停车费 停车位 停 停车场 车位 泊车',

'很快 催 慢 速度 分钟 上菜 等',

'小贵 不贵 价位 原价 块钱 价格 性价比',

'不划算 物有所值 不值 物美价廉 超值 性价比 实惠',

'活动 团 霸王餐 代金券 团购 优惠 券',

'裝修 布置 灯光 古色古香 装饰 优雅 情调',

'安静 环境 装修 氛围 嘈杂 吵闹 音乐',

'大 宽敞 空间 面积 装修 拥挤 店面',

'整洁 干净 环境 卫生 苍蝇 不错 脏',

'吃不完 一份 量 量足 个头 好大 少',

'入味 吃 不错 味道 好吃 口味 好喝',

'造型 颜色 精致 卖相 好看 色香味 食欲',

'推荐 强烈推荐 值得 强推 一试 极力推荐 菜品',

'好 满意 纪念品 内地 之 肠 灌',

'还会 机会 再 不会 来 值得 推荐']

2  模型

2.1  字词向量联合模型

借鉴一种基于端到端神经网络的阅读理解式问答模型R-NET[10]的方法,采用词向量和字向量联合表示。这是一种首先将词和字与基于门控注意的递归网络进行匹配,得到问题感知的字再现。在此基础上,提出了一种自匹配注意机制,通过对词本身进行匹配来细化表征,从而有效地对整个内容的信息进行编码。这样不仅仅有词向量的输入,还能添加字向量的输入,可以更准确的分析语料的情感程度。

例如:

奶茶十分好喝

词向量表示:[W2V(奶茶),W2V(十分),W2V(好喝)]

经过BiRNN的字向量:[BiRNN(奶,茶),BiRNN(十,分),BiRNN (好,喝)]

最终向量表示:[Concat(W2V(奶茶),BiRNN(奶,茶)),Concat(W2V(十分),BiRNN(十,分)),Concat(W2V(好喝),BiRNN(好,喝))]

2.2  GCAE模型

基于实体的情感分析(ABSA)能够提供比一般情感分析更详细的信息,因为它的目的是预测文本中给定的方面或实体的情感极性。将以前的方法总结为两个子任务:类别情绪分析(ACSA)和实体情绪分析(ATSA)。以往的方法大多采用长短期记忆和注意机制来预测相关目标的情绪极性,这往往比较复杂,需要更多的训练时间。提出了一种基于卷积神经网络和门控机制的模型,该模型更加准确有效。

面向方面嵌入的门控卷积网络(gate tional network with Aspect embedded, GCAE)是一种新的ACSA和ATSA模型,它比基于递归网络的模型更加高效和简单。GCAE模型更适合于并行计算,这样可以大量的减少运行时间。此外,模型还配备了两种有效的过滤机制:卷积层之上的门控单元和最大池化层,两者都可以准确生成和选择与方面相关的情感特征。如图2就是关于GCAE模型的运行流程。

原模型GCAE在性能和效果上并不能展现出最好的效果,但是改进后的模型却能在这个方面有部分的提高,如图3所示,是改进后GCAE模型的流程图,在这个改进模型中先是对语料进行了一个单向的LSTM后,再用如上方法GCAE模型进行处理的。长短期记忆(LSTM)是一种网络,是RNN的一个优秀的变种模型,具有记忆来自输入的先前数据并基于该知识作出决定的存储器。这些网络更直接适用与书面数据的输入。因为在句子中的每一个单词都有基于周围的单词的含义(先前和即将出现的单词)。LSTM通过给简单的循环神经网络增加记忆及控制门的方式,增强了其处理远距离依赖问题的能力。继承了大部分RNN模型的特性,同时解决了梯度反传过程由于逐步缩减而产生的梯度消失的问题。具体到语言处理任务中,LSTM非常适合用于处理与时间序列高度相关的问题,它更真实地表征或模拟了人类行为、逻辑发展和神经组织的认知过程。最后再在线性层之前还用了一个卷积神经网络模型(CNN)的方法。卷积神经网络是最初为图片任务创建的网络,可以学习捕捉特定的特征而不管局部特征。并且与此同时还对前20个术语值进行了预测。

2.3  SynATT模型

层面情绪分类是细粒度情绪分析中的一项重要

任务[10]。给定句子和句子中出现的意见目标(也称为方面表达),任务的目的是确定句子对意见目标的情感极性。目标是指描述实体某一方面的单词或短语(单词序列)。为了提高注意机制有效性,这里用了两种途径方法。第一种是一种新的目标编码方法,它可以更好地捕获目标表达式的方面语义。目标表示是关键的,因为注意力的权重是根据它计算出来的,如公式(5)。它为每个上下文单词 分配了一个正权重 ,这可以解释为在推断给定目标的情绪极性时, 是要关注的正确单词的概率。权重 一般计算为 的隐式表示 和目标表示 的函数,其表达式如下:

其中平均值返回输入向量的平均值。 捕获目标信息和上下文信息。 是K个方面嵌入的权重向量,其中每个权重表示目标属于相关方面的发性。 和 分别为权矩阵和偏置向量。方面嵌入矩阵T是随机初始化的。通过情绪分类器的训练是远远不够的,很难获得连贯的方面嵌入词。因此,加入了一个无监督的目标函数来保证方面嵌入的质量,这是基于注意力的LSTM联合训练的方法。实际上,可以通过公式(6)-(8)自编码器的过程理解,首先 将从d维降为K维,并采用softmax非线性。 中只保留与方面相关的维度,而删除其他维度。然后通过方面嵌入的线性组合,从 重构 。

原模型SynATT对数据的处理能力并不能展现出最好的效果,对SynATT模型需进行改进,在方法中也同样在线性层中加了一个卷积神经网络模型(CNN)的方法,如图5所示,是改进SYNATT模型后的流程图,具体操作方法与GCAE模型类似,同样的也对20个术语词进行预测。

3  评价指标与结果

将n分类的评价拆成n个二分类的评价,根据每个二分类评价的 、 、 计算出准确率和召回率,再由准确率和召回率计算得到 。

在這里最终提交的结果是在GCAE模型和SynATT模型中分别跑了6折cv的,通过加权融合的方式。下组图分别是两种模型对比改进前后的对比图,稍差的模型可能在某些属于词组中比稍好的模型分高,所以融合时以术语词粒度做融合,而不是直接将多个预测结果分别乘以一个权值相加。比赛中用到本方法后跑出来的结果A榜的f1=0.71564,B榜f1=0.71444。

综上可知,GCAE模型运用于文本情感分析时效果不如改进后的GCAE模型效果好,如图6,原模型GCAE在文本情感分析F1分数值只有0.69左右,而对于改进之后,增加了LSTM模型和CNN模型后,原模型的结果普遍F1分数值相对于改进后的模型都会低一到两个百分点,F1分数值得到了提高。

综上所示,是关于SynATT原模型和改进模型的对比图,如图7,同样的可以看到改进后要比改进前F1分数值有提高。为了更清楚的对比两个模型的效果,针对同一个数据集运用不同的模型得出的折線图,运用改进后的两个模型针对20个方面词进行预测,如图8。

由改进后的GCAE模型和改进后的SYNATT模型6次交叉验证图8的实验结果对比分析可知:

整体而言,改进后的GCAE模型效果会比改进后的SYNATT模型更好些,通过折线图的波动我们也可以对应表1的数据集划分得出每个方面词的情感程度,从第一层上分析可以得到,用户的评论在服务、价格和环境方面总结的内容更为全面,用户会更在意这三个方面。从第二层上的情感分析可以得到,用户对餐厅的服务态度最为重视,最不在意距离商圈的远近,在价格中对于折扣力度也不太重视,对环境中比较在意就餐的空间和嘈杂情况。对比改进后的两个模型的折线图选取最优解做最终结果。

在GCAE模型测试下,对原模型进行一定的改进,改进后的模型LGC,选取20个方面词做的情感分析,因为用的方式是6折cv的内容,所以分别对比折6次的数据。针对模型改进前后的数据,分析得出改进后的模型F1平均值得到了一定的提高,模型的改进对数据的处理有一定的效果。如表4,展现出GCAE模型改进前后F1平均值的对比。

在SynATT模型测试下,对原模型进行部分改进,是在原模型的线性层前套用CNN模型,再用选取的20个方面词进行情感分析测试,同样的对数据用6折cv的方式处理,分别得出6次数据。如表5所示,展现出SynATT模型改进前后对F1平均值的对比。

4  结论与展望

本文针对AI Challenger2018细粒度用户评论情感分析的比赛中,对给定的用户餐厅评论数据进行细粒度情感分析的任务,给出了相应的解决方案。在特定目标情感分析任务中,大部分研究都是传统的特征提取的方法,例如基于矩阵的分布表示有TF-IDF、奇异值分解(SVD)等;基于神经网络的分布表示有语言模型CBOW、Skip-gram、NNLM等,在此次比赛中,运用基于方面级的情感分析方法构造了方面词,同时利用了字词向量联合模型的方法对数据进行预处理,提升了情感分析的准确率,也取得了明显的效果。同时,利用两种模型的改进融合方式对比赛的数据进行处理,改进后的模型对数据准确率也取得了较为明显的效果,然而也需要继续改进。

方法仍有不小的改进空间,在数据清洗方面,这里只对数据进行分词、去停词的操作,还能对数据进行进一步的清洗,包括对无关字符的过滤、过滤无用数据以及整理文本的表情字符,都能对情感分析的准确性得到一定的效果。在方面词的提取选择、句子中词语的权重以及模型的兼容性等等。而基于方面词的有监督文本情绪分析方法中,模型的参数选择、使用方法以及模型性能等方面进行进一步研究。

参考文献

[1] Pang B, Lee L, Vaithy anathan S. Thumbs up?Sentiment Classification using Machine Learning Techniques[J]. Proceeding of Emnlp, 2002: 79-86.

[2] 张紫琼, 叶强, 李一军, 互联网商品评论情感分析研究综述[J]. 管理科学学报, 2010, 13(6): 84-96.

[3] Turney P D.Thumbs Up or Thumbs Down?Semantic Orientation Applied to Unsupervised Classification of Reviews[J]. Proceedings of Annual Meeting of the Association for Computational Linguistics, 2010: 417-424.

[4] 孟园, 王洪伟, 王伟. 网络口碑对产品销量的影响: 基于细粒度的情感分析方法[J]. 管理评论, 2017(01): 144-154.

[5] MEDHAT W, HASSAN A, KORASHY H. Sentiment analysis algorithms and applications:a survey[J]. Ain Shams engineering journal, 2014, 5(4): 1093-1113.

[6] Wei Xue, Wubai Zhou, Tao Li, and Qing Wang. 2017. Mtna: A neural multi-task model for aspect category classification and aspect term extraction on restaurant reviews. In Proceedings of the Eighth International Joint Conference on Natural Language Processing (Volume 2: Short Papers), volume 2, pages151-156.

[7] Mikolov T, Sutskever I, Chen K, et al. Distributed representations of words and phrases and their compositionality[J]. Advances in Neural Information Processing Systems, 2013, 26(2): 3111-3119.

[8] Natural Language Computing Group, Microsoft Research Assia. R-NET: MACHINE READING COMPREHENSION WITH SELF-MATCHING NETWORKS.

[9] Jerome H Friedman. Greedy function approximation: a gradient boosting machine.Annals of statistics, pages 1189-1232, 2001.

[10] Pang B, Lee L, Opinion Mining and Sentiment Analysis[J], Foundations and Trends in International Retrieval, 2008, 2(1-2): 1-135.

[11] Ruidan He, Wee Sun Lee, Hwee Tou Ng, and Daniel Dahlmeier. 2017. An unsupervised neural attention model for aspect extraction.In Annual Meeting of the Association for Computational Linguistics (ACL 2017).

猜你喜欢
情感分析
基于双向循环神经网络的评价对象抽取研究
在线评论情感属性的动态变化