当前位置:首页 期刊杂志

基于在线评论词向量表征的产品属性提取

时间:2024-09-03

李良强,袁 华,叶 开,钱 宇,唐小我

(电子科技大学经济与管理学院,四川成都611731)

1 引 言

随着Web 2.0技术的广泛采用,消费者很容易通过互联网发表和分享他们对于产品,服务以及公司等方面的看法.这些评论都以文本的方式在线发布,其中蕴含的信息具有很高的电子商务应用价值,如形成网络口碑,提升卖家和厂商的声誉[1,2]以及帮助企业进行商务策略的设计等[3].这使得从在线评论中抽取用户评论的特征,以及对这些特征进行属性归类成为文本分析领域中的一个热门研究话题[4,5].

面向网络评论内容的属性抽取,旨在从客户评论中挖掘出备受关注的特征(属性)信息,并且总结基于这些特征的观点[6].在以往的研究中,学者们提出了各种各样的特征抽取方法.比较典型的有人工标注方法[7];从名词和名词短语中抽取[4];从依赖(搭配)关系进行抽取[8-11];使用机器学习方法进行抽取[12-14]以及使用话题模型进行特征抽取[15,16].在文本分析研究的初期阶段,人工标注是一个非常精确的属性抽取方法,但是它的效率低下[7].另外,在利用名词和名词短语进行特征抽取方面的研究,Hu等[4]通过在名词候选特征词中引入关联规则挖掘的方法,做出了开创性的工作.后续出现很多该方法的改进研究[17,18]:Popescu等[19]抽取评论中频繁出现的名词和名词短语作为候选产品特征,同时借助搜索引擎计算互信息值来对候选特征进行评估.Li等[20]提出了基于频繁名词和名词短语的特征抽取方法.李实等[6]改进了关联规则并应用于中文评论中的产品特征挖掘,也取得了较好的效果.

如果抽取出的特征很多,那么对这些特征词进行归类可为用户提供更为具体和有价值的信息.Carenini等[21]使用WordNet获得的词语相似性矩阵来进行特征归类.Guo等[22]提出了mLSA无监督算法.Zhai等[14]提出了一种半监督的SC-EM算法进行特征归类,并通过实验证明了该算法的可行性和优异性.杨源等[23]在SC-EM算法上进行了改进,用权重标准化SimRank计算不同特征之间的相似度,得到了更好的分类结果.这些研究都是沿着先度量特征词的相似性,然后基于相似程度实施归类或者融合[24]的方法展开.近年来,由于话题模型(topic model)能同时识别出文本中描述产品特征的词语,并在一定程度上对语义相近的词语进行聚类.因此,众多学者开始引入话题模型用于文本中的特征挖掘[5,15,16,25],特别是针对产品属性特征的挖掘[13,26,27]和社会媒体中的话题特征抽取[28].

可以看出,以往的方法都利用了词的共现和相似关系.但是,在通常的电商评价环境中,不同背景的评论者都可以按照自己的想法发布评价内容[29].因此,在这样生成的海量数据中抽取用户评论的产品属性将面临两方面挑战.首先,评论者形式各异的写作习惯,决定了评论文本多样化的句法选择以及句子长度等.其次,不同的评论者针对同一个特征使用的表达方式或词语内容可能会不一样[23].例如在某些评论情境下,“造型”和“形状”都会指向手机的“外观”属性.甚至错字和别字,如“苹果”和“平果”也是指向同一个评论对象.在通常的语境中,这些特征词应该被归为同一个属性类别.在以往的研究中,按照原始词义相似性进行特征归类能够部分地解决这个问题[21,24].但是,在线评论中的很多情景语义相似的特征词其原始词义并不一定相同或相似,例如手机的“形状”和“外观设计”.在用户评论用词模式具有随意性和多样(稀疏)性的情况下,简单使用传统的方法不但会降低特征抽取的准确度,而且使得归类后的同组特征词在语义的理解上非常困难.因此,需要更综合全面的方法来解决这个问题.针对上述问题,本文提出一种基于词向量表征的产品属性抽取方法,将着力于提高抽取结果的准确性和归类结果的可理解性.

本文首先在文本处理过程引入词向量的神经语言模型[30].该模型可以有效地将文本中的词单元训练成高维空间上的向量,这些向量的取值同时考虑了词在语料库中的分布和情景语义关系.其次提出一个由表征词向量和K-means聚类相结合的方法进行产品属性归类.该方法无论在海量文本的属性抽取,还是在归类属性的语义保持上都有较好的表现.

2 产品属性抽取方法

图1给出了本文研究方法的整体框架.该框架主要包括数据处理,词向量训练和特征归类等工作.数据预处理先从网页中抽取出评论文本数据集T,接着将文本内容进行分词等处理得到语料库D,最后使用语言模型对语料库中的数据进行训练,得到所有词汇的表征向量集V(D).而特征归类的任务是先从D中分离出潜在特征词集合F,同时从表征向量集V(D)中得到这些词的表征向量值V(F),并利用其将特征归类成组.

图1 研究框架Fig.1 The research framework

1)文本预处理

首先,系统使用爬虫程序从电子商务网站中抓取出消费者的在线评论数据集T.然后,再对评论文本进行必要的分句,分词以及去除无意义符号等处理[31].最后,数据集中第i个评论文本Si,i=1,2,...,|T|被表示成多个有序词元素sij的集合

2)表征词向量训练模型

分词之后,为了实现特征词之间关系的可计算性,将词元素用向量表示是文本分析中的重要方法.文本分析中最常见的词向量是one-hot representation方法.这种表示方法一个最大的问题是无法捕捉词与词之间的相似度;此外,还容易发生维数灾难[32].Hinton[33]在1986年提出了一种distributed representation的词向量表示方法,其基本思想是将语料库中每个词sj映射到一个K维实数向量空间中去.其中每个词在向量空间中的位置可以通过优化或者近似一个定义在原始文本上的目标函数来得到.例如最大化某个词与其邻居词汇在同一句子中出现的似然概率.这个优化过程被称为“训练”.

通过神经网络机器学习算法来获得词表征向量是文本挖掘领域的最新研究内容.其中Word2Vec[34]是最受关注的研究成果之一.Word2Vec有CBOW模型和Skim-gram模型两种训练方法:对每一个词sj,CBOW模型是用其周围的词来预测sj出现的概率;而Skim-gram模型是用sj来预测其周围词出现的概率.一般地,用于训练的神经网络模型有三层结构:输入层,隐藏层和输出层.但是输入层和传统神经网络模型不同,其输入的每一个节点单元是一个维度为K的向量,而且该向量的每一个值均为变量,训练过程中要对其进行更新.训练达到稳定状态时,这个向量就是词所对应的表征向量.词向量训练过程如下:

(a)将语料里的所有词随机初始化为K维向量;

(b)选一个适当的窗口值作为语境(context);输入层读入预测词附近窗口内的词,并将它们的向量叠加;

(c)输出层是一个巨大的二叉树,叶节点代表所有的词.对某个词sj,给定语境,训练的目标是使得预测词sj的二进制编码概率最大.

基于此,人们可以从大量未标注的普通文本数据中无监督地训练出词向量.影响训练模型复杂性的因素包括输入词数,神经网络的隐藏层节点数,语料库词数和词向量维度等[35].经过神经语言模型训练后,语料库中的词元素sj可以被表征为一个K维的数字向量(该向量也称为sj的表征向量)

词向量训练是在语料库中对聚合全局词与词共现的统计基础上进行的,特别是在指定语料里一个词与其它词共现的频率关系[30].因此,这类方法在寻找相关词和同义词工作中具有相当的优势.

3)特征词过滤

从海量文档中挖掘出用户评论的特征词,频繁项集挖掘是最通用且简单的方法.但是,如果直接应用该方法于在线评论的特征词挖掘,则会受到数据集和方法本身的限制.

数据集的限制来自于两方面,其一是在线评论文本中,并不是所有的名词都是用来描述实体(特征);其二是很多特征是所谓的隐含特征[36],典型的评论如“(外观)非常漂亮!(系统)运行流畅.”中用户评价的产品“外观”和“系统”特征就没有直接表述出来.对于数据集的问题,考虑到名词和名词短语在特征抽取中的重要作用[4],以名词在评论文本中的搭配模式为基础进行分析是一个可行的思路.用户在线评论的典型文本内容主要涉及到评价对象名词和动名词两类名词的搭配模式.对象名词一般和观点词搭配较多,例如“屏幕漂亮”.而动名词则和短语动词搭配较多,例如“用来打游戏不错”.对于搭配模式的识别,需要人工标注结果作为先验知识.如果完全使用机器学习的方法,则容易受到分词效果的影响.

频繁集挖掘方法本身的限制主要是阈值的设定.如果阈值太大,所保留的特征词信息有限;如果阈值太小,则计算复杂度相对较高,而且低频词中也包含着较多的噪音.所以对于方法的限制,可以通过设定不同的阈值来实施探索计算,并结合最终抽取效果评价的方法来寻找合适的阈值.

4)特征词聚类

聚类方法可分为:基于划分方法,基于层次方法以及基于密度方法等.也有将混沌社会演化算法[37]用于文本聚类.常用的K-means是划分聚类方法的代表之一.但是它需要先给定聚类数目,这限制了使用的灵活性.而基于层次和基于密度的聚类算法除了计算复杂外,在确定聚类数目时也需要额外的计算开销.

本研究选择二分K-means方法作为聚类算法,因为它在大数据集中实施简单,计算速度快,并且可依据循环计算过程中聚类效果的变化确定合理的聚类数目.研究表明,二分K-means具有与层次方法相同的聚类质量,且其时间复杂度优于层次聚类[38].为了减少人为干扰,每次迭代计算过程中可使用词向量sj和簇Ci的质心ci之间的余弦相似性总和(sum of cosine similarity,SCS)来测量聚类效果

计算过程见算法1.其中3~7行进行特征词过滤,8~16行用二分K-means对向量表征的词进行聚类.

算法 1(特征词聚类算法)

算法1由模式匹配和二分K-means聚类构成.其中,模式匹配的时间复杂度为O(|D|×模式集大小),二分K-means的时间复杂度为O(|V(F)|).在海量文本数据库中,模式集的大小可以控制在1 000以内,而|D|的值一般在百万级以上,是本方法复杂性的主要影响因素.

3 实验结果与分析

3.1 数据描述

本文使用的评论数据抓取自B2C商业购物平台京东商城(JD.com).使用Python编写网络爬虫工具,抓取了71种手机产品从2013–01~2015–01共计487 818条在线评论.其中最长的评论为1 265个汉字,最短的为2个汉字,平均长度33.8个汉字.统计数据表明用户在JD.com发布了大量的评论,但是大多是短文本评论,长评论并不多见.

数据预处理过程中,系统先对多句构成的评论文本按照标点位置进行整句截断;随后引入分词程序把文本分割成基本的词元素.抓取的全部评论中总共使用了54 850个词元素,其中名词为26 010个.把分词后的所有词和名词按照其词频分别排序,其分布结果见图2.可以发现JD.com中的在线评论使用的词语分布很稀疏.在这类数据集中实现特征抽取和属性归类,对抽取和分类算法都是一个巨大的挑战.

图2 JD.com在线评论中的用词分布Fig.2 The frequency distribution of words on JD.com

3.2 特征词模式及过滤

在特征词过滤阶段,首先处理了数据集的问题.对于数据集的第一种限制,系统需要从语料库D过滤出一些代表性的名词作为用户在线评论中的候选特征词[4].在候选特征词的筛选过程中,结合用户的写作习惯,先采用“名词+观点词”的搭配模式来过滤评论对象名词.有两种典型模式:一是“名词(+副词)+形容词”模式,如“屏幕+漂亮”;二是“(副词)+形容词+名词”模式,如“很+难看+的+包装”.进一步,把“动词+动词+名词”模式中的后两者(如“用来+看+电影”中的“看电影”),以及“动词+名词+观点词”的前两者(如“听+音乐+不错”中的“听音乐”)挑选出来,并将那些在全部语料中出现频率较高的组合识别为动名词.对于第二种限制,经过对典型用户在线评论的内容分析发现,用户之所以会隐含评价特征,是因为其评价的对象是众所周知的,不会引起理解混乱.这类特征一般都是高频特征,无需特别处理.

在传统的频繁集挖掘工作中,阈值的设定依赖于专家的经验和问题的管理需求.在缺乏先验知识的情况下,分别计算了最小频繁度阈值(minsupp)为10(0.002%),20(0.004%),40(0.008%),60(0.012%),80(0.016%)和100(0.020%)的情况下的挖掘效果.这里主要对比了不同阈值情况下,最大CS(largest CS),平均CS(average CS)以及CS总和(sum of CS)的三类聚类指标的变化,结果见图3.通过比较三项指标结果,最终选用60(0.012%)作为频繁模式挖掘过程中的支持度阈值.

3.3 表征词向量训练

已有人提出深度神经网络和递归神经网络等可用于学习词的表征向量.但是这些方法最主要的问题是需要花很长的时间来训练模型.在本实验中,使用Google开发的开源工具软件Word2Vector1http://code.google.com/p/word2vec/来进行词向量训练.Word2Vector是一种用于高效学习海量文本中词的分布式表示的神经网络实现,训练输出的结果是一个词表,其中的每个词由一个向量来表示.由于Word2Vector可以在不需要人工干预的情况下创建特征(包括词的上下文特征).因此,如果有足够多的数据,Word2Vector能够基于一个词在语料中的出现情况,高度精确地预测它的词义.作为一种工程化方法,Word2Vector的训练过程也需要考虑一些参数的影响.

图3 不同阈值下余弦相似性(CS)变化趋势Fig.3 Trends of CS Under different thresholds

向量维度K:向量维度对训练结果有较大影响.但是在Word2Vec模型分析中并没有对其给出理论上的优化结果[35].一般建议维度在50以上,考虑到训练的时间成本问题普遍认为100~300较好.

语境窗口大小:神经语言模型中要充分考虑到情景的因素,它决定了与某个核心词相关的周围词的数量.Cui等[39]的实验结果发现高阶N-gram能提高文本(情感)分类的准确率.但是,考察真实文本句子的表达发现,训练效果并不是窗口越大越好,较大的窗口也可能以更大的概率引入噪音.

本研究中Word2Vector工具的参数都是在经典文献推荐的范围内进行探索计算,最终参数的设定采用在计算的时间成本和属性抽取结果之间一个较平衡的值.其中,维度参数K设置成100.结合实验数据的文本平均长度,语境窗口大小设置为5.

3.4 特征词聚类

利用SCS的变化趋势来确定一个合适的聚类数目k.当余弦距离和的测量值变化率趋弱(稳定)时,聚类过程可以结束.图3的结果显示:当阈值在40以上时,SCS的变化趋势比较相似.因此,本试验采用阈值为60时的结果,对应的聚类数目k根据SCS的变化趋势(图3(d))以及决策需要可以取值在10~20之间.

表1展示了k=10时,属性归类结果以及与这些类相关的代表性属性特征词(同一个类中的词,按照词频降序排序).从表1中可以看到同一个簇类抽取出来的特征词与其它簇类的词相比具有更加紧密的语义相似性.这里的语义相似性计算是基于上下文情境的.这样,就优于那些仅仅依靠特征词的原始语义相似性的计算结果.换句话说,表1的聚类结果具有较好的可理解性.

表1 抽取出的属性及其特征词Table 1 Extracted attributes and the associated feature words

3.5 结果评价

本文提出的词表征向量聚类方法(K-means+Word2Vec)与三种典型的在线评论特征挖掘方法LDA[7],s-LDA[15]和HLDA[16]进行了比较.在实验过程中,从整个语料库中随机抽取10%的评论作为测试集.困惑度(perplexity)和宏平均准确度(macro average accuracy rate,MAAR)被用来作为衡量特征总结的效果指标.

1)困惑度

困惑度指标在自然语言处理中用来衡量训练出的语言模型的好坏[7].如果T是测试集,则困惑度计算公式为

困惑度能够在不需要人工干预的情况下对词聚类的结果进行有效的测量.通过图4的结果,可以推断,在同样话题数目的情况下,本文提出的方法的困惑度要小于LDA,s-LDA,和HLDA这三个模型.因此,本文提出的方法优于话题模型.

2)平均准确度

如果用a表示正确分配的数目,b为错误分配的数目,则准确率为

假设共有|C|个簇,pj为第j簇的正确率.为了正确计算各簇中的特征词的正确数目,宏平均准确率(MAAR)被引入到本实验中,即

在Top5,Top10,Top15,Top20和Top25这几个水平上,通过使用配对t–检验对本文提出的方法及基准方法的MAAR进行比较,表2中展示了不同方法的宏平均准确率.结果显示本文提出的方法在MAAR指标上显著大于其它三个用于比较的基准方法(统计显著性指标p值远小于0.05).

图4 困惑度比较Fig.4 Comparison of perplexity

表2 宏平均准确度结果比较Table 2 Average MAAR

综合关于困惑度和MAAR这两个指标的实验结果,可以看出本文提出的方法无论是在评论特征抽取还是特征聚类方面都具有更好的表现.

4 结束语

Web2.0的发展使得消费者能通过互联网渠道发表在线评论,这些评论中蕴含着丰富的价值,在电子商务活动中起着重要的作用.要更好地利用在线评论中的隐藏价值,文本特征抽取与属性归类是基础性研究工作.但是,由于在线评论用词的稀疏性和表达方式的自由性,经典的特征抽取方法在抽取时往往会丢掉词序和语义等方面的内容.

基于词向量模型在词语的序列和语义表达方面的优势,本文提出了一种结合词向量表征和二分K-means聚类的特征提取和属性归类方法.该方法首先利用评论中名词的搭配关系形成特征词的候选集合,进而引入同时考虑了语义特性和位置分布的词向量来表征这些候选词,并用高效的聚类方法将其迅速归类.为了检验方法的可行性,实验抓取了真实B2C电商网站上近49万条用户生成的评论文本作为实验数据集.在真实数据上的实验结果表明,本文提出的方法能有效提升海量文本中属性抽取结果的准确性和可理解性.同时,与LDA话题模型及类似方法相比较,本文提出的方法无论是在困惑度还是在宏平均准确度上都有更好的表现.

免责声明

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