Feature-based summarization system

论文:Mining and Summarizing Customer Reviews

这篇论文的主要工作就是从用户评论中提取出产品特征以及关于该产品特征的相关观点信息。

大概的流程就是:获取评论数据,然后对这些评论数据句子进行词性标注(POS),保留所有的名词/名词短语,将出现次数比较多的名词/名词短语作为候选产品特征,利用一定的剪枝规则,从候选产品特征中得到有效的产品特征。利用这些特征去查找它们对应的形容词即(观点词语)。然后利用这些观点词语来找到那些低频产品特征(这些特征是潜在消费者或者产品生产厂家比较关心的产品特征)。然后根据前面提取出来的信息来对这些信息所在的句子进行语义极性判断。最后整理,输出以下形式的结果:

img

FBS system 框架概览

img

如图所示,把产品名字与它所有的评论url条目输入到Crawl Reviews模块中,把爬取到的评论数据到Review Database中;

从这些评论数据中提取用户频繁评论的产品特征,利用这些产品特征来提取出对应的观点词语,接着使用WordNet来识别这些观点词语的语义极性;使用这些观点词语来识别那些少见的产品特征;

最后使用以上提取出来的观点和产品信息生成最终的产品观点摘要。

接下来,对以上的各个模块涉及到的技术进行详细说明。

词性标注POS

产品特征通常是名词或者名词短语。我们通过使用NLProcessor linguistic parser,把产品的每个评论按照句子切分,然后对句子中的每个词语进行词性标注。这个语言处理器最终输出是xml格式的结果。如下图所示:

img

比如,表示一个名词,表示一个名词词组或名词短语。把标注完的句子保存在评论数据库中。

把数据库中标注完的句子中那些名词和名词短语读取出来,每个句子包含的所有名词和名词短语放在同一行,存放到一个transaction文件中。接下来,我们可以对这个文件中的词语,进行一些预处理操作,比如去除停用词,词干提取,模糊匹配

高频特征识别

如何识别出评论中设计到的产品特征?举相机产品的例子,

“the pictures are very clear”

这句评论中,用户非常满意相机拍出来相片的画质,那么picture就是这句评论中提及的产品特征,这个产品特征是在评论中显示提及的。再看一些比较难以处理的评论,

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

这个评论中,用户谈论的是相机的大小(size),但是size这个词并没有在评论中出现,因此不能直接从原评论句子中提取出对应的产品特征。(这里的情况,本论文不做处理)

在这一个组件中,我们主要是提取出那些在评论中以名词或者名词短语的形式显式提及的产品特征。在这里,我们重点在找到那些多个用户同时评论的产品特征,这里使用关联规则1 ,在这里就是找到那些通过在不同的评论句子中同时出现的名词或名词短语作为产品特征。

这里使用了作者在98年发在KDD上的文章提出的CBA方法(该方法基于association mining论文中的Apriori alogithm),把上一个组件生成的transaction文件作为输入,运行关联性挖掘算法CBA,从而得到高频名词词语/词组作为候选产品特征。(关于高频的定义是对于那些在至少1%个评论句子中出现的词语/词组)。

apriori算法主要分两个步骤:

  1. 利用迭代的方式找出频繁集合
  2. 找出集合中各个元素的关联

这里,作者只是找出频繁集,并没有进行关联分析。

在本论文中只处理至少包含两个单词的词组,同时也会剔除掉一些明显不能作为产品特征的名词词组,最终得到的高频词组作为候选产品特征。

接下来,还需要经过两个步骤,对这些候选产品特征进行剪枝。

基于紧密度的剪枝

前面使用关联规则生成高频产品特征集合的时候,并没有考虑词的位置信息。在自然语言中,按照一定次序出现的短语才是有意义的。所以,我们需要把那些距离比较远的feature phase剔除。关于feature phrase的定义如下:

img

第一个定义说明:在包含特征短语f的句子s中,f中任意两个相邻的词在句子s中的间隔不超过3,那么认为f是compact的。

第二个定义说明:在m个包含f的句子中,如果f是compact的,同时至少出现2次,那么f就是紧密的特征短语。

通过这一步骤,得到了紧密的特征短语。

具体的剪枝规则,请参考Mining Opinion Features in Customer Reviews

冗余特征剪枝

这一步骤用于处理那些单个词语的候选产品特征,主要是移除冗余特征。这里使用p-support(pure-support)来判断一个候选特征是否是冗余特征。

img

对于特征ftr,它的p-support就是包含特征ftr,而不包含其它候选特征短语的句子的数量。我们设定一个最小p-support阈值,剔除掉p-support值小于最小p-support阈值或者该特征是短语形式的产品特征子集。在本论文中,设定这个阈值为3。

例如:{相机}与{相机、品质},若评论句子集合中存在至少三个句子只包含”相机”,而没有包含”品质”,才会保留”相机”这个产品特征,否则移除。

请参考Mining Opinion Features in Customer Reviews获取更多细节信息。

观点词语的提取

opinion sentence的定义:至少包含一个产品特征和观点词语的句子。

比如,”非常好”这样的句子就不能作为opinion sentence。

这个组件的功能就是从opinion sentence句子中提取形容词(观点词语)。提取观点词语的方法如下所示:

img

对句子中的每个高频特征,提取出与它相邻的形容词作为有效观点词语

举例说明:”the strap is horrible and gets in the way of parts of the camera you need access to.”

在上面句子中,horrible 是对strap的有效观点词语,有效观点词语就是我们需要提取的观点词语。

观点词语的极性识别

本论文中提出一种可以根据观点词语在wordnet词典中的同义词集和反义词集来识别观点词语的语义极性(positive/negative)。在wordnet中,形容词以bipolar cluster的结构进行存储,具体如下图所示:

img

上图为fast/slow集群,该集群由两部分组成,左边部分为fast以及它的同义词组成的satellite synsets;右边部分为slow以及它的同义词组成的satellite synsets。

通常情况下,同义词对应的语义极性也是相同的,而反义词对应的语义极性正好与原词语的语义极性相反。因此,我们可以利用这点,来对观点词语的语义极性进行预测,即如果已知观点词语的同义词或反义词的语义极性,那么就可以推测出该观点词语的语义极性。

我们使用的策略是,使用一组种子形容词,这些形容词的语义极性已知,接着,利用wordnet来预测所有观点词语的语义极性。然后把语义极性已知的观点词语追加到种子形容词中。因此,在处理过程中,种子形容词列表是在不断的被更新的。具体的处理流程如下图所示:

img

低频特征识别

有些产品特征虽然出现频率很低,但是有可能会被潜在的顾客和生产厂家感兴趣的产品特征。提取低频特征的流程如下所示:

img

在某些句子中,只包含观点词语,而没有高频特征,这时,可以把距离观点词语最近的名词/名词短语作为低频特征。

Opinion sentences的极性预测

img

根据句子中的观点词语的语义极性,使用多数投票的方式来预测句子的语义极性。

Summary生成

生成最后的summary包含以下两个步骤:

  • 根据产品特征的出现频率进行排序(相同频率的短语形式的特证和单个词特征,通常把短语形式的特征排在前面)

  • 对于每个产品特征,把它对应的opinion sentences根据句子的语义极性,划分成positive和negative两大类。分别统计每个类别中句子的数量。

对于特征”picture”,经过以上两个步骤的处理,最终得到该特征对应的summary结果:

img

参考资料

[1] http://t.cn/AiTUCnSq