CN101937430B - 一种汉语句子中事件句式的抽取方法 - Google Patents

一种汉语句子中事件句式的抽取方法 Download PDF

Info

Publication number
CN101937430B
CN101937430B CN201010272667.9A CN201010272667A CN101937430B CN 101937430 B CN101937430 B CN 101937430B CN 201010272667 A CN201010272667 A CN 201010272667A CN 101937430 B CN101937430 B CN 101937430B
Authority
CN
China
Prior art keywords
block
sentence
event
syntax
target
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201010272667.9A
Other languages
English (en)
Other versions
CN101937430A (zh
Inventor
周强
陈丽欧
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
CERTUSNET CORP
Original Assignee
Tsinghua University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tsinghua University filed Critical Tsinghua University
Priority to CN201010272667.9A priority Critical patent/CN101937430B/zh
Publication of CN101937430A publication Critical patent/CN101937430A/zh
Application granted granted Critical
Publication of CN101937430B publication Critical patent/CN101937430B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明提出了一种汉语句子中事件句式的抽取方法,包括以下步骤:计算机初始化,其中,所述计算机初始化包括定义相关术语,加载数据文件,设定数据结构和加载基本处理模块;以所述计算机初始化的信息作为输入数据;根据所述输入信息抽取事件句式;根据所述事件句式得到事件块;获取每个所述事件块的通用角色标注结果;根据所述通用角色标注结果得到每个所述事件块的专用角色标注结果。通过本发明的方法,能够灵活运用启发式规则,使得整个处理过程更符合语言自身的特点,同时,该方法不需要做完全句法分析,降低了对句法分析器的要求,因此便于利用现有的各种分析工具,实现汉语浅层语义分析。

Description

一种汉语句子中事件句式的抽取方法
技术领域
本发明涉及自然语言处理应用领域,特别涉及一种汉语句子中事件句式的抽取方法。
背景技术
语义角色标注(Semantic Role Labeling),又被称作浅层语义分析(ShallowSemantic Parsing),它是对自然语言句子语义理解的一种探索,主要标注与句子中目标谓词相关成分的语义角色。
语义角色标注过程通常有四个阶段:1)过滤,通常使用一些简单的启发式规则,将句法分析结果中那些不可能成为语义角色的标注单元(句法成分、短语等)过滤掉;2)语义角色识别,识别出哪些标注单元是某一目标动词的论元;3)语义角色分类,对确定为目标动词论元的标注单元标注语义角色;4)后处理,使用一些启发式规则,对标注结果做进一步调整,还有一些系统将某些阶段进行合并。
在现有的标注系统中,语义角色标注大多采用的是统计学习的方法。基本思想是根据一定的语言学知识列出标注基本单元的各种特征,并与该单元的语义角色类型组成学习的实例,最后使用某种学习算法对这些实例进行自动学习,以便对新的实例进行预测。Pradhan等人总结了目前常用的基本特征,包括谓词信息、路径信息、中心词信息、动词框架信息等,这些特征从不同的侧面反映了带标注单元的语义角色信息。
但是,现有的语义角色标注技术没有单独的事件句式抽取阶段,而是将其融合在语义角色标注的成分选择与特征选择部分,这样会缺乏直观的描述能力,不利于深入挖掘语言模型的知识,因此不能很好的把握事件句式的句式语义对应关系,而本发明则把事件句式的抽取作为一项单独的任务,便于使用不同的技术,来达到不同的分析目标。
发明内容
本发明的目的旨在至少解决上述技术缺陷之一。
本发明提出的汉语句子中事件句式的抽取方法,不是只对单个待标注单元进行特征分析,而是着眼于整个句子的结构特点,对汉语句子依据不同结构进行细分类,再结合各类别句子所具有的不同语言特点,灵活运用启发式规则,使得整个处理过程更符合汉语自身的描述特点。同时,该方法不需要做完全句法分析,降低了对句法分析器的要求,可以克服目前汉语自动句法分析不成熟的缺陷,便于利用现有的各种分析工具,实现汉语浅层语义分析。
为达到上述目的,本发明提出了一种汉语句子中事件句式的抽取方法,包括以下步骤:计算机初始化,其中,所述计算机初始化包括定义相关术语,加载数据文件,设定数据结构和加载基本处理模块;以所述计算机初始化的信息作为输入数据;根据所述输入信息抽取事件句式;根据所述事件句式得到事件块;获取每个所述事件块的通用角色标注结果;根据所述通用角色标注结果得到每个所述事件块的专用角色标注结果。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明合并下层句法块模块的处理流程;
图2为本发明事件知识库检索模块的处理流程;
图3为本发明合并规则抽取模块的处理流程;
图4为本发明事件句式分类抽取流程图;
图5为本发明事件内容分析系统总体结构;和
图6为本发明事件句式抽取模块的处理流程。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。
本发明是为了克服传统的语义角色标注方法只能针对单个待标注单元进行特征分析的不足,而提出的一种汉语句子中事件句式的抽取方法,该方法不是只对单个待标注单元进行特征分析,而是着眼于整个句子的结构特点,且对汉语句子依据不同结构进行细分类,再结合各类别句子所具有的不同语言特点,灵活运用启发式规则,使得整个处理过程更符合汉语自身的描述特点。另一方面,该方法不需要做完全句法分析,降低了对句法分析器的要求,可以克服目前汉语自动句法分析不成熟的缺陷,便于利用现有的各种分析工具,实现汉语浅层语义分析。
本发明提出的汉语句子中事件句式的抽取方法,具体包括:
(1)定义术语
本发明的实现过程使用到一些自定义的术语,现分别介绍如下:
(1.1)TCT
TCT即清华汉语树库(Tsinghua Chinese Treebank)的简称,在实现过程中,本发明将使用到该库中所使用到的词性标注集。
(1.2)词性标注集
本发明中使用到的词性标注集有TCT原始词性标记集,文中句子使用的一些TCT原始词类标记定义如表1.1所示:
                   
标记     词性描述
                   
a        形容词
n        名词
d        副词
v        动词
vJY      动名词
、       顿号
。       句号
?       问号
!       叹号
……     省略号
,       逗号
;       分号
——     破折号
u        助词
p        介词
                   
表1.1
为了便于利用其他体系的词类标记,本发明中还使用了扩展的TCT词性标记集,其他体系的词类标记集合(如北大词性标记集合)可以映射到该扩展TCT词性标记集中,文中句子使用的一些扩展TCT词性标记定义如表1.2所示:
                                                  
标记     词性描述
                                                  
a        形容词
n        名词
d        副词
v        动词
vN       名动词
vJY      兼语动词
wD       顿号
wE       结句点号:如句号、问号、叹号、省略号等
wP       分隔点号:包括逗号、分号、破折号
uJDE     结构助词:的、之
p        介词
                                                  
表1.2
(1.3)词语切分和词性标注的句子
具体地,先经过分词处理,然后对每一个词都标注上某一特定词性标注集合的词性的句子,这个词性既可以是表1.1中的原始TCT词性,也可以为表1.2中的扩展TCT词性。
举例1:
帮助/vJY  库区/n  人民/n  重建/v  家园/n  、/、  发展/v  生产/v  。/。
这是对句子“帮助库区人民重建家园”做分词处理,并对分出的每个词进行原始TCT词性标注的结果,例如“库区/n”,其中“库区”是词,“n”是这个词的词性(名词),词和词性之间以斜杠相连,两个词之间用空格隔开。
(1.4)目标动词
具体地,表示为给定的句中特定的谓词。
举例2:对句子“帮助/vJY 库区/n 人民/n 重建/v 家园/n 、/、 发展/v 生产/v 。/。”,给定谓词“重建”,重建就是这个句子的目标动词。
(1.5)角色标注集
本发明使用两种语义角色标注集合,一个是通用角色标注集合,共有六个角色,定义如表1.3所示:
                           
标记     角色描述
                           
x        施事
y        受事
z        与事
L        方位、处所、时间
O        工具、材料、方式
Q        修饰
Tgt      目标动词
                           
表1.3
举例3,对于句子“我 昨天 给 你 书”,若标注通用角色的话,则:
“我”是动作的施事,可以标注角色‘x’;
“昨天”是动作发生的时间,可以标注角色‘L’;
“给”是动作,也就是这个句子中的目标动词,可以标注‘Tgt’;
“你”是动作的受事,标注角色‘y’;
“书”是动作的与事,标注角色‘z’。
本发明使用过的第二个角色集为专用角色标注集合,共有57个角色,本发明例句中使用到的部分角色定义如表1.4所示:
                                    
标记     角色描述
                                    
A        施事(Agent)
P        受事(Patient)
CS       成品受事(PatientProduct)
T        时间(Time)
I        工具(Instrument)
L        处所(Location)
M        材料(Material)
Tgt      目标动词
                                    
表1.4
举例4,还对于句子“我 昨天 给 你 书”,若标注专用角色的话,则应该:
“我”是动作的施事,标注角色‘A’;
“昨天”是动作发生的时间,标注角色‘T’;
“给”是动作,也就是这个句子中的目标动词,标注‘Tgt’;
“你”是动作的受事,标注角色‘P’;
“书”是动作的成品受事,标注角色‘CS’。
(1.6)动词义项
具体地,指目标动词在特定句子中的含义,在本发明中,我们用动词在词典(情境库、知网)中的释义作为这个动词的义项。
举例5:对句子“帮助/vJY 库区/n 人民/n 重建/v 家园/n 、/、 发展/v 生产/v 。/。”的目标动词“重建”,它在这句话中的含义可用词典的释义表示为:
1、情境库描述=DO(x,P(x,y))_CAUSE_exist(y,L)+[P=Build]
这是动词“重建”在情境库词典中的意义,情境库使用等号右边的情境表达式对动词进行释义。[P=Build]表示“重建”实施的动作是“Build”,DO(x,P(x,y))中的‘x’表示实施动作的主体,P(x,y)表示x将动作P实施到y上,CAUSE_exits(y,L)表示“重建”这个动作实施后,导致的结果是让y存在于L处,DO和CAUSE_exist之间以下划线‘_’相连,CAUSE_exist与[P=Build]之间以加号‘+’相连。我们可看出,对“重建”的意义,情境库用x、y和L就可以将它描述。
其中:x、y、L的定义如表1.3中所示。
2、知网描述={build|建造:frequency={again|再}}
这是“重建”在知网词典中的意义,知网对动词进行释义的方式如等号右边大括号中所示。“bulid|建造”表示“重建”所实施的动作是“建造”,“build”是这个动作的英文释义,冒号后的“frequency{again|再}”是对“build|建造”这个动作的进一步描述,说明只有“build”发生的频率(frequency)是多次{again|再},才能称作“重建”,动作(build|建造)与描述(frequency={again|再})之间以冒号‘:’相连。
(1.7)事件框架
即由目标动词决定的事件中,事件元素(“事件元素”指的是表达一个事件内容时不能缺少的元素)的个数和类别。使用不同的角色标注集,将有不同的事件框架。
举例6:对动词“重建”,如果用情境库来描述,它支配的句子中有三个核心的元素,即“重建”的主体x,“重建”的地点或时间L,以及“重建”得到的物体y,故“重建”的情境库事件框架便是{x,L,y},这个框架又被称作通用事件框架。
其中:x、L、y的定义如表1.3所示。
如果使用知网来描述,它支配的句子中有三个核心的元素,即实施“重建”这一动作的主体(Agent)、“重建”时所用的材料(Material)以及承受“重建”这一动作的物体(PatientProduct),故“重建”的知网事件框架便是(Agent,Material,PatientProduct),这个框架又被称为专用事件框架。
其中:Agent、Material和PatientProduct的定义如表1.4所示。
(1.8)句法块
句法块使用三元组进行描述:{<句法功能>,<句法成分>,<中心词位置>},其中:
句法功能标记描述该句法块所处的句法功能位置,表1.5列出了文中使用的句法块功能标记集。在本发明中,我们通常用句法块的功能标记作为句法块的简称,例如:句法功能为“P”的句法块,我们将其称作“P块”。
                      
标记     功能描述
                      
S        主语
P        谓语/述语
O        宾语
A        定语
D        状语
C        补语
H        中心语
J        兼语
                      
表1.5
句法成分反映该句法块的内部组成成分信息,表1.6列出了文中使用的句法块成分标记集。
                  
标记     成分描述
                  
np       名词块
mp       数量块
sp       空间块
tp       时间块
vp       动词块
ap       形容词块
dp       副词块
pp       介词块
                  
表1.6
语义中心词反映句法块中的主要语义信息载体。
句法块中,块边界用左右方括号’[‘和’]’表示,句法功能紧跟左边界,功能标记如表1.5所示,句法功能后紧跟句法成分,两者之间用‘-’隔开,成分标记如表1.6所示,中心词的表示方法是在词后加“-”标记。
举例7,对一个句法块[S-np 库区/n 人民/n-],句法功能是‘S’,表示这个块可作为句子的主语(S),句法成分是‘np’,表示块是一个名词短语块(np),中心词是‘人民’,表示块中最能体现语义信息的是“人民”这个词。
(1.9)事件句式、通用事件、专用事件
在本发明中,每个事件句式定义为一组事件块组成的线性序列。每个事件块使用四元组进行描述:{<句法功能>,<句法成分>,<中心词位置>,<事件角色>},其中<句法功能>、<句法成分>和<中心词位置>的定义与句法块中完全相同,在此基础上添加了<事件角色>的描述:
事件角色表示该事件块在语义层面上所体现的事件信息,不同的语义角色标注语料库使用不同的角色标注集。在本发明中,使用两种事件角色表示信息:
通用角色,角色集合如表1.3所示,又被称为“情境锚定参量”。
专用角色,角色集合如表1.4所示,又被称为“知网角色”。
在本发明中,使用通用角色标注的事件句式称作“通用事件”,采用专用角色标注的事件句式称为“专用事件”。
事件块中,块边界、句法功能、句法成分和中心词的表示方法与句法块完全相同,事件角色标记紧跟块的右边界表示。
举例8,对一个事件块[S-np 库区/n 人民/n-]x,功能、成分和中心词与1.6节的例子中的意义完全相同,只是多了一个角色标记‘x’,这个角色是通用角色。
如果对事件块[S-np 库区/n 人民/n-]A,功能、成分和中心词依旧与1.6节的例子中的意义相同,多了一个角色标记‘A’,这个角色是专用角色。
(1.10)EDC
EDC是事件描述小句(Event Descriptive Clause)的简称。它是句中由标点符号分隔开的词性序列,每个EDC中都至少包含有一个事件。
举例9:句子“财政部/n 考证/v ,/, 帮助/vJY 库区/n 人民/n 重建/v 家园/n 、/、发展/v 生产/v 。/。”,给定目标动词是“重建”。那么,由“重建”支配的事件所在的EDC为“帮助/vJY 库区/n 人民/n 重建/v 家园/n 、/、 发展/v 生产/v”。
(1.11)MNP
MNP即“最长名词短语(Maximum-Noun-Phrase)”的简称,就是由几个名词或名词及其修饰语构成的、不能再被其他成分修饰的名词短语。
(2)发明描述
在阐述了本发明将用到的术语及其含义的基础上,以下来定义本发明的任务。
(2.1)事件句式抽取
我们对事件句式抽取任务定义如下:
如果给定了一个经过词语切分和词性标注的句子,同时,还给定了这个句子中一个特定谓词来作为句子的目标动词,并得到了动词在这个句子中的义项标注信息。本发明将致力于从这个句子中抽取得到该特定谓词支配的事件句式。
举例10:
输入:
基本标注=财政部/n 、/、 农业部/n 、/、 化工部/n 、/、 国家/n 原材料/n公司/n 考证/v ,/, 遴选/v 项目/n ,/, 帮助/vJY 库区/n 人民/n 重建/v 家园/n 、/、发展/v 生产/v 。/。
目标动词=重建;
动词位置=32;
情境库义项描述=DO(x,P(x,y))_CAUSE_exist(y,L)+[P=Build];
知网义项描述={build|建造:frequency={again|再}}。
从以上输入中,本发明希望能够获得和动词“重建”有关的事件句式,如下:
[S-np 库区/n 人民/n][P-np 重建/v][O-vp 家园/n]
在抽取的事件句式中,每一个事件块尚未标记语义角色。
事件句式抽取的方法能够使用在语义角色标注方面。本发明还将提供一种语义角色标注的方法:即通过事件句式抽取方法的应用,将现有的句法分析工具和语义角色标注工具结合起来的方法,实现对事件内容的分析。
(2.2)事件内容分析
事件内容分析任务定义如下:
在事件句式抽取的基础上,对句式中每一个事件块进行语义角色标注,获得对目标动词控制的事件的浅层语义理解。
也就是说,事件内容分析得到的事件句式才是如1.9节定义的真正的“事件句式”,它是在2.1节抽取得到的事件句式上标注了语义角色的结果。
举例11:
对事件句式抽取任务中得到的事件句式“[S-np 库区/n 人民/n][P-np 重建/v][O-vp 家园/n]”做语义角色标注后,得到通用事件句式:
[S-np 库区/n 人民/n]x[P-np 重建/v]Tgt[O-vp 家园/n]y,
和专用事件句式:[S-np 库区/n 人民/n]A[P-np 重建/v]Tgt[O-vp 家园/n]CS。
(3)数据资源和原始工具
为完成本发明的任务,需要使用到一些现有的数据资源和原始处理工具。如下所示:
(3.1)词性转换表
词性转换表,存储有北大词类标记和原始TCT词性标记的映射关系,其基本数据格式为:
{<北大词类标记>-<原始TCT词性标记>}
举例12:“,-wP”表示北大词性‘,’对应映射后的TCT词性‘wP’
(3.2)事件知识库
事件知识库,记录了动词在两部不同语义词典(知网、情境库)中的义项描述,以及通用事件框架和专用事件框架的对应关系,知识库中的每条记录包括如下信息:
{<词语><词类><词典义项描述><通用事件框架><专用事件框架>{<框架对应>}}
举例13:
词语=重建;
词类=V;
情境库义项描述=DO(x,P(x,y))_CAUSE_exist(y,L)+[P=Build];
知网义项描述={build|建造:frequency={again|再}};
情境库.事件框架={L,x,y};
知网.事件框架={PatientProduct,agent,material};
框架对应=x<-->A;
框架对应=y<-->CS;
框架对应=O<-->M。
在这条记录中,义项描述和事件框架的定义已在前文介绍。框架对应中,‘<-->’左侧的角色是通用角色,右侧的角色是专用角色。比如’x<-->A’表示对于动词“重建”,通用角色‘x’与专用角色‘A’的意义相同。
(3.3)句法块分析工具
句法块分析工具的输入是经过词语切分和词性标注的汉语句子,输出完整的句法块序列。下面是句法块分析工具一个输入输出的例子。
分析工具输入:帮助/vJY 库区/n 人民/n 重建/v 家园/n 。/wP。
分析工具输出:[P-vp 帮助/vJY-][J-np 库区/n 人民/n-][P-vp 重建/v-][O-np 家园/n]。/wP。
这里的句法块定义与1.8节中相同。
句法块分析器的输出是以后进行事件句式分析的基础,目前,其开放测试的性能在77%左右。
(3.4)通用语义角色标注工具
通用语义角色标注工具的输入是正确的词汇对信息和目标动词及其义项信息,输出是每条词汇对的事件角色标注信息,该工具采用的角色标注集是通用角色集合。
其中,目标动词、义项描述、句法块标注等定义已在前文介绍。词汇对的格式是:
“词汇对=词1 词2”,表示词1和词2相关。词1是目标动词,词2是与目标动词相关的词。
输出格式为“标注工具输出:词汇对=词1 词2 角色”,表示以词2为中心词的块在词1支配的事件句式中的语义角色。
下面是一个语义角色标注工具输入输出的例子。
标注工具输入:
目标动词=包容;
动词位置=6;
情境库义项描述=contain(x,y)+NULL;
知网义项描述={contain|包含};
句法块标注=这/rN  种/qN  不同/a  语种/n  中/f  [A-np  词义/n-  包容/vN-][H-np 范围/n-]的/u  差异/n  ,/,  有时/d  引起/v  国际/n  学术/n  交流/vN  中/f  的/u  周折/n  。/。;
词汇对=包容  范围;
标注工具输出:词汇对=包容  范围y。
语义角色标注工具目前在小句层面上的整体性能达到了91%左右,在最长名词短语MNP层面的整体性能达到了78%左右。
(3.5)融合规则表
规则表中存储有下层句法块向上层句法块融合的规则,基本格式为:
{<下层句法块序列>→<上层句法块><规则长度><规则置信度>}。
下层句法块序列指的是一串句法块的句法功能标记组成的序列,如果两个句法块之间有结构助词‘的’或者介词,那么将这个词的词性添加到序列中去。
下面是一个融合规则的具体实例:
下层句法块序列为:[P-vp 吃/v-][O-np 饭/n-]的/uJDE[H-np 碗/n-]。
这一串句法块可以合并形成一个大的宾语块[O-np 吃/v 饭/n 的/uJDE 碗/n-]。
因此融合规则为:
P O uJDE H→O 4 0.85。
可以看出,这条规则的长度为4(包括块中间的功能词“uJDE”),可信度为0.85,即若有100个格式为“P O uJDE H”的功能块序列,其中有85个序列会合并成“O”。
(4)系统初始化
(4.1)设定数据结构
设定以下数据结构:词Verb、句法块Block、输入的每条句子EveryRecord、所有的输入句子vector<EveryRecord>input、用于句法块融合的规则表vector<everyRule>rules,其中:
I.词Verb,保留句中词及其词性等信息,形成如下格式:{<词><词性><词位置><左边界><右边界><中心词标记>},其中:
词verb:记录词的内容;
词性pos:记录词的词性;
词位置loca:记录该词在句子词序列中所处的位置,loca∈[0,n-1],n为句子中词语的总个数;
左边界left:初始化为-1。如果该词在某个句法块中,则将此句法块左边界的字节位置作为词的左边界,如果不在句法块中,则为-1;
右边界right:初始化为-1。如果该词在某个句法块中,则将此句法块右边界的字节位置作为词的右边界,如果不在句法块中,则为-1;
中心词标记isKer:标示该词是否是某句法块的中心词,TRUE-是,FALSE-否。
II.句法块Block,保留每个句法块的信息,每个Block记录都形成如下的格式:{<句法功能><句法成分><语义角色><左边界><右边界><中心词位置><事件块标记><块类型>},其中:
句法功能fun:保留块的句法功能标记,功能标记的具体内容如表1.5所示;
句法成分ele:保留该块的句法成分标记,具体内容如表1.6所示,
语义角色role:根据不同情况会保存不同的值,初始化为空串。当角色标注阶段为块标注通用角色时,则role属于通用角色集;当角色标注阶段为块标注专用角色时,则role属于专用角色集。通用角色和专用角色集如表1.3和表1.4所示;
左边界left:记录该块在句子的左边界位置,使用块中最左边的词在句子词序列中所处的位置来标示,left∈[0,n-1],n为句子中词语的总个数;
右边界right:记录该块在句子的右边界位置,使用块中最右边的词在句子词序列中所处的位置来标示,right∈[0,n-1],n为句子中词语的总个数;
中心词位置vector<int>ker:记录句法块中中心词的位置,中心词可有多个,使用中心词在句子词序列中的位置来标示每一个中心词位置;
事件块标记isEnv:标示该句法块是否是一个事件块,即是否是目标动词控制的论元单元,TRUE-是,FALSE-否,初始化为FALSE;
块类型pType:只针对句法块功能标记为P的块,标示该块处于句子层面还是最长名词短语层面,TRUE-句子,FALSE-复杂名词短语。
III.句子EveryRecord,记录这个句子的信息,包括目标动词、句法块序列等信息,具体格式为:{<目标动词><动词词性><目标动词词位置><目标动词块位置><词序列><句法块序列>},其中:
目标动词Gverb:记录这个句子中的目标谓词;
动词词性Gpos:记录句中目标谓词的词性;
目标动词词位置vLoca:记录目标动词在句子词序列中所处的位置,vLoca∈[0,n-1],n为句子中词语的总个数;
目标动词块位置bLoca:对句子做句法块分析后,记录目标动词位于哪个句法块中,bLoca∈[-1,n-1],n为句子中句法块的总个数,bLoca初始化为-1,句法块分析之后,若目标动词不在任一个块中,则也为-1;
词序列vector<Verb>allVerbs:记录句子中每一个词的信息,其中,每个词Verb的格式如(I)中所示;
句法块序列vector<Block>allBlocks:对句子做句法块分析后,记录所有的块信息。初始化为空。其中,序列中的每个Block元素见(II)中所示。
IV.融合规则表vector<everyRule>rules,保留每一条下层句法块融合为上层句法块的规则,包括下层句法块序列信息、上层句法块信息、长度、置信度信息,每条记录everyRule的基本格式为{<下层句法块序列><上层句法块><规则长度><规则置信度>},其中:
下层句法块序列sequence:保留下层句法块的功能标记序列;
上层句法块superB:保留合并后上层句法块的功能标记;
规则长度len:保留下层句法块序列的长度——即块的个数——作为规则的长度,len>0;
规则频度freq:保留此条规则出现的频度,作为规则选择时的参考指标。
(4.2)加载以下基本处理模块
(4.2.1)词性转换及扩展模块,将输入句子中词的TCT原始词性或北大词性转换为系统需要的TCT扩展词性标注,具体步骤如下:
I.获得词verb和该词的词性pos;
II.利用词性转换表,对表中的每一行记录{<北大词性标记><原始TCT词性标记>},如果记录中的<北大词性标记>==该词的词性pos,则将该词的词性用<原始TCT词性标记>替换,得到新词性pos2,该步骤实现了将北大词性映射到TCT词性的功能;
III.使用词性扩展工具,输入词verb和词的新词性pos2,输出为扩展后的最终词性pos3,该步骤实现将原始TCT词性扩展到最终的扩展TCT词性集合的功能。
(4.2.2)句法分析模块,对输入的句子做句法分析,具体步骤如下:
I.将要做句法分析的句子,通过写文件操作,写入名为input.txt的文件中;
II.使用句法分析工具,对input.txt文件中的句子进行句法分析处理,可用命令行方式:WinExec(″FunctionParser_v1.1.exe″,1),其中FunctionParser_v1.1.exe是分析工具的名字;
III.句法分析的结果将保存在名为output.txt的文件中。
(4.2.3)事件知识库检索模块,利用目标动词和义项信息进行检索,如图2所示,为本发明实施例的事件知识库检索模块的流程图。
具体步骤如下:
I.获得输入的目标动词gVerb;
II.初始化i为0,初始化检索成功的标志为FALSE;
III.对事件知识库中的记录i,如果该记录的<词语>verb==gVerb,则:
如果输入的义项信息与记录i中的义项信息相符:转到步骤IV;
如果输入的义项信息与记录i中的义项信息不相符:则i=i+1,若i等于库中记录的个数,转到步骤V;反之,转到步骤III。
IV.获得知识库中记录i的义项信息描述及通用框架与专用框架的对应关系,置检索成功的标志为TRUE;
V.停止检索,返回检索是否成功的标志。
(4.2.4)P块层次分类,对句法块序列中句法功能标记为“P”的句法块进行层次分类,如果P块位于句子层面,则分为“+”例,如果P块位于复杂名词短语层面,则分为“-”例,分类的具体步骤如下:
I.读取句子,形成一个EveryRecord的结构;
II.初始化i=0;
III.如果i大于EveryRecord结构中的vector<Block>allBlocks的大小,则转入步骤VI,反之取得allBlocks中第i个Block,如果Block的fun标记为“P”,则进入步骤IV,反之,i=i+1后,继续过程III;
IV.抽取Block的特征,抽取的特征如表2.1所示,抽取特征后,转入步骤V;
V.将抽取到的特征写入特征文件features.txt;
VI.使用最大熵分类器,对features.txt文件中的实例进行分类,分类结果写入output.txt文件中,每条结果的格式为:{“+”<正例的确信度>“-“<反例的确信度>};
VII.将output.txt文件中的分类结果读出,如果正例的置信度>反例置信度,则相应Block的pType=TRUE(即为句子层面的P块);如果正例的置信度<反例的置信度,则相应Block的pType=FALSE(即为最长名词短语层面的P块)。
 块的中心词
 块的中心词的词性
 P块前、后句法块的句法功能
 P块前、后句法块的句法成分
 P块前、后句法块中中心词
 P块前、后句法块中中心词词性
 P块前、后是否有其他P块
 P块与前、后P块的距离
 P右相邻是否有H
 P与右相邻H的距离
 右相邻H块中中心词
 右相邻H块中中心词词性
 P左相邻的词和词性
 P右相邻的词和词性
表2.1
(4.2.5)融合规则提取模块
融合规则是从已经标注好的语料文件中抽取得到的,语料中每条句子都是句法块的序列,每一个句法块的句法功能标记是分层次功能标记,分层次功能标记是功能标记的序列,如‘SP’表示句法功能标记有两层,内层是‘P’,外层是‘S’。
举例14:下面是标注语料中的一个标注句子:
[S-np 力学/n][P-vp 是/v][OP-vp 研究/v][OO-np 物质/n 机械/n运动/n 规律/n]的/uJDE[OH-np 科学/n]。
对于块[OP-vp 研究/v],它的分层次功能标记是‘OP’,表示有两层功能标记,内层句法功能是‘P’,外层句法功能是‘O’。
结合图3来看,本发明实施例的合并下层句法块模块的处理流程如下:
(4.2.5.1)初始化i=0;
(4.2.5.2)读取第i个句子,初始化一个EveryRecord结构,获取句子的相关信息存入这个EveryRecord结构中;
(4.2.5.3)对EveryRecord中的块序列vector<Block>,块总个数为N:
(4.2.5.3.1)初始化j=0,从Block的第j个块到第N-1个,搜索块的功能标记最大的层数level;
(4.2.5.3.2)如果level==1,则转到(4.2.5.4);
(4.2.5.3.3)如果level>1,则搜索vector<Block>中首个功能标记层次数为level的块,从该块及其后“同结构”的块序列中抽取得到一条融合规则,保存在vector<everyRule>rules结构中,更新原块序列的功能标记,得到新的块序列。转入(4.2.5.3.1);
对“同结构”的定义如下:
A、两个块的功能层次数相同;
B、两个块的功能倒数第二层及以上的功能标记序列相同。
从块序列中抽取规则的方法如下:
块序列中每个块的最内层句法功能标记组成功能标记序列,作为一条规则everyRule的下层句法块序列sequence(将块之间的结构助词和介词(统称为功能词)的词性也加入序列当中);
块序列中块和功能词的个数,作为规则的长度len;
块序列中块的倒数第二层的功能标记,作为规则的上层句法块superB,块序列中每个块的倒数第二层标记都相同。
向rules结构中保存该条规则的方法如下:
A、检索rules,如果rules中的第k条规则的sequence、superB、len与新抽取到的完全相同,则将rules中第k条规则的频度加1;
B、如果检索结束后,未找到与新抽取到的规则相同的规则,则将这条新规则的频度设为1,添加到rules结构中。
更新块序列功能标记的方法为:
A、删除原块序列,替换为合并后的新块;
B、新块的功能标记是原功能标记的倒数第二层及以上的序列。
(4.2.5.4)i=i+1,如果i等于语料库中句子总数,则规则提取过程结束,转到(4.2.5.5),否则,转到(4.2.5.2);
(4.2.5.5)对vector<everyRule>rules结构中的规则计算每条规则的置信度,并将规则写到文件中去,方便下次运行系统时可以直接从文件中读取规则,而不用重新生成;
计算规则置信度的方法如下:
对某条规则R,其sequence为S,superB为SU,在rules结果中检索sequence==S的规则r的个数,记为x,则总的频度为:
规则R的频度为Y;
则规则R的置信度为:
reliability=Y/X。
在本发明的实施例中,下面是一个融合规则生成的例子:
分层次功能块标注语料中的句子:[S-np 力学/n][P-vp 是/v][OP-vp 研究/v][OO-np 物质/n 机械/n 运动/n 规律/n]的/uJDE[OH-np 科学/n]。/。
对块序列“[OP-vp 研究/v][OO-np 物质/n 机械/n 运动/n 规律/n]的/uJDE[OH-np 科学/n]”,它们的功能块层次均为2,上层句法功能都为O,因此可以从中抽取到一条合并为O的规则:P O uJDE H→O。抽取规则后,更新原块序列,变为:“[O-np 研究/v 物质/n 机械/n 运动/n 规律/n 的/uJDE 科学/n]”。新的块序列中无法再抽取新的规则。
(4.2.6)下层句法块合并模块
如图1所示,为本发明实施例的下层句法块合并模块的处理流程图。
具体步骤如下:
I.从待合并的块Block起,按照指定的方向获得从起始块向前(后)的句法块功能序列S;
II.初始化规则长度L为-1,查找vector<everyRule>rules中的每条规则rule,如果rule的sequence为S的子串,且rule的len>L,则将L赋值为rule的len,继续步骤II,反之,L不变,继续步骤II;
III.查找结束后,如果L依旧为-1,则没有合并规则,不对句法块序列做处理;反之,在满足sequence为S子串且len==L的所有规则中,选择freq最大的规则作为合并规则;
IV.将起始块前或后L个句法块合并为一个新的块,删除原有的L个块,新块的句法功能标记为合并规则的superB。
(4.2.7)通用语义角色标注模块
具体步骤如下:
I.在EveryRecord结构中,将目标动词信息、事件句式信息,配合(4.2.3)模块中检索出的动词义项信息,作为语义角色标注阶段的输入;
II.用通用语义角色标注工具,用I中的输入,得到EveryRecord结构的vector<Block>allBlocks中每一个事件块的语义角色标注结果(通用事件)。
(4.2.8)语义角色映射模块
具体步骤如下:
I.使用(4.2.3)模块,得到目标动词专用框架和通用框架的对应关系{<通用角色>-<专用角色>};
II.对EveryRecord结构的vector<Block>allBlocks中每一个事件块:
A、如果该事件块的角色role==某条对应关系中的<通用角色>,则将该事件块的角色role映射为该条对应关系中的<专用角色>;
B、如果该事件块的角色role在所有对应关系中都无法找到相匹配的<通用角色>,则将该事件块的角色role映射为“x”;
C、目标动词所在块的role直接映射为“Tgt”;
D、其余情况下,保留该事件块的角色不变。
(5)数据准备阶段
数据准备阶段中,将输入的经过分词和词性标注的句子、句中的目标动词及其词性、目标动词在不同词典中的义项等信息分别经过不同的处理,获得事件句式抽取算法所需的数据,具体步骤如下:
(5.1)对输入的经过分词和词性标注的句子,获取句中所有的词信息,存入一个vector<Verb>中;
(5.2)对vector<Verb>中的每个词,使用(4.2.1)中介绍的词性映射及转换模块做词性处理,用每个词新的词性替换句中这个词的原词性;
(5.3)利用输入的目标动词及义项信息,使用(4.2.3)中介绍的事件知识库检索模块,得到目标动词的义项描述及两种框架的对应关系;
(5.4)对经过(5.2)处理后的新句子,使用(4.2.2)中介绍的句法分析模块做句法分析,分析结果保存在output.txt文件中;
(5.5)使用读文件操作,将output.txt文件中的结果读出,获取其相关信息,与输入的目标动词信息一起,存入到一个EveryRecord结构中去,即得到本发明中事件句式抽取算法所需的输入数据。
(6)事件句式抽取阶段
该阶段依次有以下几个阶段的处理:
(6.1)前期处理,步骤如下:
(6.1.1)对数据准备阶段(5)中得到的EveryRecord结构,如果其中目标动词所在块的句法功能标记为“P”,则进入步骤(6.1.2),反之,跳转到步骤(6.1.3);
(6.1.2)对EveryRecord的vector<Block>allBlocks中,目标动词所在的P块重处理:
(6.1.2.1)判断是否需要进行重处理:
A、P块中有两个词,目标动词是第一个,且第二个词不是特殊词(介词、助词);
B、P块中有多个词,都为动词,且这些动词之间以连词或顿号相连;
C、目标P块直接右相邻的块不是O块,也不是可合并为O块的块序列。
(6.1.2.2)根据判断结果分别处理:
A、如果满足(6.1.2.1)中的条件A和C,则应该将P块拆分为P和O两块,P块内的中心词是目标动词,O块内中心词为另一个词;
B、如果满足(6.1.2.1)中的条件B,则将该P块拆分为多个P块,每个P块内有一个动词,作为此P块的中心词;
C、其余情况下,则去掉其他多余的中心词标记(如果有的话),只保留目标动词这一个中心词。
(6.1.3)EDC小句识别
使用EveryRecord中目标动词gVerb左相邻和右相邻的分隔点号(逗号、顿号、破折号)作为多个小句的分隔标记,左相邻和右相邻点号之间的块序列作为目标动词gVerb所在的EDC,此时,将EveryRecord的vector<Block>allBlocks先清空,再放入EDC中的块序列;
(6.1.4)读入合并规则:将融合规则生成模块(4.2.5)中得到的合并规则读入vector<everyRule>rules结构中,按照everyRule的len,从大到小排列;len相同的,按freq从高到低排列。
(6.2)事件句式分类,步骤如下:
(6.2.1)如果EveryRecord的vector<Block>allBlocks中,只有一个Block的fun标记为“P”,则跳到步骤(6.2.3),否则,进入步骤(6.2.2);
(6.2.2)P块层次分类:使用(4.2.4)中的P块层次分类模块,对EveryRecord结构的vector<Block>allBlocks中的每一个句法功能为“P”的Block,做P块层次的分类;
(6.2.3)对EveryRecord中目标动词控制的事件句式的类型进行分类:
A、如果目标动词gVerb所在Block的句法功能标记是“P”,则该小句是主谓句;反之,该小句是非主谓句;
B、如果句法块序列vector<Block>allBlocks中只有目标动词所在块这一个P块,则该主谓句是单P块主谓句;反之,该主谓句是多P块主谓句;
C、当EveryRecord是主谓句,且它的句法块序列vector<Block>allBlocks中包含H块或词序列vector<Verb>allVerbs中包含助词”的/uJDE”或介词p时,判定此小句为多层次的;
D、若EveryRecord是多层次多P块的,则将句型为“P[O][uJDE]H”的判为复杂名词短语,不能满足该句型的,将步骤(6.2.2)中得到的分类器的分类结果作为P的类型;
E、若EveryRecord是多P块的,且vector<Block>allBlocks中不包含H块且词序列vector<Verb>allVerbs中不包含“的/uJDE”及介词p时,根据步骤(6.2.2)中得到的分类器的分类结果作为P块的类型。
(6.3)根据分类结果抽取
根据步骤(6.2)中得到的分类结果,使用不同的策略处理。如图4所示,为本发明实施例的事件句式分类抽取的流程图。
具体步骤如下:
I.如果分类结果为单P块单层次,则在vector<Block>()中,目标动词所在的块就是事件句式的谓语块,做典型句式[D]*[S]*[D]*P[C][O]*的匹配即可,该句型的含义是:0个或多个状语D+0或多个主语S+0或多个状语D+一个谓语+0或一个补语C+0或多个宾语O,具体方法为:
初始化功能标记序列为字符串“P”;
以EveryRecord的vector<Block>allBlocks中目标P块为中心前后搜索句法块,将搜索到的每一个块的功能标记放入功能标记序列中(P之前的块放入序列首部,P之后的放入序列尾部)后,检查新的标记序列是否还满足典型句式,若满足,将该块标记为事件块,继续向前、后搜索,若不满足,停止继续搜索。
II.如果分类结果为单P块多层次,与I中介绍的方法相似,也是以目标动词所在的P块为中心,前后搜索能够成为事件块的句法块,
特例在于,当搜索过程中遇到其他功能标记的句法块时,不是退出搜索,而是调用句法块合并模块(4.2.6),将能够合并的下层句法块向上合并成新的句法块,其中,若待合并块的起始位置在目标动词所在块之前,则合并方向向前,合并为S或D;反之,合并方向向后,合并为O。
III.多P块单层次,基本处理方法为:
A、首先,找到vector<Block>allBlocks左起第一个P块,以该P块为界,将块序列分为P块前的主语部分和P块后的部分,对P块后的部分,再找到vector<Block>allBlocks右起第一个P,以该P为界,分为谓语部分和宾语部分,
然后开始搜索谓语部分,其过程是:
B、从目标P块开始,向左搜索:若搜索到S、D块,则说明该P块有自己的S、D,不与其余P共用,此时停止继续搜索;若搜索到J块,则说明该J块作为前一个P块的宾语,作为该P块的主语,因此目标P块的主语就是这个兼语块,停止继续搜索;若搜索到P块,判断该P与目标P是否具有相似结构,若相似,跳过该P块,继续向前搜索S和D,否则,停止搜索;若搜索到了其他的块,跳过,继续搜索;
在搜索到P块时我们提到需要判断两个P是否具有相似结构,本文利用简单的规则对两个P的结构进行判断:
两个P块之间以连词或顿号直接相连,则为相似结构;
两个P块中词的个数相同、中心词词性相同,且中心词的长度也相同,则为相似结构;
目标P向右的搜索方法与左搜索过程相似。
C、对谓语部分的搜索过程停止之后:
1、判断目标P是否具有自己的S和D,若没有,则在最初得到的主语部分中找到S和D,以作为目标P与其他P块共有的主/状块;
2、判断目标P是否有自己的O,若没有,则在最初得到的宾语部分中找到O,作为目标P与其他P共有的宾语块。
IV.多P块多层次且目标动词所在P块在复杂名词短语(MNP)层面,其处理过程是正确识别出MNP的左右边界:
MNP的左边界有如下四种情况:
A、vector<Block>allBlocks的左边界:MNP构成一个复杂主语块;
B、目标P左相邻介词:MNP构成EDC小句的状语从句;
C、目标P左相邻句子层面的P:MNP构成该P的复杂宾语;
D、目标P左相邻的P[O]uJDE句式:MNP位于其左侧‘的’字短语内部,
MNP的右边界有如下三种情况:
A、vector<Block>allBlocksz的右边界;
B、目标P满足P[O]uJDE句式,且uJDE右相邻一个P块或介词:目标P构成一个‘的’字短语;
C、目标P向右构成典型P[O][uJDE]H句式,
判断出MNP的左右边界后,在左右边界限定的范围内,使用(II)中的处理方法进行处理。
V.多P块多层次且目标动词所在P块在小句层面,具体处理步骤为:
A、首先,对于vector<Block>allBlocks中所有位于MNP层面的P块,使用(IV)中介绍的目标P在MNP层面的处理方法,确定这个P的左右边界,将这个MNP作为一整个块,如果MNP块在目标P块的左边,则认为它构成目标P的S;反之,认为它构成目标P的O;
B、然后,利用(III)中介绍的多P块单层次的处理方法,找到目标P块支配的各个功能块。
(7)事件分析,具体处理步骤如下:
(7.1)完成系统初始化阶段(4);
(7.2)完成数据准备阶段(5);
(7.3)完成事件句式抽取阶段(6);
(7.4)从步骤(7.3)中输出的EveryRecord结构,其中的vector<Block>allBlocks中的每一个Block,如果这个Block的isEnv标记为TRUE,则该Block为事件块。调用(4.2.7)的通用语义角色标注模块,得到每个事件块的通用角色标;
(7.5)对(7.4)中得到的通用标注结果,调用(4.2.8)的语义角色映射模块,得到每个事件块的专用角色标注。
另外,为明确本发明的性能,做如下评测:
从标注语料中抽取了4个文件,共7464个测试句子。评测结果显示,在正确句法分析的基础上,事件句式抽取方法的F值为92.7%左右;基于自动句法分析的基础上,事件句式抽取算法的性能为81.54%。
另一方面,事件句式抽取算法在语义角色标注方面具有很大的作用,所以,为进一步明确抽取算法的性能,我们将其应用于本发明介绍的事件内容分析当中,并从两方面进行评价:
如图5所示,为事件内容分析系统的总体结构图。
具体地:1,对通用事件分析,做基于自动句法分析的事件句式抽取算法,并与语义角色标注相结合的整体事件内容分析系统的性能。在评测数据上(共7464个测试句子)做开放测试,得到整体性能评价如下所示:
2、对专用事件分析,我们在通用事件分析结果的基础上,做通用角色向专用角色的映射个。我们在205个文件的评测数据上做开放测试,得到整体性能评价如下:
将本发明实现的系统与现有系统比较,CoNLL(Conference on Natural LanguageLearning)会议多次以语义角色标注作为共享任务(Shared Task)进行评测,特别是2009年开展了多语种自动句法语义标注的评测,对汉语也做了基于自动句法分析的语义角色标注,其评测结果具有很大的参考价值。
本文的系统:
使用句法块分析器做自动句法块分析,以事件块为标注基本单位,角色有通用角色和专用角色,进行开放测试。
CoNLL(2009)共享任务的系统:
使用自动依存句法分析,以句法成分为标注基本单元,角色Chinese PropBank角色集,做开放测试。
两个系统的性能对比如下:
与现有系统的比较(开放测试)
                                              
系统                          性能F-Score
                                              
通用事件分析工具              74.00%
专用事件分析工具              68.72%
CoNLL(2009)任务-Rank 1        76.42%
CoNLL(2009)任务-Rank 2        73.42%
                                              
尽管本文系统所用的句法分析器、语义角色标注语料以及标注单元与CoNLL评测所用的不同,但通过两个的性能比较,可以说明本发明的处理方法是可行的。
为了能够对本发明有更加深刻的认识,以下就具体举例的方式进行描述:
实施例:
本发明提出的事件句式抽取方法,需要依次完成以下步骤:
(1)数据准备
数据准备是要完成三部分操作,其一是调用词性映射及扩展模块,把输入句子中每个词的词性都转换为扩展TCT词性标记;其二是调用句法块分析模块,对经过词性处理的句子做句法块分析;其三是调用事件知识库检索模块,利用输入中目标动词信息和义项信息,获得该动词完整的义项描述以及该动词框架中通用角色和专用角色的对应关系。
以下例来进行预处理说明:
输入句子:
财政部/n 、/、 农业部/n 、/、 化工部/n 、/、 国家/n 原材料/n 公司/n 考证/v ,/, 遴选/v 项目/n ,/, 帮助/vJY 库区/n 人民/n 重建/v 家园/n 、/、 发展/v 生产/v 。/。
经过词性转换及扩展模块后,得到新的句子:
财政部/n 、/wM 农业部/n 、/wM 化工部/n 、/wM 国家/n 原材料/n 公司/n 考证/v ,/wP 遴选/v 项目/n ,/wP 帮助/vJY 库区/n 人民/n 重建/v 家园/n 、/wM 发展/v 生产/v 。/wE
经过句法块分析模块后,得到句法块分析结果:
[S-np 财政部/n 、/wM 农业部/n 、/wM 化工部/n 、/wM 国家/n 原材料/n 公司/n-][P-vp 考证/v-],/wP[P-vp 遴选/v- 项目/n],/wP[P-vp 帮助/vJY-][J-np 库区/n 人民/n-][P-vp 重建/v- 家园/n]、/wM[P-vp 发展/v- 生产/v]。/wE
经过事件知识库检索模块,从知识库中查询到这样一条记录:
词语=重建;
词类=V;
情境库义项描述=DO(x,P(x,y))_CAUSE_exist(y,L)+[P=Build];
知网义项描述={build|建造:frequency={again|再}};
情境库.事件框架={L,x,y};
知网.事件框架={PatientProduct,agent,material};
框架对应=x<-->A;
框架对应=y<-->CS;
框架对应=O<-->M。
该记录中的动词与输入的目标动词相同,且两者在情境库和知网中的义项描述相符,因此这条记录即是我们所需的检索结果。由该结果可得到动词的完整框架和框架对应关系。
(2)事件句式抽取模块
如图6所示,为事件句式抽取模块的处理流程图。
具体地:数据准备完成之后,我们将从结果中抽取目标动词控制的事件句式,以便与语义角色标注模块相沟通。这是本发明的主要内容和特色。
事件句式抽取分为如下几个步骤:
(2.1)前期处理
前期处理主要完成三部分工作,一是对句法块分析结果中目标动词所在的块做一个重新处理;二是从句法块序列中识别EDC小句;三是导入合并规则。
还以上例来做说明:
(2.1.1)经过(1)的处理后,输出的句法分析结果为:
[S-np 财政部/n 、/wM 农业部/n 、/wM 化工部/n 、/wM 国家/n 原材料/n 公司/n-][P-vp 考证/v-],/wP[P-vp 遴选/v- 项目/n],/wP[P-vp 帮助/vJY-][J-np 库区/n 人民/n-][P-vp 重建/v- 家园/n]、/wM[P-vp 发展/v- 生产/v]。/wE
目标动词“重建”所在的块为[P-vp 重建/v- 家园/n],按照P块重处理的原则,这个块满足下述条件:
1、P块中有两个词,目标动词是第一个,且第二个词的词性不是特殊词性;
2、目标P块直接右相邻的块不是O块,也不是可合并为O块的块序列
在满足该条件的情况下,则将P块拆分为P、O两块,即:
[P-vp 重建/v-][O-np 家园/n]。
(2.1.2)利用目标动词所在块前后的点号信息,识别EDC小句。
对上例,目标动词所在块前、后点号分隔的功能块序列为:
[P-vp 帮助/vJY-][J-np 库区/n 人民/n-][P-vp 重建/v-][O-np 家园/n]、/wM[P-vp 发展/v- 生产/v]。
这个序列将作为目标动词控制的EDC,以后的处理均在此EDC内进行。
(2.2)事件句式分类
分类按照如下的几个原则:(同样以上例作说明)
1、EDC内如果目标动词所在块是谓语块,则这个句子是主谓句。上例中,目标动词所在块为[P-vp 重建/v-],因此是主谓句;
2、EDC内如果有多个P块,则是多P主谓句。上例中,EDC内共有三个P块,故是多P主谓句;
3、使用P块层次分类器,对EDC内的三个P块层次进行分类。
抽取每个P块的特征,写入特征文件,利用最大熵分类器进行分类,分类结果为:[P-vp 帮助/vJY-]是小句层面的(即分为正例),其余两个块是复杂名词短语层面的(分为反例);
4、EDC内如果有特殊块(H块)或特殊词(的/uJED、介词p),则EDC是多层次句子。上例中,EDC内无特殊块和特殊词,且根据分类结果显示,有两个层次,目标动词所在块分类后是最长名词短语(MNP)层面的,则该EDC为多P多层-MNP类型的。
(2.3)根据分类结果抽取事件句式
事件句式抽取算法的主要思想就是按照不同类型句式所具有的不同结构特点,采用不同的知识和处理手段,将抽取过程等价于分类和按照类别处理过程。
同样以上例作说明,(2.2)中输出的类别为多P多层-MNP类型,其处理重点是判断事件句式的左右边界。对上例而言,EDC内容为:
[P-vp 帮助/vJY-][J-np 库区/n 人民/n-][P-vp 重建/v-][O-np 家园/n]、/wM[P-vp 发展/v- 生产/v]。
第一个P块[P帮助]是小句层面的,而目标动词所在的P块[P-vp 重建/v-]却是MNP层面的,故这两个P不是同层次的,所以第一个P块为事件句式的左边界,事件句式将从下面的序列中抽取:
[J-np 库区/n 人民/n-][P-vp 重建/v-][O-np 家园/n]、/wM[P-vp 发展/v-生产/v]
目标动词所在P块[P-vp 重建/v-]与第三个P块[P 发展/v- 生产/v]是同层次的,但二者结构不相似,所以第三个P作为事件句式的右边界,最终事件句式从下面的序列中抽取:
[J-np 库区/n 人民/n-][P-vp 重建/v-][O-np 家园/n]
其中,第一个块句法功能为J(兼语),它可作为其前面谓语的宾语,同时作为后面谓语的主语。该例中,这个兼语位于目标P块的前面,所以它作为目标谓语的主语。最终得到了事件句式为:
[S-np 库区/n 人民/n-][P-vp 重建/v-][O-np 家园/n]
以上,即完成了事件句式抽取的整个过程。在本发明中,我们还提出了一种事件句式抽取的应用方法,即将其应用于语义角色标注过程中。
为完成事件内容分析任务,需依序完成如下步骤:
(1)数据准备
具体步骤如前所述。
(2)事件句式抽取
其实现的具体步骤如前所述。
(2)通用角色标注
步骤(2)完成后,得到了目标动词控制的事件句式。此时,可以使用语义角色标注模块,输入(2)中得到的事件句式及(1)中得到的动词框架,得到每个事件块的语义角色标注(通用)。
还以上例作说明。模块(2)完成后,得到事件句式为:
[S-np 库区/n 人民/n-][P-vp 重建/v-][O-np 家园/n]
模块(1)中得到的动词框架为:
做语义角色标注后,得到事件句式为:
[S-np 库区/n 人民/n-]x[P-vp 重建/v-]Tgt[O-np 家园/n]y
此时,我们得到了所需的通用事件。
(4)语义角色映射模块
模块(3)完成后,得到了通用事件分析结果,通过角色映射处理,可得到专用事件分析。具体步骤如下:
(4.1)使用模块(1)中得到的框架对应关系:
根据搜索结果做如下处理:
A、如果该事件块的角色role==某条对应关系中的<通用角色>,则将该事件块的角色role映射为该条对应关系中的<专用角色>;
B、如果该事件块的角色role在所有对应关系中都无法找到相匹配的<通用角色>,则将该事件块的角色role映射为“x”;
D、目标动词所在块的role直接映射为“Tgt”;
C、其余情况下,保留该事件块的角色不变。
根据上述原则,上例中,通用事件为:
[S-np 库区/n 人民/n-]x[P-vp 重建/v-]Tgt[O-np 家园/n]y
经过映射处理,得到专用事件为:
[S-np 库区/n 人民/n-]A[P-vp 重建/v-]Tgt[O-np 家园/n]CS
使用本发明的事件句式抽取方法,将能够把现有的句法分析其和语义角色标注工具结合起来,实现特有语料库上、使用特有角色标注集的语义角色标注系统,对现有语料库的进一步扩充具有很好的辅助作用。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同限定。

Claims (9)

1.一种汉语句子中事件句式的抽取方法,其特征在于,包括以下步骤:
计算机初始化,其中,所述计算机初始化包括定义相关术语,加载数据文件,设定数据结构和加载基本处理模块,所述相关术语和加载的数据文件进一步包括汉语句法树库TCT、词性标注集、词语切分和词性标注的句子、目标动词、语义角色标注集、动词义项、事件框架、句法块、中心词位置、事件句式、通用事件、专用事件和事件描述小句,
其中,所述句法块使用三元组进行描述,在所述句法块中,块的块边界用符号‘[’和‘]’表示,句法功能和句法成分之间用符号‘-’隔开,中心词的表示方法是在词后加标记‘-’,其表现形式为:
[<句法功能>,<句法成分>,<中心词位置>],
其中,所述句法功能,反映所述句法块所处的句法功能位置,用句法块功能标记集表示,其中,所述句法块功能标记集由S:主语,P:谓语/述语,O:宾语,A:定语,D:状语,C:补语,H:中心语,J:兼语组成,
所述句法成分,反映所述句法块内部组成成分信息,用句法块成分标记集表示,其中,所述句法块成分标记集由np:名词块,mp:数量块,sp:空间块,tp:时间块,ap:形容词块,dp:副词块,pp:介词块组成;
以所述计算机初始化的信息作为输入数据;
根据所述输入信息抽取事件句式;
根据抽取的所述事件句式得到事件块;
获取每个所述事件块的通用角色标注结果;和
根据所述通用角色标注结果得到每个所述事件块的专用角色标注结果。
2.如权利要求1所述的汉语句子中事件句式的抽取方法,其特征在于,所述设定数据结构进一步包括:
设定词Verb;
设定句法块Block,所述句法块Block用于保留每个句法块的信息;
设定句子EveryRecord,所述句子EveryRecord记录所述句子的信息;和
融合规则表vector<everyRule>rules,所述规则表vector<everyRule>rules用于保留每一条下层句法块融合为上层句法块的规则。
3.如权利要求2所述的汉语句子中事件句式的抽取方法,其特征在于,所述句子EveryRecord进一步包括:
目标动词Gverb,用于记录所述句子中的目标谓词;
动词词性Gpos,用于记录所述句中目标谓词的词性;
目标动词词位置vLoca,用于记录所述目标动词在句子词序列中所处的位置,vLoca ∈[0,n-1],其中,n为句子中词语的总个数;
目标动词块位置bLoca,用于对所述句子做句法块分析后,记录所述目标动词所在的句法块,bLoca∈[-1,n-1],其中,n为句子中句法块的总个数;
词序列vector<Verb>allVerbs,用于记录所述句子中每个词的信息;
句法块序列vector<Block>allBlocks,用于对句子做句法块分析后,记录所有的块信息。
4.如权利要求1所述的汉语句子中事件句式的抽取方法,其特征在于,所述基本处理模块,进一步包括:
词性转换及扩展模块,用于将输入句子中词的其他词类体系标记转换为系统需要的TCT词类体系标记;
句法分析模块,用于对输入的句子做句法分析;
事件知识库检索模块,用于利用目标动词和义项信息进行检索;
P块层次分类模块,用于对句法块序列中句法功能标记为“P”的句法块进行层次分类,如果P块位于句子层面,则分为“+”例,如果P块位于复杂名词短语层面,则分为“-”例;
融合规则提取模块,用于从已经标注好的语料文件中抽取得到下层句法块向上层句法块进行融合的规则,所述语料中每条句子都是所述句法块的序列,每一个句法块的句法功能标记是分层次功能标记,所述分层次功能标记是所述功能标记的序列;
下层句法块合并模块,用于将起始块前/后L个句法块合并为一个新的块,删除原有的L个块,新块的句法功能标记为合并规则的superB;
通用语义角色标注模块,用于获取EveryRecord结构的vector<Block>allBlocks中每一个所述事件块的语义角色标注结果;
语义角色映射模块,用于获取目标动词专用框架和通用框架的对应关系。
5.如权利要求1所述的汉语句子中事件句式的抽取方法,其特征在于,所述以计算机初始化的信息作为输入数据,进一步包括:
对输入的经过词语切分和词性标注的句子获取所有的词信息,存储于一个词向量vector<Verb>中;
对所述词向量中的每一个词Verb做词性扩展处理,且用新的词性替换词性扩展前的词性;
根据输入的目标动词及动词义项信息,得到所述目标动词的动词义项描述及所述目标动词专用框架与通用框架的对应关系,且输出处理后的句子;
对所述处理后的句子进行句法分析,且保存相应的分析结果;和
将所述句法分析结果与输入的所述目标动词一并存入一个EveryRecord结果中,其中,所述EveryRecord为所述输入数据。
6.如权利要求5所述的汉语句子中事件句式的抽取方法,其特征在于,所述根据输入信息抽取事件句式,进一步包括:
判断所述EveryRecord结构中目标动词所在块的句法功能是否标记为“P”,如果为“P”,则对所述EveryRecord的vector<Block>allBlocks中目标动词所在的P块重处理;
对所述EveryRecord进行EDC识别,并将所述EDC识别结果置入所述EveryRecord的vector<Block>allBlocks中;
读入合并规则到vector<everyRule>rules结构中,按照everyRule的len从大到小排列,如果所述len相同,则按freq从高到低排列;
判断所述EveryRecord的vector<Block>allBlocks中,Block的fun标记为“P”的所述Block的个数,如果有多个Block的fun标记都为“P”,则对所述EveryRecord结构的vector<Block>allBlocks中的每一个句法功能为“P”的Block,做P块层次的分类;
对EveryRecord中目标动词控制的事件句式的类型进行分类;
如果所述分类结果为单P块单层次,则在vector<Block>()中,所述目标动词所在的块为事件句式的谓语块,对所述谓语块做典型句式[D]*[S]*[D]*P[C][O]*的匹配;
如果分类结果为单P块多层次,以所述目标动词所在的P块为中心,前后搜索成为事件块的句法块,当搜索过程中遇到其他功能标记的句法块时,将能够合并的下层句法块向上合并成新的句法块,其中,若待合并块的起始位置在所述目标动词所在块之前,则合并方向向前,合并为S或D;反之,合并方向向后,合并为O;
如果分类结果为多P块单层次,以所述vector<Block>allBlocks左起第一个P块为界,将块序列分为所述P块前的主语部分和所述P块后的部分,对P块后的部分,再找到vector<Block>allBlocks右起第一个P,以该P为界,分为谓语部分和宾语部分,然后分别进行左搜索和右搜索;
所述左搜索,为从目标P块开始,向左搜索:若搜索到S、D块,则说明该P块有自己的S、D,不与其余P共用,此时停止继续搜索;若搜索到J块,则说明该J块作为前一个P块的宾语,作为该P块的主语,因此目标P块的主语就是这个兼语块,停止继续搜索;若搜索到P块,判断该P与目标P是否具有相似结构,若相似,跳过该P块,继续向前搜索S和D,否则,停止搜索;若搜索到了其他的块,跳过,继续搜索;
以如上方式对所述目标P进行向右的搜索。
7.如权利要求6所述的汉语句子中事件句式的抽取方法,其特征在于,所述在搜索过程结束之后,还包括:
进一步判断所述目标P是否具有自身的S和D,若没有,则在最初得到的主语部分中找到S和D,以作为所述目标P与其他P块共有的主语块;和
进一步判断所述目标P是否具有自身的O,若没有,则在最初得到的宾语部分中找到O,作为所述目标P与其他P共有的宾语块。
8.如权利要求6所述的汉语句子中事件句式的抽取方法,其特征在于,如果分类结果为多P块多层次,且所述目标动词所在P块在复杂名词短语MNP层面,其处理过程 为正确识别出MNP的左右边界,其中,MNP的左边界有四种情况,分别为:
A、vector<Block>allBlocks的左边界:MNP构成一个复杂主语块;
B、目标P左相邻介词:MNP构成EDC小句的状语从句;
C、目标P左相邻句子层面的P:MNP构成该P的复杂宾语;
D、目标P左相邻的P[O]uJDE句式:MNP位于其左侧‘的’字短语内部。
9.如权利要求6所述的汉语句子中事件句式的抽取方法,其特征在于,如果分类结果为多P块多层次,且所述目标动词所在P块在小句层面,则处理过程为:
对于vector<Block>allBlocks中所有位于MNP层面的P块,确定这个P的左右边界,将所述MNP作为一整个块,如果所述MNP块在目标P块的左边,则判定所述MNP构成目标P的S;否则,判定所述MNP构成目标P的O;和
获取所述目标P块支配的各个功能块。
CN201010272667.9A 2010-09-03 2010-09-03 一种汉语句子中事件句式的抽取方法 Active CN101937430B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201010272667.9A CN101937430B (zh) 2010-09-03 2010-09-03 一种汉语句子中事件句式的抽取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201010272667.9A CN101937430B (zh) 2010-09-03 2010-09-03 一种汉语句子中事件句式的抽取方法

Publications (2)

Publication Number Publication Date
CN101937430A CN101937430A (zh) 2011-01-05
CN101937430B true CN101937430B (zh) 2015-04-15

Family

ID=43390764

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201010272667.9A Active CN101937430B (zh) 2010-09-03 2010-09-03 一种汉语句子中事件句式的抽取方法

Country Status (1)

Country Link
CN (1) CN101937430B (zh)

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102693314B (zh) * 2012-05-29 2015-07-29 代松 一种基于事件搜索的敏感信息监控方法
CN103268311A (zh) * 2012-11-07 2013-08-28 上海大学 基于事件结构的中文语句分析方法
CN103176963B (zh) * 2013-03-08 2015-06-03 北京理工大学 基于crf++汉语句义结构模型自动标注方法
CN103699689B (zh) 2014-01-09 2017-02-15 百度在线网络技术(北京)有限公司 事件知识库的构建方法及装置
CN104516874A (zh) * 2014-12-29 2015-04-15 北京牡丹电子集团有限责任公司数字电视技术中心 一种对名词短语进行依存句法分析的方法及系统
US10133728B2 (en) 2015-03-20 2018-11-20 Microsoft Technology Licensing, Llc Semantic parsing for complex knowledge extraction
CN106815188B (zh) * 2015-11-27 2020-02-18 中科国力(镇江)智能技术有限公司 一种汉语兼语结构获取方法
CN107729337B (zh) * 2016-08-11 2020-05-22 北京国双科技有限公司 事件的监测方法和装置
CN108304362B (zh) * 2017-01-12 2021-07-06 科大讯飞股份有限公司 一种从句检测方法及装置
CN107818078B (zh) * 2017-07-20 2021-08-17 张宝华 汉语自然语言对话的语义关联与匹配方法
CN107818082B (zh) * 2017-09-25 2020-12-04 沈阳航空航天大学 结合短语结构树的语义角色识别方法
CN109002434A (zh) * 2018-05-31 2018-12-14 青岛理工大学 客服问答匹配方法、服务器及存储介质
CN109582949B (zh) * 2018-09-14 2022-11-22 创新先进技术有限公司 事件元素抽取方法、装置、计算设备及存储介质
CN109460547B (zh) * 2018-09-19 2023-03-28 中国电子科技集团公司第二十八研究所 一种基于自然语言处理的结构化管制指令提取方法
CN111368540B (zh) * 2020-03-05 2023-07-14 国网安徽省电力有限公司 一种基于语义角色分析的关键词信息抽取方法
CN113779961A (zh) * 2020-06-09 2021-12-10 国家计算机网络与信息安全管理中心 一种自然语言文本的惯用句式提取方法及电子装置
CN112395860A (zh) * 2020-11-27 2021-02-23 山东省计算中心(国家超级计算济南中心) 一种大规模并行政策数据知识抽取方法及系统
CN112633483B (zh) * 2021-01-08 2023-05-30 中国科学院自动化研究所 四元组门图神经网络事件预测方法、装置、设备及介质
CN112800754A (zh) * 2021-01-26 2021-05-14 浙江香侬慧语科技有限责任公司 基于预训练语言模型的无监督语法推导方法、装置和介质

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446942A (zh) * 2008-12-10 2009-06-03 苏州大学 一种自然语言句子的语义角色标注方法
CN101446943A (zh) * 2008-12-10 2009-06-03 苏州大学 一种中文处理中基于语义角色信息的指代消解方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101446942A (zh) * 2008-12-10 2009-06-03 苏州大学 一种自然语言句子的语义角色标注方法
CN101446943A (zh) * 2008-12-10 2009-06-03 苏州大学 一种中文处理中基于语义角色信息的指代消解方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
汉语真实文本的语义角色标注;陈丽江;《中国优秀硕士学位论文全文数据库》;20071015(第04期);第8,12-17,23,26-29页 *

Also Published As

Publication number Publication date
CN101937430A (zh) 2011-01-05

Similar Documents

Publication Publication Date Title
CN101937430B (zh) 一种汉语句子中事件句式的抽取方法
Tan Text mining: The state of the art and the challenges
CN107038229B (zh) 一种基于自然语义分析的用例提取方法
CN110532328B (zh) 一种文本概念图构造方法
CN107193798B (zh) 一种基于规则的试题类自动问答系统中的试题理解方法
CN104679850B (zh) 地址结构化方法及装置
Al-Hroob et al. The use of artificial neural networks for extracting actions and actors from requirements document
CN110825721A (zh) 大数据环境下高血压知识库构建与系统集成方法
JP2002215617A (ja) 品詞タグ付けをする方法
CN104679867B (zh) 基于图的地址知识处理方法及装置
CN109657230A (zh) 融合词向量和词性向量的命名实体识别方法及装置
KR20170106308A (ko) 어노테이션 보조 장치 및 그것을 위한 컴퓨터 프로그램
CN107562919B (zh) 一种基于信息检索的多索引集成软件构件检索方法及系统
CN106599032A (zh) 一种结合稀疏编码和结构感知机的文本事件抽取方法
CN113312922B (zh) 一种改进的篇章级三元组信息抽取方法
CN113196277A (zh) 用于检索自然语言文档的系统
JPH0816620A (ja) データ分類装置/方法、データ分類木生成装置/方法、派生語抽出装置/方法、シソーラス構築装置/方法、データ処理システム
CN104391837A (zh) 一种基于格语义的智能语法分析方法
CN112966525A (zh) 一种基于预训练模型和卷积神经网络算法的法律领域事件抽取方法
CN112733547A (zh) 一种利用语义依存分析的中文问句语义理解方法
CN109783819A (zh) 一种正则表达式的生成方法及系统
CN113963748B (zh) 一种蛋白质知识图谱向量化方法
CN111291573A (zh) 有向图意义导向模型驱动的短语语义挖掘方法
Al-Arfaj et al. Towards ontology construction from Arabic texts-a proposed framework
Iwatsuki et al. Using formulaic expressions in writing assistance systems

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
TR01 Transfer of patent right

Effective date of registration: 20171228

Address after: 210042 Xuanwu District, Xuanwu District, Jiangsu, Nanjing, No. 699-22, building 18

Patentee after: CERTUSNET CORP.

Address before: 100084 Beijing 100084-82 mailbox

Patentee before: Tsinghua University

TR01 Transfer of patent right