陈可嘉,郑晶晶,靳健,赵政
(1.福州大学 经济与管理学院,福建 福州 350108;2.北京师范大学 政府管理学院,北京 100875)
在移动互联网时代,大量跨境电商网站和用户交流平台的出现,给企业了解用户行为、把握市场趋势提供了更加快捷的渠道。对在线评论的挖掘与利用已逐渐成为企业明确市场定位,提升产品销量的重要途径[1]。因而如何从在线评论中提取用户关注的产品特征并归类,成为文本分析领域中的一个热门研究话题[2]。
在以往的研究中,学者们提出了各种各样的产品特征提取方法。比较有代表性的方法有:基于高频名词或名词短语提取[3-5]、根据语言规则提取[6-8]、通过监督学习模式提取[9-11]、利用主题模型提取[12-14]。
基于高频名词或名词短语提取特征词的方法,由于无需标注大量文本,大大减少了人工成本,因而备受学者们关注。HU等[3]做出了开创性的工作,根据评论中名词和名词短语被提及的频繁程度,使用关联规则查找频繁项集,从而提取产品特征。后续很多方法都以此为基础进行改进,LI等[4]利用PMI-IR算法计算点互信息值,对高频名词和名词短语提取产品特征的方法进行了补充。YANG等[5]在考虑上下文信息的基础上,引入了全球背景信息,提出了一种基于特征得分和词频的产品特征提取方法。这些方法都取得了一定的成效,但单纯根据词频提取产品特征的方法往往会忽略一些出现频率较低的表示产品特征的词汇,特别是在在线评论的语境下,评论者往往倾向于使用个性化的表达,甚至对同一产品特征,评论者可用的表达方式也不尽相同。这就给从在线评论中挖掘产品特征造成了一定的干扰。
也有学者在基于词频的基础上,提出利用词典进行文本相似度计算,进而对特征词集进行扩展,从而挖掘低频词。董苑等[15]提出TSSDWFI算法,该算法基于词典计算词语间相似度,能够提取出低频但具有代表性的特征词。但是,很多在在线评论的语境下描述同一产品特征的单词,其原始语义却并不一定相似。例如,中文的“形状”和“外观设计”、英文的“design”和“size”,甚至还有一些如“app”“application”“apps”等的拼写形式。因而基于词典的方法具有一定的局限性。
基于词典计算文本相似度的方法,无法结合上下文语义,因此聂卉等[1]提出基于词向量和句法结构建立领域特征词典。通过神经网络语言模型,把以文本形式表示的词语转化成以数值形式表示的词向量,再对词向量进行聚类或者在种子特征词集基础上用计算向量间相似度的方法来提取产品特征。该方法可以结合上下文语境,对具有相似上下文的特征词进行归类,弥补了利用基于词典的方法的局限性。马思丹等[16]提出加权Word2vec模型,该改进的词向量模型取得了更好的分类效果。
这些利用词向量获取产品特征的研究,大多聚焦于词向量模型的改进,少有研究着眼于种子特征词集的构建。然而,在线评论中并非只有表示产品特征的词语,直接对词向量进行聚类来提取产品特征,容易导致噪声类别的出现。而用在种子特征词集基础上计算向量间相似度的方法提取产品特征,虽然能较好地规避噪声类别的出现,但其在种子特征词集的构建上,或是需要大量人工标注[17],或是对整个语料库的代表性不够充分且往往只考虑了高频名词[1]。
为了解决以上问题,笔者提出了一种基于词频和情景语义的半监督产品特征提取方法。首先,通过词频和关联规则构建种子特征词集,只需少量人工标注且引入了一些不频繁名词,该方式能够减少噪声类别的出现,使得提取种子特征词集具有更好的代表性。接着,再采用神经网络语言模型进行训练,把符号形式的词语转化成数值形式的词向量,并通过计算向量间相似度的方法,对种子特征词集进行扩充,这样可以使得对低频特征词的提取更加友好。最后经人工分类后得到完整的产品特征词典,从而实现对产品特征的提取。
本文提出的基于词频和情景语义的产品特征提取方法主要分为三个阶段(图1):第一阶段为在线评论的获取与预处理;第二阶段为基于词频和关联规则的种子特征词集挖掘;第三阶段为基于情景语义的产品特征扩充与产品特征词典构建。
图1 基于词频和情景语义的产品特征提取方法流程Fig.1 Flow chart of product feature extraction method based on word frequency and context semantics
在线评论按是否表达了评论者的主观意愿,一般可分为主观语料和客观语料。其中主观语料由于具有褒贬的情感倾向,信息量较为丰富,是评论挖掘的主要研究对象。CNET网站是一家全球领先的科技资讯网站,其上对产品的评论通常包含优点、缺点以及描述三部分。其中优点、缺点部分的评论语句充分表达了用户的主观意愿,且其往往较为简单明了,可视为主观语料。相比其他长评论,优点、缺点部分的评论语句中更容易出现描述产品特征的词语。因此,在进行产品特征挖掘时,笔者直接采用八爪鱼爬虫软件从Cnet.com网站上抓取苹果、三星、诺基亚等品牌手机优点、缺点部分的评论作为研究数据。
对用爬虫软件爬取的在线评论,通常需要先进行数据的预处理。在数据预处理阶段,主要是将散乱的人为书写的数据转换为模型能处理的数据:
① 剔除缺失数据。
② 断句:根据句号、叹号、问号等句末标点符号对在线评论进行断句。
③ 去除停用词:由于在线评论中还存在着大量无实际意义却在句子中起到承接作用的词,亦即停用词。如中文评论中的“了”“的”,英文评论中的“the”“a”等。为了更好的产品特征提取效果,往往需要对这些无实义的词进行剔除。
④ 规范文本:由于用户书写评论存在不规范书写的情况,因此需要对评论文本做规范化处理。如特殊字符的处理、删除多余空格,大小写的转换等。
⑤ 去除单字词:有些用户由于种种原因,只用了如“good”“nice”“terrible”等单个单词,甚至如“!”“?”等标点符号来进行评论。这种由少于一个单词组成的评论并没有提供有价值的信息,也需要进行剔除。
由于在线评论中表示产品特征的单词数量是有限的,被消费者最常提及的单词往往和产品最具有相关性。而产品特征又主要以名词或名词短语的形式存在于评论中。因此,在进行种子特征词集挖掘时,可以根据词频把在线评论中频繁出现的名词或者名词短语当做描述产品特征的候选种子特征词。
WordNet[18]是目前较为常用且有效针对英文语料词性标注的工具。笔者首先借助WordNet对在线评论中出现的每一个单词进行词性标注,选取其中频繁出现的名词作为候选种子特征词集。然而WordNet对一些不规范的名词简写,如对“hours”的简写“hrs”并不能很好地标注。此外,单纯按照词频排序得到的候选种子特征词集仍然不够全面,忽略了某些特定的名词和名词短语,如“fm transmitter”“micro sd”等。因此,可以考虑使用关联挖掘的方法来对候选种子特征词集进行扩充,从而得到更为合理的种子特征词集。
综上,种子特征词集挖掘算法主要分为三个步骤:
① 使用WordNet进行词性标记,对标记为名词的单词,选取其中词频排名前50的单词进行人工筛选,从而得到候选种子特征词集。
② 用Apriori算法[19]进行关联规则挖掘。该算法的核心思想是从低维向高维循环生成频繁项集,并用支持度进行减枝去掉低价值的频繁项,最后再把这些频繁项集按置信度来生成关联规则。此外,由于种子特征词集对单词准确性的要求较高,在常规的置信度和支持度约束下,根据文献[3]中的方法,再对提取出的频繁项集进行紧凑剪枝和冗余剪枝。紧凑剪枝针对包含多个单词的频繁项集。如果该频繁项集中的每个单词在句子中的间隔大于阈值,就认为是没有意义的,本文中的阀值设置为3。冗余剪枝则针对包含一个单词或者两个单词的频繁项集。部分频繁项集往往会由于丢失信息,导致没有超集,因而需要把支持度小于包含该频繁项集但不包含其超集的句子数的频繁项集去除。
③ 筛选合并得到种子特征词集。用Apriori算法得到的关联规则
用1.2节的方法得到的种子特征词集虽然精准,但不够全面,特别是对一些出现频率不高但却是用来描述产品特征的词汇不能很好地识别。因此,本文从情景语义的角度出发,通过神经网络语言模型构建词向量,并采用余弦相似度对种子特征词集进行扩充,得到最终的产品特征词典。
神经网络语言模型能够对样本语料进行训练,把自然语言中语义、语法等的关系映射成用数学符号表示的向量的形式,亦即词向量。词向量是自然语言处理(natural language processing,NLP)中用来表示词语的常用形式,它是多维实数向量,其每一维度上的数值能够解释一定的语义和语法。两个词之间的语义相似程度,就可以用这两个词向量间的相似度来表示,从而将寻找种子特征词集近义词的问题,转化成了如何构建词向量以及如何计算两个词向量之间相似度的问题。
1.3.1 词向量构建
在词向量的构建上,本文采用基于Word2Vec的神经网络语言模型训练词向量。Word2Vec是由MIKOLOV等在2013年开发的一款通过语料训练,把词与词之间关系映射到向量空间上的文本挖掘开源工具[20]。Word2Vec采用的是层次化Log-Bilinear语言模型,其具体算法模型主要包含CBOW模型和Skip-gram模型两种。其中,CBOW模型的主要思想是根据目标词的上下文来预测目标词;而Skip-gram模型则正好相反,其主要利用目标词对目标词的上下文进行预测。
根据文献[20]中对CBOW模型和Skip-gram模型的性能详细对比结果,笔者采用整体效果更好的Skip-gram模型训练词向量,其目标函数如式(1)所示:
(1)
其中,wi表示当前词;Corpus表示语料库;context(wi) 表示与wi的距离在给定窗口大小内的上下文单词集合,由当前词wi预测上下文的条件概率计算如式(2)所示:
(2)
其中,u表示与wi的距离在给定窗口大小内的单词。
整个模型通过不断调整词向量wi各维度的值,最终使得目标函数G的数值达到最小。
1.3.2 相似度计算
计算向量间相似度最常用的一个方法是余弦相似度算法。由于上述步骤已把文本单词转化成词向量的形式,故此可直接使用余弦相似度公式计算单词之间的相似度。本文把单词与其自身的相似度记为1,那么对于已经向量化的单词wi和单词wj的相似度可用式(3)表示:
(3)
1.3.3 产品特征扩充
在计算完相似度后,需要把与种子特征词集里单词相似度排名靠前的单词并入种子特征词集,循环迭代,直至收敛,从而得到完整的产品特征词集。而对于相似度排名的选取,本文选择在准确率P、召回率R、F1值等NLP领域普遍使用的评价指标下的排名来进行产品特征扩充。准确率P、召回率R、F1值分别如式(4)至式(6)所示:
(4)
(5)
(6)
其中,A表示用本文方法挖掘出的真实产品特征数;B表示用本文方法挖掘出的错误产品特征数;C表示未被本文方法挖掘出的真实产品特征数。此外由于在线评论大数据的特性,召回率无法完全精确地计算,故本文采用如下的方法来估算召回率。首先从挖掘到的在线评论里随机抽取出10组评论,每组100条句子,依据这些评论不断分组累加计算召回率,如第一组由100条评论验证召回率,第二组就是200条评论验证召回率。如此不断累加,随着组数的增多,评论数量增多,召回率就越准确,直至召回率趋于稳定,稳定后的召回率值已经非常接近真实召回率。
1.3.4 产品特征词典构建
最终获取的产品特征词集,往往描述着产品的不同方面。为了更清晰明了地展示产品特征,需要将这些产品特征词,按照其描述方面的不同进行分类。不同于常用的“词向量+聚类”的思路,笔者在构建产品特征词典时,没有采用如K-means聚类、层次聚类等聚类算法进行产品特征分类,而是直接使用人工标注的形式进行分类,主要是基于两个考虑:一是由于本文是在种子特征词集的基础上,利用词向量相似度进行扩充,从而得到产品特征。若使用聚类算法来对产品特征进行分类会丢失部分种子特征词集带来的信息,使得最终分类效果下降。二是由于本文方法最后得到的产品特征词典所含的单词数量已经较小,没有必要再使用聚类算法进行聚类,人工分类完全可以承受且准确率更高。
本文利用爬虫软件,从Cnet.com网站上爬取苹果、三星、诺基亚等品牌手机的在线评论共5 906段。抓取的内容包括评论时间、评论星级、优点评价、缺点评价以及描述五部分。本文的研究对象仅针对其中的优点评价、缺点评价部分。
表1是对在线评论的描述性统计。从表1中可以看出,单条语句的平均词数只有9.2个,显然,Cnet.com网站上优缺点部分的评论以短文本为主。一般情况下,长文本相较短文本而言,更容易出现噪声词。而用以形容产品特征的词语的数量又是有限的。这意味着相比于长文本,短文本中用以描述产品特征的名词出现的频率会更高。因此,本文从优缺点部分的评论语句中来进行产品特征提取是较为合理且有效的。
表1 在线评论的描述性统计Tab.1 Descriptive statistics of online reviews
首先,对5 906段评论进行缺失数据的剔除,剔除后共剩余5 690段评论;其次,根据句末标点符号对5 690段评论进行断句,共得到9 955条语句;然后,对评论数据进行分词、去停用词、去多余空格、去特殊字符、大小写转换、去标点等工作。最后,再对单条评论中少于一个单词的语句进行剔除,共剔除740条语句。经过上述数据预处理后,总计有效评论语句9 215条。
首先,对标记为名词的单词,按词频进行排序,得到用户提及的频率排名top50的单词,如表2所示。
由于产品特征一般以名词的形式存在,因此本文选取该词集中被标记为名词的单词作为候选的种子特征词集,共得到包含33个名词的候选种子特征词集={screen, camera, battery, touch, life, keyboard, apps, call, nokia, design, size, time, os, qwerty, video, display, music, memory, mp, calls, looks, text, windows, flash, gps, iphone, samsung, interface, times, light, touchscreen, sound, software}。
表2 用户提及频率top50的名词Tab.2 Nouns where users mention the frequency top50
接着,利用Apriori算法挖掘关联规则。在0.1 %支持度和80 %置信度(参考常规值和文献[19])下得到142条关联规则。其中,部分关联规则如表3所示。如规则4表示“{xenon}=> {flash}”这条关联规则的置信度为0.846 2,支持度为0.001 9,且“xenon flash”能组成一个名词短语。
表3 部分关联规则Tab.3 Some association rules
最后,根据1.2节中的方法进行筛选合并,得到包含42个名词的种子特征词集={screen, camera, battery, touch, life, keyboard, apps, call, nokia, design, size, time, os, qwerty, video, display, music, memory, mp, calls, looks, text, windows, flash, gps, iphone, samsung, interface, times, light, touchscreen, sound, software, vga, megapixel, hours, life, xenon flash, fm transmitter, top notch, form factor, micro sd}。
2.4.1 词向量构建
本文采用Skip-gram模型来训练词向量,训练文本为爬取的5 906段评论,在R-3.5.3环境下编程实现。在参数设置方面,将向量维度设置为50,采样值设置为0.000 01,窗口大小设定为5,其他参数均采用默认设定。经过Skip-gram模型训练后,最终把文本形式的单词转化成的50维向量形式。部分结果如表4所示。
表4 部分词向量Tab.4 Some word vectors
2.4.2 相似度计算
通过计算词向量间的相似度,获取与种子特征词集相似的词语。表5展示了与部分单词相似度排名前5的单词。
表5 与部分单词相似度排名前5的单词Tab.5 Top five words with similarity to some words
2.4.3 产品特征扩充
本文采用在召回率、准确率、F1值评价指标下综合效果最好的相似度排名来进行产品特征扩充。图2分别列举了与种子特征词集里单词相似度排名top1至top15情况下构造的产品特征词典的准确率、召回率以及F1值。
图2 相似度排名top1至top15的准确率、召回率和F1值Fig.2 Accuracy, recall and F1 values for similarity rankings from top1 to top15
从图2可以看到,随着扩充词数的增加,准确率呈下降趋势,召回率则不断上升。当选择相似度top1的单词进行构造时,虽然准确率最高,达到了86.44 %,但其召回率却只有48.57 %。而选择相似度top15的单词进行构造时,召回率最高,达到了85.71 %,但其准确率却只有68.18 %。因此,综合准确率和召回率指标,本文选择使F1值达到最大(76.44 %)时的与种子特征词集相似度排名前九的单词(top9)来进行产品特征扩充,得到包含79个单词的产品特征词集={screen, display, touchscreen, touch, interface, resolution, battery, life, time, times, hours, hrs, keyboard, qwerty, button, key, keys, slide, camera, flash, light, pictures, vga, mega, colors, megapixel, picture, xenon flash, apps, app, software, os, windows, mp3, gb, market, applications, system, video, music, sound, voice, command, player, bluetooth, hd, fm transmitter, size, looks, design, top notch, form factor, weight, plastic, cover, lte, pocket, volume, nokia, samsung, galaxy, iphone, google, price, service, memory, slot, card, microsd, hardware, speaker, call, calls, navigation, gps, wifi, text, email, web}。
2.4.4 产品特征词典构建
对特征词集进行人工分类,得到包含十个类别的产品特征词典(表6)。
表6 产品特征词典Tab.6 Product feature dictionary
本文方法与K-means+Word2vec[2]、LDA[21]在准确率、召回率和F1值这三个评价指标上的比较,如表7所示。其中,由于每个类别的产品特征都包含了大量的单词,因此在比较中,分别选取了每个类别前5、前10、前15、前20的词(按词频排序)进行比较,即分别在top5、top10、top15、top20的水平上进行对比。
表7 三种方法准确率、召回率、F1值比较Tab.7 Comparison of accuracy, recall, and F1 values for the three methods
从表7中可以看出,随着提取的单词数量增加,本文方法与K-means+Word2vec、LDA等方法的准确率都呈下降趋势,而召回率则呈上升趋势。这意味着在对高频词的提取上,几种方法都有较好的表现,能进行较高效率的识别。导致各方法在特征提取效果上出现差异,主要是在对噪声词的处理上。由于本文方法通过词频和关联规则构建了种子特征词集,对噪声词的处理效果要优于另外两种方法。因此,从表7中可以明显地发现,本文方法在三种不同评价指标下,都较另外两种方法有更好的表现。
本文提出的基于词频和情景语义的产品特征提取方法首先对用爬虫软件爬取的在线评论进行数据预处理;接着,通过少量高频名词和关联规则来构建种子特征词集;最后,采用神经网络语言模型进行训练,把符号形式的词语转化成数值形式的词向量,并通过计算向量间相似度的方法,对种子特征词集进行扩充,从而得到完整的产品特征词典。实验结果显示,该方法在用与种子特征词集相似度排名前九的单词(top9)来进行产品特征扩充时效果最好,F1值达到了76.44 %。此外,与K-means+Word2vec、LDA等方法在top5,top10,top15,top20水平上的对比实验表明,无论是在准确率、召回率,还是F1值的表现上本文方法都更优。
本文的特征提取方法虽然在种子特征词集的构建上进行了改进,但在词向量的训练上仍然沿用了skip-gram模型,且只考虑了显式产品特征。因此,对词向量训练模型的改进以及对隐式产品特征的提取是本文下一步的研究方向。