基于中文句法结构的关系挖掘

2014-09-29 10:31李付民
计算机工程 2014年7期
关键词:元组句法结构挖掘机

李付民,杨 静,贺 樑

(华东师范大学计算机科学技术系,上海 200241)

1 概述

关系挖掘是指从文本中找出多个实体和能够表示这些实体之间关系的过程。根据所挖掘的关系类型的不同,关系挖掘可以分为2个主要类别:(1)针对特定关系类型(如夫妻、总部)进行的挖掘[1-2]。这类挖掘方法的好处是准确率和召回率高,但是由于在实际情况下总会存在一些关系类型是没有包含在预定义的关系集合中的,因此该类方法不具有良好的拓展性和移植性。(2)开放的关系挖掘方法[3-4]。这类方法不对关系的具体类型作任何限制而仅仅定义关系的表现形式。例如:将关系关键词定义为动词,即可从句子中挖掘出以动词表现出来的关系;当然也可以将关系关键词定义为名词,这样就可以挖掘出以名词为关键词的关系。由于开放式关系挖掘方法中并没有预定义关系种类,可以从不同类型的数据集中找到更多的关系类型和关系元组实例,因此既可以应用于封闭数据集[5],又可以应用于网络环境中[3-4],具有良好的移植性。

文献[3]提出一种传统的开放式关系挖掘方法,可以从文本中挖掘关系元组,并且这个挖掘过程中并不需要人的参与,但存在以下问题:(1)需要大量的训练数据来得到挖掘机,并且对训练集的依赖性很大;(2)在挖掘过程中,其将挖掘问题转化为序列标记问题,而序列标记带有一定的不确定性,当句子长度增大时错误率会快速上升;(3)存在一些无信息关系和不连续关系。其中,无信息关系是指在挖掘到的关系元组中的关系关键词没有包含一些重要的信息,“不连续”关系是指挖掘到的关系元组中的关键词是由一些不连续的词组成。为解决问题(1)和问题(2),文献[6]将维基百科作为训练集来得到挖掘机并且在挖掘过程中使用到了语法解析,其准确率和召回率在文献[3]的基础上取得了进一步的提升。但文献[6]方法的缺点也非常明显,其需要大批量的数据作为训练集,与文献[3]方法相比,该方法的挖掘速度明显降低。为解决问题(3),文献[4]对文献[3]的挖掘方法进行了改进,其改进集中在以下3点:(1)定义了关系的词性模板,这些词性模板是由以动词为核心的连续词语组成的。该改进有效地避免了不连续关系,同时也减少了无信息关系;(2)规定了关系词的位置,即关系词必须出现在实体对的中间;(3)要求关系词必须具有一定的通用型,即如果一个关系词仅仅满足很少的实体对,则说明这个关系词太特殊化了,这种关系词是不能表达实体间真正的关系的,所以在挖掘的过程中将会被丢弃。

文献[4]将关系关键词定义为以动词为核心的连续词语,导致无法挖掘以名词或其他词性的词作为关系的实体之间的关系。将关键词定义为名词也会遇到类似的问题。因此,把关系关键词定义为简单的词性组合是不合适的,尤其是对于复杂的中文结构而言。笔者通过对中文语法的观察和统计,发现中文中存在一些典型的句法结构,并且这些句法结构和实体关系之间存在映射,因此,本文提出一种基于中文句法结构的关系挖掘算法,直接利用句法结构进行中文文本的关系挖掘。

2 基于中文句法结构的关系挖掘算法

2.1 相关概念

本文算法涉及的相关概念如下:

(1)动态关系R:动态关系也可以称之为事件关系,是指未预先定义具体的关系,而通过现实世界中的某个事件表现出来的实体关系。与之相对应的静态关系,是指在挖掘之前就预定义的关系,本文挖掘的关系类型是一种动态关系。

(2)实体集EC=(E1E2…En):在一个句子中出现的命名实体构成的集合。

(3)关系关键词集RKWC=(KW1KW2…KWm):在一个句子中出现的所有可以作为关系关键词成分的词语构成的集合。

(4)实体关键词映射矩阵AEK:这个矩阵中的元素Aij是实体集EC中实体Ei和关系关键词集RKWC中关键词在语法树上的语法关系,如果不存在就用null表示。AEK是一个n×m的矩阵,其中,n表示实体集EC的大小;m表示关系关键词集RKWC的大小。

(5)关键词映射矩阵AKK:这个矩阵中的元素Aij是关系关键词集合中的关键词KWi和KWj在语法树上的语法关系,如果不存在就用null表示。AKK是一个m×m的矩阵,其中,m是关系关键词集合的大小。

(6)挖掘模板P=(ER1ER2… ERnRR1RR2…RRm):模板是由实体和关键词及关键词和关键词在语法树上的关系组成的,而这种关系通常以路径或者图的形式表现出来[7]。本文将这个路径或图表示成词对的集合。在这个集合中,包含2种不同的元素:1)实体和关键词及它们之间的语法关系构成的三元组:;2)关键词之间的语法关系构成的三元组:,其中,M表示其在语法树上的关系;E表示实体;KW表示关键词。

例如:“摄影师/n丁玉珍/nr把/p冲/v好/a的/u照片/n交给/v了/u孔玲/nr”,从这个句子里可以得到实体集EC=(丁玉珍,孔玲),关系关键词集RKWC=(摄影师,把,冲,照片,交给),实体关键词映射矩阵AEK和关键词映射矩阵AKK:

可以发现这个矩阵实际上是个稀疏矩阵,可便于在实验中使用。其中,nsubj表示的是名词性主语;dobj表示的是直接宾语;nn表示的是名词修饰;ba表示的是把字结构[8]。

2.2 方法流程

本文提出的算法利用实体和关系关键词在句法结构上的映射关系来挖掘关系实例。算法主要流程如图1所示。该算法主要由3个部分构成:挖掘机训练过程,关系挖掘过程和关系元组准确化过程。首先利用训练集训练得到一个单通道挖掘机;然后使用这个挖掘机对目标语料中蕴含的关系进行挖掘;最后对挖掘到的关系元组进行进一步的准确化。

图1 基于句法结构的关系挖掘流程

2.2.1 挖掘机训练过程

这一部分主要是根据训练数据集训练单通道挖掘机。单通道挖掘是指对数据集中的每个句子只进行一次挖掘就完成了整个挖掘过程[3]。训练集的句子都包含了一个关系元组(E1RKWC E2),其中,E1和E2是实体;RKWC是能够表示实体间关系的关键词集合。挖掘机训练过程如下:首先对每个句子进行语法解析;然后根据这些关系元组中实体和关键词在语法树上的语法关系及关键词和关键词在语法树上的语法关系得到用于关系挖掘过程的挖掘模板;最后得到的所有模板就构成单通道挖掘机。

例如:“摄影师/n丁玉珍/nr把/p冲/v好/a的/u照片/n交给/v了/u孔玲/nr”,已知实体E1=“丁于珍”,实体E2=“孙玲”,关系关键词集RKWC=(KW1=把,KW2=照片,KW3=交给),利用解析器可以得到图2所示的句子结构。

图2 句子结构

可以发现,实体对和关系关键词在结构上的映射关系,从而得到挖掘模板:

将该模板保存在挖掘机里。由于从不同的结构形式中可以得到不同的挖掘模板,因此挖掘机可以方便地拓展。

本文设计了一个基于汉语中类双宾语和单宾语的单通道挖掘机。对于类双宾语结构,将关系定义为:2个实体通过在一个事物上发生的动作而产生的联系,这种关系表现形式为:动词+名词或者介词+名词。之所以称为类双宾语而不是双宾语,是因为在本文算法中有些典型句式在汉语的句法结构里并不属于严格意义上的双宾语结构,但它也能表达出本文所定义的关系表现形式,即2个实体通过在一个事物上的动作或行为产生的联系。例如:“约翰偷了玛丽的苹果”,这个句子在汉语中并不是双宾语结构,但却也能表达出实体“约翰”和“玛丽”通过在物体“苹果”上的动作“偷”发生了联系,因此,他们之间是有关系的。对于单宾语结构,把关系定义为2个实体通过一个相互之间的行为产生的联系。例如:“下岗的马林接替战绩不佳的唐尧东”中,“马林”和“唐尧东”通过一个“接替”行为而产生了联系。

由于双宾语结构和单宾语结构在汉语研究中占有很重要的地位,因此很容易得到这些句式集合,表1给出了部分典型结构和实例。表中并没有列举所有的结构,但是只要发现了这种类型的结构都可以加入到表中,而训练过程不需要变化。

表1 REBSS系统中用到的主要句式结构

2.2.2 关系挖掘过程

本过程主要是利用前面训练得到的“挖掘机”对文本进行关系挖掘。

(1)文本预处理:这一过程中会去除文本中的一些噪音,并对文本进行分句,以形成后续过程中使用到的数据集。

(2)分词、词性标注和命名实体识别:对句子进行分词是为了形成句子的“词序列”:W1W2… Wi… Wm-1Wm,其中,Wi代表了在句子的一个词并且“词序列”中的每个词Wi的排列顺序和句子中的顺序是一致的。对句子进行命名实体识别的过程中,如果该句子中没有实体或者实体的个数少于2个,则把该句子抛弃。此步骤完成后,可以得到每个句子的实体集EC和关系关键词集RKWC。

(3)语法解析:在这一部分主要是根据前面得到的每个句子的“词序列”来进行语法解析,得到每个词之间在语法上的关系,最终形成实体关键词映射矩阵AEK和关键词映射矩阵AKK。

(4)关系挖掘:首先取出挖掘机里的一个挖掘模板P;然后把这个模板中的所有元素都映射到实体关键词映射集合AEK和关键词映射矩阵AKK,如果元素包含实体就映射到AEK,否则就映射到AKK中;最后,如果所有的元素都可以映射成功就表示这个映射过程成功完成,就把矩阵AEK和AKK中的实体和关系关键词取出,形成关系元组;否则继续从挖掘机中取下一个模板,直到取到最后一个模板。如果所有的模板都无法成功映射,就表示该句子中没有挖掘到关系。

2.2.3 关系元组准确化过程

这一部分主要是对关系挖掘过程得到的关系元组进行进一步的准确化。所谓准确化是指从句子中再找到一些能够更清楚明白地表达实体间关系的词,主要包括形容词、副词,将其合并到关系关键词中。本文把对关键词的准确化分为2种:

(1)对动词关键词的准确化,而对于这种情况可以作为准确成分的是这个动词前后直接相连的动词和副词。

(2)对名词关键词的准确化,而对于这种情况可以作为准确成分的是和这个名词直接相连的名词和形容词。

准确化算法的具体描述如下:

3 实验与结果分析

3.1 实验设置

为证明本文提出方法的可行性,针对汉语中的类双宾语结构和单宾语结构,设计一个单通道挖掘机——宾语结构挖掘机,并利用这个宾语结构挖掘机对预料库中的句子进行关系挖掘。为说明本文提出方法既可以应用于网络环境中也可以应用于封闭的环境中,实验主要使用了3个数据集:(1)新浪新闻语料:从新浪新闻中搜集整理得到的新闻语料,其中包括体育、娱乐等不同的类型。(2)搜狗语料库:从网上下载得到的语料,其中包括财经、体育、教育等不同分类的文章。(3)1998年1月《人民日报》:1998年1月份《人民日报》报道的所有文章,所有文章都经过人工标注。本文主要进行以下2个实验:(1)利用宾语结构挖掘机对3个不同的语料库进行初步的挖掘实验:在这个过程中会把来自网络的语料库(新浪语料和搜狗语料)和封闭的语料库(人民日报)都交给宾语结构挖掘机,进行单通道挖掘。挖掘完成后,可以得到初步的挖掘结果,并对结果进行评估。(2)对得到的初步的挖掘结果进行准确化实验:在这个过程中,会把在每个语料库上得到的所有的关系元组(包含判定为正确的和判定为错误的元组)作为准确化实验的输入部分,然后利用关系元组准确化算法进行实验,并对这个准确化后的结果进行评估。

3.2 实验结果

对实验结果的评估标准仍然是采用最为常见也是最重要的标准:准确率P=C1C2,召回率R=C1C3,综合评价指标F值:F=2 PR(P + R)。其中,C1表示挖掘到的关系元组中正确的个数;C2表示挖掘到的关系元组的总数;C3表示文本中的类双宾语结构和单宾语结构所包含的关系元组个数。

3.2.1 关系挖掘实验

利用宾语结构挖掘机对3个不同的语料库进行初步的挖掘实验,结果如表2所示。从中可以发现,本文算法在新浪网络语料和搜狗语料库上的性能稍微低于《人民日报》,这是由于对开放语料的“清洗”处理并不是完美的,因此其中存在一些噪音,而这些噪音导致了挖掘性能的差异。但是这种差异并不大,从这个方面也说明了提出的方法既可以应用于网络环境中也可以应用于封闭的环境中。

表2 关系挖掘实验结果 %

对于一些结构复杂的句子有时并不能找到实体间的关系,这是因为句子结构的复杂性导致了语法解析器的解析正确性下降了,导致了这个句子中所蕴含的关系元组是无法被本文训练的“单通道挖掘机”找到的。例如:“养路工/n邵永东/nr躲/v到/v路旁/s退休/vn工人/n朱允友/nr家里/s”对于这个句子找到的关系关键词集是(退休,家),也就是实体“邵永东”和“朱允友”通过“退休”和“家”建立起了联系。可是通过观察这个句子可以发现实际上关系关键词集应该是(躲到,家),也就是说“邵永东”通过“躲到”“朱允友”的“家”里而使他们之间建立起了联系。之所以会出现这个问题就是因为没能正确得到其句法结构的原因,而这个原因也是提出的方法的一个限制。一方面,未来如果语法解析的效果更好一些,这个问题可以得到一部分的解决;另一方面以后在挖掘方法上可以加入一些统计的方法,来改善这个问题。

而对于一些句子能够正确得到其结构,但是得到的关系关键词却不能清晰地表达出实体之间的关系。例如:“/w肯尼亚选举委员会/nt宣布/v现任/b总统/n莫伊/nr在/p 1997年/t底/f举行/v的/u大选/vn中/f获胜/v”。从这个句子中可以得到关系元组(肯尼亚选举委员会,宣布,莫伊),虽然这个关系可以被“挖掘机”找到,但是这个关系关键词“宣布”却没有清晰地表达出实体间的关系,也即挖掘出了“无信息”的关系[8]。

3.2.2 关系元组准确化实验

针对关系关键词无法正确而清晰地表达实体间关系的情况,对挖掘得到的关系元组进一步准确化,具体见准确化算法。通过对关系元组的准确化可在原来结果的基础上进一步提高性能,结果如表3所示。从中可以发现一个有趣的问题:在《人民日报》上的性能要稍低于新浪网络语料和搜狗语料库,这一点和表2中的结果恰好相反。通过观察数据集,发现这是因为在新浪网络语料和搜狗语料库中的一些原来是错误的元组经过准确化后可以得到正确的元组,而在《人民日报》中,这样的元组所占的比例较少。其中,在新浪语料库可以通过准确化得到的正确元组占元组总数的比例为15%,在搜狗语料库中这样的元组所占的比例为17%,而在《人民日报》中只占了7%。

表3 关系元组准确化实验结果 %

从表3来看,准确化后的关系元组的准确率确实比之前要有所提高。例如:“/w脱/v下/v铁道兵/n军装/n的/u石学海/nr调/v到/v大连电视台/nt”。最初从这个句子中得到了关系元组(石学海,到,大连电视台),但关系关键词“到”却没有能清晰地表达出“石学海”和“大连电视台”的关系,甚至使人无法理解“到”是什么含义。在进行准确化后,可以得到关键词是“调到”,这个词就使人们很容易理解了。然而在极少的一些情况下,准确化过程会把原来清晰的关系变得不清晰。例如:“被害人/n桂召金/nr因/p支气管炎/n发作/vi找/v吴伟/nr1医治/v”,最初可以从这个句子中得到关系元组(桂召金,找,吴伟),但在经过准确化后得到的关系元组是(桂召金,发作找,吴伟),这个关系关键词“发作找”反而就很难理解了。

将本文算法的实验结果与文献[9-10]方法的实验结果相比,可以看出,本文算法可以获得比传统方法更丰富的关系类型。

4 结束语

本文提出一种基于中文句法结构的关系挖掘算法,同时设计一个针对汉语中类双宾语结构和单宾语结构的单通道挖掘机,利用其进行关系挖掘。本文算法无需大量训练集,降低了对训练集的依赖性,并且在挖掘过程中使用语法解析提高了准确率,同时也减少了无信息关系元组的出现。实验结果表明,该算法具有良好的拓展性,能够获得较为丰富的关系类型。下一步工作将主要集中在以下2个方面:(1)由于现在的方法对挖掘到的关系元组没有采取自动的有效性验证,因此将来考虑采用一种有效性验证方法来对关系元组的正确性进行自动验证,例如可以采用基于冗余的验证[11]。(2)利用汉语中其他典型句法结构来训练单通道挖掘机,以增强其挖掘关系元组的能力。

[1]Agichtein E,Gravano L.Snowball:Extracting Relations from Large Plain-text Collections[C]//Proc.of the 5th ACM International Conference on Digital Libraries.Boston,USA:ACM Press,2000:85-94.

[2]Brin S.Extracting Patterns and Relations from the World Wide Web[R].Palo Alto,USA:The Stanford University InfoLab,Technical Report:SIDL-WP-1999-0119,1998.

[3]Banko M,Cafarella M J,Scderland S,et al.Open Information Extraction from the Web[C]//Proc.of the 20th International Joint Conference on Artificial Intelligence.San Francisco,USA:Morgan Kaufmann Publishers Inc.,2007:2670-2676.

[4]Fader A,Soderland S,Etzioni O.Identifying Relations for Open Information Extraction[C]//Proc.of Conference on Empirical Methods in Natural Language Processing.Stroudsburg,USA:Association for Computational Linguistics,2011:87-96.

[5]Shinyama Y,Sekine S.Preemptive Information Extraction Using Unrestricted Relation Discovery[C]//Proc.of HLTNAACL’06.Stroudsburg,USA:Association for Computational Linguistics,2006:304-311.

[6]de Marneffe M,MacCartney B,Manning C D.Generating Typed Dependency Parses from Phrase Structure Parsers[C]//Proc.of International Conference on Language Resources and Evaluation.Genoa,Italy:[s.n.],2006:449-454.

[7]Takamatsu S,Sato I,Nakagawa H.Reducing Wrong Labels in Distant Supervision for Relation Extraction[C]//Proc.of the 50th Annual Meeting of the Association for Computational Linguistics.Stroudsburg,USA:Association for Computational Linguistics,2012:721-729.

[8]Chang P C,Tseng H,Jurafsky D,et al.Discriminative Reordering with Chinese Grammatical Relations Features[C]//Proc.of the 3rd Workshop on Syntax and Structure in Statistical Translation.Stroudsburg,USA:Association for Computational Linguistics,2009:51-59.

[9]李维刚,刘 挺,李 生.基于网络挖掘的实体关系元组自动获取[J].电子学报,2007,35(11):2111-2116.

[10]邓 擘,郑彦宁,傅继彬.汉语实体关系模式的自动获取研究[J].计算机科学,2010,37(2):183-185.

[11]Downey D,Etzioni O,Soderland S.A Probabilistic Model of Redundancy in Information Extraction[C]//Proc.of International Joint Conference on Artificial Intelligence.San Francisco,USA:Morgan Kaufmann Publishers Inc.,2005:1034-1041.

猜你喜欢
元组句法结构挖掘机
Python核心语法
挖掘机尿素喷嘴散热改进
海量数据上有效的top-kSkyline查询算法*
基于减少检索的负表约束优化算法
现代汉语句法结构解读
《基本句法结构:无特征句法》评介
露天采矿挖掘机的维修保养
徐工XW1300C大型挖掘机
挖掘机的较量:履带式挖掘机VS.轮式挖掘机
面向数据流处理的元组跟踪方法