一种基于点评数据的语义词典构建方法与流程

文档序号:11133965阅读:226来源:国知局
一种基于点评数据的语义词典构建方法与制造工艺

本发明属于信息技术、数据挖掘技术领域,具体涉及一种基于点评数据的语义词典构建方法。



背景技术:

随着电子商务的迅猛发展,互联网上的点评从逐渐进入人们视野,到慢慢影响用户的选择,再到对品牌的影响正一步步加深。以酒店业为例,酒店希望借助技术手段获取用户的点评反馈,用于指导酒店的品牌管理和运营管理,提升品牌形象和服务质量。用户希望查看其他用户的点评,明确酒店的优点和缺点,以此作为预订的重要参考。Tripadvisor研究显示,超过85%的用户非常重视酒店的口碑质量,近90%的用户在做出预订决策前查看用户点评。

越来越多的用户乐于在互联网上分享自己的观点或体验,这类点评数据爆炸式增长,仅靠人工的方法难以应对在线海量点评的收集和处理。因此,迫切需要计算机帮助用户快速获取和整理这些点评信息,情感分析(Sentiment Analysis)技术应运而生。情感分析不仅是信息处理领域的研究热点,在产业界也引起了广泛关注。

要分析点评的情感,首先要识别出点评中的有价值的情感信息要素,这包括:1)评价对象,如“酒店”、“价格”等;2)评价成分,如“非常好”、“还算干净”等。其中,评价成分包括情感词(如“好”、“干净”等)、程度副词(如“非常”等)、普通副词(如“大都”等)以及否定词(如“不”等),评价成分不仅表达了情感,还通过其修饰成分加强、减弱或置反了情感表达句的情感极性,从而使情感表达得更加丰富。

情感词在情感分析中的重要性是不言而喻的。然而很多情况下,单独的情感词的极性是有歧义的,如“餐厅的价格很高”的“高”描述“餐厅价格”时表示贬义,而“餐厅员工工作效率很高”的“高”的描述“工作效率”时表示褒义。因此,在文本的情感分析中仅考虑情感词是远远不够的,还需要考虑评价对象与情感词的搭配,如<价格,高>,<工作效率,高>这样的二元搭配。

上述各类语义词典,无论是情感词词典、程度副词词典等,还是搭配词典等,对于文本情感分析有着举足轻重的作用。目前纯人工收集整理的词典资源,规模是不够的,效率也非常低。一种更好的方法是基于语料库的统计方法或机器学习方法,这种方法虽然会带来一些 噪音,但这时再介入人工,成本是比较低的。Bootstrapping是一种半监督的机器学习方法,在信息抽取、知识库构建领域获得广泛应用,也可以借鉴应用到语义词典构建中。



技术实现要素:

本发明针对上述问题,提供一种基于点评数据的语义词典构建方法,能够产生高质量的语义词典和模板库。

本发明采用的技术方案如下:

一种基于点评数据的语义词典构建方法,包括如下步骤:

1)获取点评数据,通过少量点评数据获得各个语义类的语义词,构建种子语义词典;

2)对点评数据的句子进行分词处理;

3)对分词后的点评数据,逐词判定其语义类并用语义类标签进行替换;

4)对标签替换后的点评数据进行断句,根据各语义类的名称及各语义类包含的具体词语生成模版;

5)将模版应用到语义类标签替换后的点评数据中,以抽取各语义类的语义词;

6)根据模版的重要性、推广性和准确性,对各模版进行打分;

7)选取得分最高的部分模版,根据选取的模版及其打分计算各模版抽取的语义词的得分,进而选取得分最高的部分语义词对语义词典进行扩充;

8)步骤3)至步骤7)迭代进行,直到挑选出来的语义词不正确时迭代终止,得到最终的语义词典,并由各模版构成模版库。

进一步地,步骤1)通过聚焦爬虫从点评网站获取在线点评数据,并通过人工查看少量点评,整理各个语义类的语义词,形成种子词典。

进一步地,步骤2)首先采用基于词典的最大匹配分词方法进行分词,然后针对分词有歧义的部分采用序列标注的分词方法得到正确的分词结果;所述序列标注的分词方法将词的切分问题转换为字的分类问题,每个字根据其在词中的不同位置,赋予不同的位置类别标记,基于这样的标记序列确定句子的切分方式。

进一步地,步骤3)所述语义类包括评价对象词、评价属性词、情感词、程度副词、普通副词、否定词、插入词。

进一步地,步骤4)根据“。”、“!”、“?”3个标点符号进行断句,并限定模版的最小长度为3个词,最大长度为7个词。

进一步地,步骤5)抽取各语义类的语义词时,当某个点评片段对应的模版与步骤4)所得模版的差异只有一个词时,将该词作为相应语义类的实例词。

进一步地,步骤7)所述得分最高的部分模版是得分最高的前5~10%的模版,所述得分最高的部分语义词是得分最高的前5~10%的语义词。

进一步地,在步骤8)之后,由人工进行确定语义词典中情感词的极性,以及情感词与评价对象词、评价属性词的搭配极性;人工确定过程中,将其所属模版对应的点评片段作为判定的依据。

与纯人工收集的方式相比,本发明采用的基于点评语料的方法效率高,可以在较短时间内整理得到较大规模的语义词典;与传统Bootstrapping方法相比,本发明提出的模版打分能有效地衡量模版嵌套的情况;与传统基于Bootstrapping的语义词典构建方法相比,本发明可以同时抽取多个语义类。

附图说明

图1是本发明的基于点评数据的语义词典构建方法的步骤流程图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面通过具体实施例和附图,对本发明做进一步说明。

对于语义词典的构建,本发明采用基于自举(Bootstrapping)的方法。自举,即自扩展或自举,是一种半监督的机器学习方法,可以用于同时抽取语义词典和模板。这种方法的思想基于这样的观察:抽取模板可以用于抽取新的实例,反过来这些实例又可以用于抽取新的模板。这种方法的优势在于不需要标注的训练语料,仅仅需要少数种子。首先通过人工干预得到初始化的种子词语,利用种子词语获得模板,进而通过模板获得种子词语,如此迭代进行。在每一轮迭代中,都将产生新的标注数据,最优的词语会添加到相应到语义词典中,最优的模版也会添加到模版库中,用这些新的标注数据重新学习模型,从而又可以产生新的数据,如此循环往复,直到最终收敛结束,从而获得更多的种子词语和模板。这就是最基本的Bootstrapping算法(或过程)。

语义词典的语义类包括评价对象词(Obj)、评价属性词(Attr)、情感词(Sent)、程度副词(Dgr)、普通副词(Adv)、否定词(Neg)、插入词(Inter)等,每个语义类都包括若干词语,模版就是由语义类名称或具体词语组成的序列。

本发明在现有的Bootstrapping方法基础上进行改进,图1是本发明方法的步骤流程图,下面是具体的实施步骤:

步骤1:数据准备。通过聚焦爬虫从携程等主流点评网站获取在线点评数据。

步骤2:种子词典构建。人工查看少量(如500条)点评,整理各个语义类的语义词,形成种子词典,将该语义词典记为SemLex。

步骤3:点评分词。中文分词是中文自然语言处理的基础步骤,本发明分词采用词典分词和统计分词融合的方法。首先采用基于词典的最大匹配分词方法,针对分词有歧义的部分再采用序列标注的分词方法。

基于词典的最大匹配分词方法,给定词典,对于待分词的汉字序列,依次寻找匹配的最长词典词,无匹配者则作为单字词处理,直至该汉字序列处理完毕。按照对汉字序列扫描方向的不同,该方法又可以分为:正向最大匹配(从左向右匹配)和逆向最大匹配(从右向左匹配)。例如,对于序列“当原子结合成分子时”,正向最大匹配结果为“当|原子|结合|成|分子|时”,而逆向最大匹配结果为“当|原子|结合|成分|子时”。

显然,正向最大匹配和逆向最大匹配都不能很好地处理切分歧义问题。正向最大匹配和逆向最大匹配也可以结合形成双向最大匹配,双向匹配时正向和逆向匹配不一致的地方,往往是潜在歧义的地方。有歧义往往需要根据具体上下文确认分词结果。有监督的序列标注方法能够充分的挖掘上下文的丰富特征,因此有歧义的情况下本发明引入序列标注方法消除歧义。该方法将词的切分问题转换为字的分类问题,每个字根据其在词中的不同位置,赋予不同的位置类别标记,比如词首、词中、词尾和单字词。基于这样的标记序列,很容易确定句子的切分方式。其中,B(Begin)、M(Middle)、E(End)、S(Single)分别表示词首、词中、词尾、单字词。有了字的标记序列,符合正则表达式“S”或“B(M)*E”的字序列表示一个词,从而很容易地完成句子切分。为了实现序列标注任务,本发明采用条件随机场模型(Conditional Random Fields,CRF),该模型在自然语言处理中得到广泛应用,并取得了很大成功。具体特征包括:前一个字、当前字、后一个字、前一个字与当前字、当前字与后一个字,以及基于这些一元特征的二元特征。条件随机场模型利用提取的这些特征,预测出的每个字的类别标记。

最大匹配方法的词典以及有监督的条件随机场模型的训练学习语料都来自本发明人工标注的10万条酒店点评。

步骤4:语义类标签替换。对分词后的点评逐词判定其语义类并用语义类标签替换,如“餐厅|的|价格|很|高”,替换为“Obj|的|Attr|Dgr|Sent”,对于点评起始和结束位置分别添加“Start”和“End”标签,点评中除了“。”、“!”、“?”之外的标点符号也采用“Punc”标签替换。

步骤5:模版生成。该步骤对标签替换后的点评数据进行断句,根据各语义类的名称及各 语义类包含的具体词语生成模版。本实施例中,根据“。”、“!”、“?”3个标点符号断句,限定模版最小长度3个词,最大长度7个词,扫描标签替换后的点评,生成候选模版。

步骤6:语义词抽取。将候选模版应用到语义类标签替换后的点评中。当某个点评片段对应的模版与候选模版的差异只有一个词时,将该词作为相应语义类的实例词。例如,对于点评片段“价格|很|高”,其中“价格”属于评价属性词,“高”属于情感词,而“很”不属于任何语义类,这时其对应的模版为“Attr|很|Sent”。这与候选模版“Attr|Dgr|Sent”只有中间一个词不同,则将“很”抽取出来作为程度副词的实例词。

步骤7:模版打分。本发明从两方面打分,一方面通过频次衡量模版的重要性和推广性,另一方面通过在语义词典中的命中率衡量模版的准确性。

模版pati重要性和推广性打分S(pati)的计算公式如下:

其中,|pati|是模版pati的长度,以词数计算,f(pati)表示模版pati的频次,C(pati)表示嵌套pati的模版集合,如点评片段“餐厅|的|价格|很|高”对应的模版“Obj|的|Attr|Dgr|Sent”嵌套点评片段“价格|很|高”对应的模版“Attr|Dgr|Sent”。

pati准确性打分P(pati)的计算公式如下:

其中,T(pati)表示模版pati抽取的语义词集合,f(t)表示语义词t的频次,SemLex为步骤1构建的种子语义词典。

我们采用Sigmoid函数将S(pati)归一化到(0,1),进而融合两方面的打分得到F(pati),计算公式如下:

其中α为重要性和推广性打分S(pati)的权重,取值范围为[0,1]。本发明更注重模版的准确性,故将α=0.4,还可以根据具体应用加以调整。

步骤8:模版挑选。根据F(pati)选取得分最高的前5~10%的模版。

步骤9:语义词打分。根据挑选的模版patk及其打分,计算该模版抽取的语义词的得分,计算公式如下:

步骤10:语义词典扩充。选取得分最高的前5~10%的词添加到语义词典SemLex中。

步骤4到步骤10迭代进行。迭代终止条件。挑选出来的语义词明显不正确时终止。

步骤11:极性确定。对于情感词的极性,以及情感词与评价对象词、评价属性词的搭配极性,由人工完成。人工确定过程中,将其所属模版对应的点评片段作为判定的依据。

结果表明,本发明在准确率和召回率上都取得了不错的性能,产生高质量的语义词典和模板库。

在1000万条酒店点评上的实验结果表明,本发明提出的语义词典构建方法是有效的。抽取的评价对象词有4835个,如“早餐”、“网络”等;抽取的评价属性词有175个,如“价格”、“态度”等;抽取的情感词有2393个,如“舒服”、“赞”等;抽取的程度副词有92个,如“十分”、“过分”等;抽取的普通副词有214个,如“十分”、“过度”等;抽取的否定词有28个,如“木有”、“不会”等;抽取的插入词有143个,如“感觉”、“总的来说”等。

以上实施例仅用以说明本发明的技术方案而非对其进行限制,本领域的普通技术人员可以对本发明的技术方案进行修改或者等同替换,而不脱离本发明的精神和范围,本发明的保护范围应以权利要求书所述为准。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1