摘 要: 提出了一种评价对象特征抽取与聚类方法,其基本思想是:首先运用Apriori算法和剪枝方法从客户评论中抽取评论对象特征集;然后,以特征之间的基于Hownet的词语相似度和特征与观点共现的信息作为聚类依据,对特征进行聚类。采用通过从互联网获得的客户评论语料对该方法进行了实验,实验结果验证了该方法的有效性。
关键词: 关联规则;特征抽取;特征聚类;语义相关度;相邻共现
随着互联网的高速发展,网络已经成为人们生活中不可或缺的一部分。网络改变了人们表达观点的方式,人们可将对某些产品的评论发布到商品网站上,或者在论坛、讨论组、博客中表达自己的观点。这些在线评价行为不仅为商家提供了一个信息的展示平台,也为消费者提供了一个产品使用经验交流以及质量评价的平台。因此很多网民在购买某类产品前,往往会选择先上网浏览一些相关产品的信息,了解其他消费者的使用体验,深入比较产品之间的性能,从而使自己的消费更趋理想化[1]。
评论对象特征抽取作为评价意见挖掘的一项研究内容,旨在通过对客户评论进行分析,挖掘出用户们感兴趣的对象特征。由于网上评论中,评论对象特征过于繁多,同类的特征可以有多种描述,如产品的“外观”和“外形”描述的就是同一类特征。因此,准确抽取评价对象特征是一个必须解决的关键问题。
本文首先运用Apriori算法和邻近规则从客户评论中提取候选特征集;然后,根据特征之间的语义相关度及特征和观点共现的信息对特征进行自动聚类。提出了一种新的计算特征之间相似度的方法,基于这种相似度聚类特征能达到较好的聚类效果,解决了特征在评论中拥有不同表述的问题。
1 相关研究
自动提取评价对象特征主要使用词性标注、句法分析、文本模式等自然语言技术对客户评论中的语句进行分析,从而自动发现产品特征[2]。具有代表性的工作是Hu Mingqing和Liu Bing基于关联规则算法从英文评论语料中抽取频繁项,再根据两条启发式规则对频繁项进行过滤得到特征集合[3]。Yi J等人定义基本名词短语模式,并使用混合模型和相似度测试抽取特征[4]。POPE SCV A M采用KnowItAll中人工定义的抽取指定关系(part-of关系is-a关系)的文本模式抽取产品特征[5]等。
在特征词聚类方面,也有一些学者做了一些研究,如CareninE G等人采用建立相似度矩阵,将一些特征映射到用户定义的特征分类上的方法进行特征分类[6]。其中相似度的计算方法有Consine、Jaccard等[7]。Guo H等人提出了mLSA的无监督算法进行特征分类,该算法将LaSA模型建立了两次[8]。Zhai zhongwei等人提出了一种SC-EM算法[9]。
2 中文客户评论对象特征的抽取
在实际应用中用户比较关注的对象特征在评论中出现就比较频繁。因此,本文首先运用Apriori算法从客户评论中提取具有一定支持度的频繁出现的名词或名词短语;然后对提取的频繁项集进行剪枝,去掉一些不合适的频繁项。
首先需要对将评论库中的数据进行预处理。对评论库中的文本数据进行分词和词性标注。本文的分词工具采用中科院计算所所研发的ICTCLAS系统,利用该工具对评论文本语料进行分词和二级词性标注。名词短语的提取遵循两点:⑴有两个或3个名词相邻的短语;⑵名词与名词之间仅有结构助词“的”相连。在进行二级词性标注后,可根据上面的两个原则提取名词短语。然后,利用词性标注后的评论语料创建关联规则事务文件。以评论句为事务单位,提取出其中的名词和名词短语作为项,组成一个个事务。将所有评论语料中的事务都存储在一个事务文件中。
利用Apriori算法与剪枝方法抽取频繁特征集。首先,运用Apriori算法从评论语料事务文件中抽取出支持度大于最小支持度的1-k维频繁项集。然后进行邻近规则剪枝,去掉不在其相邻位置的频繁项;利用独立支持度剪枝,去掉包含在其他项中冗余频繁项;最后,去除单字(因评论对象的特征一般不是单字)得到评价对象特征集。
3 评价对象特征的聚类
由于同类的特征可能有不同的表述,所以需要对挖掘出来的众多候选评价对象特征进行自动聚类。
因为同类特征具有相近含义,所以将特征语义相似度作为聚类依据。同时,在评论中,特征词和观点词经常是成对出现的,对于同类特征其对应的观点词往往是相同或相近的,所以将特征的观点词集相似度也作为聚类依据。
3.1 特征的语义相似度相似度度量
3.1.1 基于Hownet的词语相似度计算
在知网的基础上,刘群和李素建[11]提出了一种基于Hownet的词语相似度的计算方法。对于两个汉语词语W1和W2,如果W1有n个义项(概念):S11,S12,…,S1n,W2有m个义项(概念):S21,S22,…,S2m,对两个词语的概念任意两两组合进行相似度计算,取最大的概念相似度作为词语之间的相似度,计算公式如下:
将两个词语之间的相似度的问题归结为两个概念之间的问题。
基于Hownet的特征相似度算法的具体步骤描述如下:
(1)获得输入:两个特征W1和W2。
(2)查找hownet的语义网络文件,获得W1的概念集合(S11,S12,…,S1n)和W2的概念集合(S21,S22,…,S2m)。
(3)选择两个概念S1i,S2j,通过hownet的词典数据库计算两个概念的相似度。
(4)重复步骤(3),获得两个词语每一对概念之间的相似度值,根据式(1),从中选择最大值作为最终的词语相似度值。
算法主要利用词语的概念间相似度来衡量特征词语的相似度,但由于在分词阶段“词义排岐”(能根据词语所在上下文确定该词语的正确解释义项)还是一个无法解决的问题,因此该种算法考虑的都是孤立的两个词语的相似度。为了使本文的研究更加准确,需要考虑到特征的上下文信息,即特征和观点的共现信息。
3.1.2 基于特征和观点共现信息的特征相似度计算
在评论中,由于特征与观点词的共现关系,将同时出现的特征和观点称为“特征—观点对”,那么对于一个特征可能对应多个观点词。运用向量空间模型(VSM)表示产品特征信息,特征向量化为feather(O1,O2,…,Om),O1到Om表示feather所对应的全部观点词。
基于向量空间模型提起特征的观点词集的具体步骤如下:
步骤1:确定观点句:分析评论库中的每一个句子,如果该句中包含形容词,则确定该句为观点句。
步骤2:提取特征的观点词集:通过分析上一步确定的观点句,以单句为单位,将所有的形容词与评价对象的候选特征按出现在句子中的顺序存放在文件中。提取与形容词距离最近的特征,遍历特征的向量空间模型中的项,查看该形容词是否已经存在模型中。如果已经存在,将与形容词一样的项的权重加1;如果还未存在,将该形容词作为项加入到特征的向量空间模型中,并将该项的权重设置为1。
则特征t1和t2的相似度定义如下:
simA(Oi,Oj)为特征t1的观点词Oj和特征t2的观点词Oj基于hownet的词语相似度。
3.1.3 特征间的语义相似度计算
结合上面两种相似度算法定义特征间的语义相似度算法,按式(3)计算特征Si和Sj之间的相似度:
式中,simA(Si,Sj)为特征之间基于hownet的词语相似度;simA(Si,Sj)为基于特征和观点信息共现的特征相似度;a和b为参数,其中a+b=1。其中基于特征和观点共现信息的特征相似度的比重更大点。则将参数b从0.5~0.9每隔0.1运行一次,经过试验发现参数a取0.3,b取0.7特征的相似结果最好。
3.2 特征聚类
在聚类过程中,首先将每个特征看成包含一个特征的簇,以特征之间的相似度大小聚类,使得每个特征与该簇其他特征之间的相似度均超过设置的阈值missing image file,具体算法如下。
算法2特征的聚类算法
输入:候选评价对象特征集D,阈值missing image file
输出:特征簇集合F
for each seed∈D do //对所有特征扫描一遍
if seed不是任何特征簇中的特征 then
Seedlist.add(seed); //将seed加入种子队列中
for each t∈D do
if (t≠seed)AND(t不是任何特征簇中的特征) then
if sim(t,seed)>missing image filethen //将所有与特征seed相 似度大于missing image file的
SimItem.add(t); //未聚类特征加入待聚 类集合中
end if
end if
end for
for each f∈SimItem do //将SimItem中所有待聚 类特征扫描一遍
d=Seedlist.gethead(); //取出种子队列的队头种 子d
if sim(f,d)>missing image filethen //若特征f与种子d的相 似度大于missing image file,
Seedlist.add(t); //则将f加入种子队列 成为新的种子
end if
end for
C={f|f存在于Seedlist } //将种子队列中的特征一同 放入特征簇中
Seedlist.clear(); //清空种子队列
F=∪{C} //将得到的特征簇加入到特征簇 集合中
end if
end for
4 实验结果与分析
4.1 实验语料及性能评价指标
本文选取的是从网络上下载下来的评论数据,选取5种产品的客户评论作为实验语料进行实验,这5种商品分别为手机(三星Note2 N7100)、数码相机(索尼DSC-RX100)、DVD机(飞利浦DVP3600)、mp3播放器(苹果iPod touch4)以及书籍(《达芬奇的密码》)。为了选取合适的阈值,还需要一些评论语料作为训练语料,选取3种产品的客户评论作为训练语料,这3种产品分别为手机(诺基亚N9 )、数码相机(cannon EOS 70D、sony HX50 )。针对每一种产品评论,用人工标注的方法对评价对象特征进行标注得到特征集。
按照前面的方法利用C#语言开发了一个实验系统。为了评估方法的性能,本文采用Rand Statistics评价聚类的有效性。该聚类评价标准的具体内容[9]是:假设特征集L的一个聚类结果是R={R1,R2,…,Rk}特征集的已知划分为C={C1,C2,…,Cs},可以通过比较R与C的差异性来评价聚类的质量。对于特征集的任意一对特征(li,lj)统计下列项。
SS:li,lj在C中属于同一个类,在R中也属于同一个类。
SD:li,lj在C中属于同一个类,在R中不属于同一个类。
DS:li,lj在C中不属于同一个类,在R中属于同一个类。
DD:li,lj在C中不属于同一个类,在R中也不属于同一个类。
用a、b、c、d来表示SS、SD、DS、DD的数目。设a+b+c+d=n,n为N个特征中所有特征对的个数,n=N(N-1)/2,那么R与C之间的相似程度可用如下公式表明:Rand Statistic S=(a+b)/n。Rand Statistic的值介于0和1之间,该值越大,表明R与C的相似程度越大,聚类效果越好。
4.2 实验结果
根据上述方法,实现了一个评价对象特征抽取与聚类的程序模块。
在评价对象特征的抽取阶段,利用Apriori算法抽取频繁特征时,采用的最小支持度minsupport为2%。由于3项以上的频繁项可以很明显的看出不是评价对象特征,所以频繁项的最高维度k设置为3。通过对这5种产品的评论语料进行特征抽取实验得到各评价对象的特征。
在评价对象特征的聚类过程中,聚类算法中阈值均是非常重要的参数,在本实验中,经过对训练语料进行的阈值训练,的值取0.45,实验能得到较好的聚类结果。
表1列出了关于手机的几个具有代表性的特征聚类结果。
实验的聚类结果如表2所示。
网络上出现的用户评论蕴含了大量有价值的信息,对企业管理具有巨大的价值,也是用户决策的有效依据。评论中评价对象特征的提取是评论挖掘领域的基础关键性技术之一。
本文通过基于频繁项算法和剪枝方法提取评价对象特征,提出了一种基于hownet的词语相似度和特征与观点共现的信息的聚类方法,解决了特征在语料中拥有不同表述方式的问题,取得了较好的聚类结果。
鉴于特征抽取的准确率还不够理想,下一步将致力于提高评价对象特征抽取的准确率。同时,针对已经挖掘出来的评价对象特征,进一步判断客户评论中对于这些评价对象特征的情感倾向分布。
参考文献
[1] SENECALS,NANTELJ.The influence of online product recommendations on consumers’ online choices[J].Journal of Retailing,2004(80):159-169.
[2] 伍星,何中市,黄永文.产品评论挖掘研究综述[J].计算机工程与应用,2008,44(36):37-40.
[3] HU M, LIU B. Mining opinion features in customer reviews[J].In AAAI Conference on Artificial Intelligence, San Jose, California, USA, 2004: 755-760.
[4] YI J,NASUKAWA T, BUNESCUR R, et al. Sentiment analyzer: extracting sentiments about a given topic using natural language processing techniques[C].Proceedings of the 3rd IEEE International Conference on Data Mining. Washington: IEEE Computer Society, 2003: 427-434.
[5] POPESCUA M, ETZIONI O. Extracting product features and opinions from reviews[C]. Proceedings of HLT-EMNLP Vancouver, 2005, ACL, 2005: 339-346.