Mining and Summarizing Customer Reviews (Hu 2004)

来源:互联网 发布:捕鱼最优化问题 编辑:程序博客网 时间:2024/06/01 10:04

首先给一个链接,http://www.kimschouten.com/papers/hu-liu-2004/,这也是对Hu 2004 这篇文章的一个详细总结。

这篇文章也算一篇经典,这里给出原文翻译。

在Wed上售卖商品的商家经常要求用户对他们购买的产品以及相关服务进行评价。在电子商务变得越来越流行的情况下,一个商品下的用户评论数量快速增长。对一个比较受欢迎的商品,评论的数量可以以百计甚至以千计。对潜在的用户来说,阅读所有的评论以做出是否购买该商品的决策是非常困难的。同时让商品的产家跟踪管理用户观点变得困难。对于产家来说,由于多个卖家网址会售卖同一商品并且产家也会生产多种产品,这会带来额外的难度。这里的归纳任务和传统的文本总结是不一样的,因为我们只挖掘用户表达情感的产品特征以及情感是正还是负。我们并不像典型的文本摘要中通过选择原始句子的一个子集或者重写一些评论中的原始句子来总结评论。我们的任务分为三个步骤:(1)挖掘用户评论的商品特征;(2)识别每个评论中的观点句子,并确定句子是正还是负;(3)总结结果。本文提出几个新颖的方法来处理这些任务。我们在网上售卖的商品的评论上实验结果表明了技术的有效性。

1. 介绍

随着电子商务的快速扩张,越来越多的商品在Web上出售,并且越来越多的人在线买商品。为了提高用户满意度以及购物体验,对于在线卖家来说允许用户对他们购买的商品进行评论或表达观点变得越来越平常。随着越来越多的普通用户对Web感到满意,数量不断增加的用户在写评论。结果,每个商品得到的评论数目快速增加。一些受欢迎的商品可以得到几百条评论。而且,很多评论非常长,仅有一小部分句子包含对商品的观点。这使得潜在用户通过阅读评论以做出是否购买的决策变得困难起来。如果他/她只读了一小部分评论,他/她可能得到带偏见的看法。大量的评论也让商品产家跟踪用户对他们的产产品观点变得困难。由于很多卖家网址可能售卖它的产品并且产家通常会生产多种商品,这对卖家带来了额外的难度。

在本文中,我们学习关于生成在线商品评论基于特征的总结问题。这里,特征广泛的指商品特征(或属性)以及功能。给定关于某指定商品的一组顾客评论,这个任务包含三个子任务:(1)识别用户表达情感的特征;(2)对每个特征,识别给出正或负观点的句子;(3)利用发现的信息生成总结。

让我们用一个例子来说明一个基于特征的总结。假设我们总结指定数码相机的评论。总结看起来如下:


在图1中,picture quality和size是商品特征。有253条用户评论对picture quality表达正情感,只有6条表达负情感。

通过这样一个基于特征的总结,一个潜在用户就可以很容易的看到现有用户对这个数码相机感觉怎么样。如果他/她对某个特征特别感兴趣的话,他可以打开后面的<individual review sentences>链接看看现有用户为什么喜欢或者他们在抱怨什么。对产家来说,从多个售卖网址组合评论从而为每个商品生成一个报告也成为可能。

我们的任务和传统的文本摘要有几处不一样。首先,我们的摘要是结构化的而不是像大多数文本摘要生成的其他自由文本。其次,我们只对用户表达观点的商品特征以及观点是正是负感兴趣。我们并不像传统文本摘要那样通过从评论中的原始句子里挑选或者重写一部分得到总结。

像前面介绍的那样,我们的任务包含三部分:

(1)挖掘用户评论的商品特征。我们利用数据挖掘和自然语言处理技术完成这个任务。这部分的研究在[19](注:这是作者的另一篇相关文献)已经介绍过了。但是,为了完整性,我们在本文中也会总结这个技术。

(2)识别每条评论中的观点句子并确定每个观点句子是正还是负。注意到这些观点句子可能包含一个或多个商品特征。为了确定每个句子的观点,我们做了三个子任务。首先,通过自然语言处理方法得到一组形容词。这些单词在本文中也被成为观点单词。其次,对每个观点单词,我们确定其语义,即正或负。我们用一个使用WordNet的提升方法来解决这个任务。最后,我们确定每个句子的情感。对一个目标也给了一个有效的算法。

(3)总结结果。这一步总结前面步骤得到的结果,并以图1 的形式呈现。

第三部分给出了完成这些任务的细节技术。被称为FBS(基于特征的总结)的系统也被实现了。我们在5种在线售卖商品评论上的实验结果表明FBS和它的技术是非常有效的。

2、相关工作



3、本文方法

图2给出了我们的观点总结系统的结构视图。


系统的输入时商品名称和一个包含该商品所有评论的Web页面。输出是像在介绍部分展示的评论总结。

系统通过三步进行总结(如之前讨论过的那样):(1)挖掘用户评论的商品特征;(2)识别每个评论的观点句子并确定每个观点句子是正是负;(3)总结结果。这些步骤又包含一些子步骤。

给定输入,系统首先下载所有的评论,并把他们存入评论数据集中。然后发现那些被很多人评价的frequent特征。接着,利用得到的frequent特征提取观点单词,通过WordNet来判断观点单词的语义。利用提取的观点单词,系统找到infrequent特征 。在最后两步,每个观点句子的观点倾向被识别,生成最后的总结。注意到POS 标记是自然语言处理中的part-of-sppech,帮助我们找到特征。接下来,我们依次讨论每个子步骤。

3.1  POS

商品特征经常以名词或者名词短语的形式出现在评论中。于是词性标注非常重要。我们用NLProcessor语言句法分析器把每条评论进行句法分析,划分成句子,并且为每个单词生成词性标注。这个过程也能识别简单的名词或者动词短语。下面给出此行标注的一个例子。



每句话和句子中每个单词的词性标注信息一起保存在评论数据集中。然后创建一个用于生成frequent特征的事务文件。在这个文件中,每一行包含一个句子的单词,这些单词是该句子中出现的名词或者名词短语。句子中的其他组成不太可能是商品特征。也对单词进行一些预处理,包括停用词移除、stemming和fuzzy matching。

3.2 frequent特征识别

这一子步骤识别很多人表达观点的商品特征。在讨论frequent特征识别之前,我们给出评论中的一些示例句子来描述我们将要处理什么样的观点。由于我们的系统是为了发现人们喜欢和不喜欢一个给定商品哪些方面,如何发现人们谈论的商品特征是很重要的一步。但是,由于自然语言理解的难度,有些类型的句子很难处理。让我们看看从数码相机的评论中提取的一个简单和一个困难的句子:

“The pictures  are very clear.”

在这个句子中,用户对相机的图片质量是很满意的,picture是用户讨论的特征。尽管这个句子的特征在句子中被显式提及,还有一些特征是隐式的并且难以发现。比如,

“While light, it will not easily fit in pokects.”

用户谈论的是相机的大小,但是size并没有在句子中出现。这本文中,我们只关注于发现以名词或名词短语的形式显式出现在评论中的特征。我们把发现隐式特征留作未来工作。

这里,我们关注于发现frequent特征,也就是被很多用户讨论的特征。为了这个目标,我们利用关联挖掘发现所有的频繁项集。在我们的任务中,一个项集是在一些句子中出现的一组单词或者一个词组。

关联规则挖掘定义如下:让I={i1,...,in}表示项(item)集,D表示一组事务(数据集)。每个事务包含I的一个子集。关联规则形如X->Y,其中X和Y都是I的子集,并且X和Y不相交。规则X->Y在D中以置信度c成立,如果D中支持X的事务中有c%个事务也支持Y。规则在D中的支持度为s,如果D中有s%的事务包含XUY,即同时包含X和Y。挖掘关联规则的问题是生成D中所有的支持度和置信度均大于用户指定阈值的所有关联规则。

使用关联挖掘的主要原因是由于下面的观察。一条用户评论包含很多不直接和商品特征关联的事情是很常见的情况。不同的用户通常有不同的故事。但是,当他们对商品特征评论时,他们使用的单词收敛了。于是使用关联挖掘来发现frequent特征是合适的,因为这些频繁项集是可能为商品特征的。这些不频繁的名词或名词短语更可能不是商品特征。

我们运行关联挖掘器CBA,它在前面步骤生成的包含名词和名词短语的事务文件中应用Apriori算法。每个得到的频繁项集是一个可能的特征。在我们的工作中,我们定义一个项集是频繁的如果它在超过1%的评论句子中出现。生成的频繁项集在本文也被成为候选频繁特征。

Apriori算法包含两步。首先,从事务集中发现所有满足用户指定的最小支持度的频繁项集;然后利用频繁项集生成规则。本文只需要用到第一步。另外,我们只需要得到有三个单词或者更少的单词的频繁项集,因为我们相信商品特征包含至多三个单词。

但是,不是所有的由关联挖掘得到的候选频繁特征都是真实特征。两种剪枝方法用于删除这些不可能的特征。

紧凑剪枝Compactness pruning:这个方法检查至少包含两个单词的特征,我们称为特征短语。删除其中可能没有意义的。

关联挖掘方法没有考虑一个项(或者单词)在一句话中的位置。但是,在一句话中,以指定顺序同时出现的单词更可能是有意义的词组。于是,一些由关联挖掘得到的频繁特征短语可能不是真实特征。紧凑剪枝目的在于剪去候选特征中单词没有以指定顺序出现的特征。[19]给出了紧凑剪枝的详细定义以及剪枝过程。





Hu and Liu在2004年发表的两篇文章,MiningOpinion Features in Customer Review ,另一篇是这篇文章的扩展版本,Miningand Summarizing Customer Reviews。两篇文章介绍的东西基本没什么区别。

这两篇文章的目的,不仅仅是为了得到句子的positive/negative,还想得到一个针对特征的总结,feature-based summarization。这个总结最后呈现出来是这个样子:

这篇文章方法上并没有什么特殊之处,都是最直观的想法。但是第一篇引用率是1001,第二篇的引用率是3567,我觉得能有这么高的引用率的原因在于问题的首创性。以前的研究关注的是一个句子或者一篇文档的情感,而Hu考虑到了每个句子中会出现多个features的情况。但是这篇文章对每个opinion句子,还是只分配了一个positive/negative情感。个人认为这是这篇文章最应该被改进的地方。下面会详细介绍这些问题。

 

目前,我们已经知道作者要解决的问题。(可以思考一下,对于这样一个问题,你会怎样一步步展开)。文中的解决步骤可以用下面这个图总结:

首先要做的事情,就是从网上爬数据,得到商品的评价文本。这一步可以省略过去,这里直接给出作者标注好的数据集。

 

词性标注

用NLProcessor把每个评论划分成句子,并对每个单词作词性标注,单词的词性是指单词是名词、动词或者形容词等。NLProcessor还会得到简单的名词短语或者动词短语。

         把每个句子的名词单词或者名词短语存在事务文件中。每一行对应一句话,每一行的内容是对应的句子里所有名词单词和名词短语。然后对数据进行预处理,作者简单的提到需要去除停用词,停用词只the、a这种单词;stemming:只保留单词的词干(词目),不区分词形,比如cats处理为cat;Fuzzy matching:解决单词变形和拼写错误,像autofocus和auto-focus是指同一个特征,把出现的所有autofocus用auto-focus代替。

 

高频特征提取

         从这开始,进入到重点部分了。首先,作者认为,在评论里面,大家会用不同的单词表达,但是表示商品特征的单词是有限的,最常被人们提到的可以认为是和商品最相关的。于是,出现最频繁的名词或者名词短语就是高频特征。

 

         作者使用关联挖掘得到频繁项集,对本文中项集作者给的定义是:an itemset is simply a set of words or aphrase that occurs together in some sentences。个人认为是指一句话中一起出现的单词集合。这里需要提到一点,刚开始看这篇文章的时候,一直是认为直接抽取support句子数超过阈值的那些名词作为高频特征,并没有理解关联挖掘的意思。关联挖掘不仅会找到高频单词,还会进一步找到高频单词集合,比如quality of picture,{quality,picture}这个单词集合就是一个项集。

 

作者使用的是基于Apriori算法的CBA挖掘器。Apriori算法包含两个过程,一个是找到频繁项集,然后根据频繁项集找到强关联规则。文章只用到第一步。(这里有两个名词,一个是置信度,表示包含X的事务中也包含Y的比例,X,Y都是项集。另一个是支持度,表示同时包含X和Y的事务占所有事务的比例。)

Apriori算法找频繁项集的精髓,就在于i+1个项目构成的项目集,如果它所有的包含i个项目的子集都不是频繁项集,那这个项目集就不可能是频繁项集。如果上面步骤得到的事务文件中,名词或名词短语的支持度超过阈值,就认为是频繁特征。文中给出的阈值是1%。并且,作者指定频繁特征至多包含三个单词,因为超过三个单词的特征非常少。

         这样可以得到一个文件,同样,每一行对应一个句子,每一行的内容是该句子的高频特征。

 

         不过这样得到的特征太多了,可以根据一些先验信息剪枝:

         紧凑剪枝:针对的是包含两个单词或三个单词的特征。如果该特征的每个单词在句子中的间隔大于阈值,就认为是没有意义的。

         冗余剪枝:针对的是包含一个单词或者两个单词的特征。作者定义pure-support为特征出现的句子数,并且这些句子不包含该特征的超集。文章规定的最少pure-support数为3.

 

Opinion单词提取

         这里认为Opinion单词是形容词。对至少包含一个高频特征的句子,将所有的形容词抽取出来,作为opinion单词;对于高频特征附近的形容词,认为是有效opinion单词。比如the size and weight is perfect,这里只有一个形容词,但是修饰了两个特征。

 

Opinion单词的情感

         这个也是非常简单的思想。对每个opinion单词,如果它的近义词或者反义词的情感是已知的,那么就可以确定这个opinion单词的情感了。人工给出20个positive单词种子,20个negative单词种子,执行下面算法:

对于当前无法判断情感的opinion单词,比如它的近义词或者反义词都不在seed列表中,那么暂且跳过,执行下一个opinion单词的情感判断,随着种子列表的不断更新,后面可能会识别出该opinion单词的情感。而对于WordNet没有识别的单词,直接丢弃。

 

抽取低频特征

对不含高频特征的句子,找opinion单词附近的名词或名词短语作为低频特征。

 

抽取带有观点的句子

         作者把带有观点的句子定义为包含一个或多个特征,并且包含一个或多个opinion单词的句子。

 

句子的情感判断

         句子情感识别,太粗略了,首先比较positive单词和negative单词数;如果一样,那么比较feature的有效opinion单词;如果positive和negative一样,那么认为这个句子和前面的句子的情感是一样的。

 

作者在总结的时候指出了未来研究的三个方向:指代问题;动词、副词表示的opinion单词;情感的强弱问题。

0 0
原创粉丝点击