4.2.3 领域概念词汇获取方法
4.2.3.1 算法概述
本节首先给出领域概念词汇获取的相关术语概念,解释文本的物理结构。
定义(文本的物理结构,Physical Structure of Text):一个文本Te的物理结构包括三个部分:
Sr是Te的字符串的集合。Sr中的元素可以分为4类:字符、小句、句子和段落。设Sr=Sr1∪Sr2∪Sr3∪Sr4,其中Sr1,Sr2,Sr3,Sr4分别表示Te中的字符集合、小句集合、句子集合和段落集合。进一步假设Sr1,Sr2,Sr3,Sr4分别构成Te的一个保序划分。将它们称为语段,语段形式可能由一个句子中的若干字符组成,或由一个句子中的若干小句组成,大到由若干自然段落组成。对于文档,整个文档或文本可以看作是一个最大的语段。
⊂是Sr上的一个包含关系,使得(1)对任何a,b∈Sr,如果a⊂b,则a是b的一个部分;例如,对于句子“人工智能是自然科学和社会科学的交叉性学科”,设a为“智能”,b为“人工智能”,a⊂b,即a是b的一部分。(2)对任何a,b∈S,如果a⊂b,则a≠b。
≤是Sr的元素在T中出现的先后次序关系。使得:(1)对任何a,b∈Sr,如果a≤b,则对任何元素c⊂b,a≤c;例如,对于句子“人工智能是自然科学和社会科学的交叉性学科”,设a为“人工智能”,b为“自然科学”,c为“科学”,则a≤c,即“人工智能”与“科学”为先后次序关系。(2)如果a≤b,则对任何元素c⊂a,c≤b;(3)如果a⊂b,则a≤b和b≤a均不成立;(4)如果对任何c⊂a,d⊂b,c≤d,则a≤b。
通常来说,领域概念词汇识别任务是指从领域文本中识别出领域概念词汇。本节领域概念词汇获取任务定义如下,包括输入领域文本,输出领域概念词汇。
定义(领域概念词汇获取任务):领域概念获取是一个五元组(Co,A,
Re,Scn,Gcn)。
a)Co是输入的领域文本;
b)A是算法;
c)Re是所用的资源,Re=(Gd,Dd,Rv,Th,Tc,Qc,Gp,Sm),
Gd:通用词典(General Dictionary);
Dd:领域词典(Domain Dictionary);
Rv:领域本体关系词汇(Relation Vocabulary of Domain-Specific Ontology);
Th:同义词词林(Thesaurus);
Tc:时间聚合体(Time Cohesion);
Qc:数量聚合体(Quantifier Cohesion);
Gp:通用短语(General Phrases);
Sm:语义模型(Semantic Models);
d)Scn={C1,C2,…,Ck-1,…,Cm},是由领域概念获取系统输出的领域概念词汇集合;
e)Gcn={C′i,C′2,…,C′k-1,…,C′n},是从语料中能够提取的领域概念词汇集合。
本节混合式的领域概念词汇提取的核心思想是:引入主动词和语义角色识别来辅助领域概念词汇识别,旨在将领域术语识别从词语层面提升到语义层面,能够识别专业领域层面相对语义完整的领域词汇。
在现有的基于统计、基于句法和语义分析、基于混合的分词方法中,分词方法主要是基于句法信息的。基于句法信息的方法难以提取非结构化领域文本中大量的未登录概念或未登录术语。例如,对于考古领域中的句子“该遗址是迄今中国最北的旧石器时代早期遗址。”,通过分词方法可以获得“遗址、迄今、中国、石器、时代、早期、遗址”。而该句子包含的考古领域概念词汇包括“遗址、迄今、中国、遗址、旧石器时代早期、旧石器时代早期遗址、迄今中国最北的旧石器时代早期遗址”。可见,通过分词方法获得的词语“石器、时代、早期”难以忠实地描述句子表达的内容。同时,难以提取如下考古领域概念词汇“旧石器时代早期、旧石器时代早期遗址、迄今中国最北的旧石器时代早期遗址”。基于领域概念词汇在语句中的词法和语义特征的联系与区别,本节通过对句子进行语义分析来提取领域概念词汇。也就是,在一般分词方法的基础上,引入主动词和语义角色识别,利用对它们的识别结果来辅助抽取领域概念词汇。
主动词可以看作句子的骨架。主动词(Main Verbs)是句子的主要谓语动词,是句子的中心、核心。语义角色(Semantic Roles)是由主动词联系的担当一个意义完整的语义成分。承担语义角色的字符串往往是一个概念或多个概念的组合,也可能是句子,从而可以提取反映句子内容的意义完整的领域概念。本节的混合式领域概念词汇抽取方法的一个显著特点是突破了仅仅停留在词语层面的局限。比如,在上述例子中,句子的主动词是“是”,字符串“迄今中国最北的旧石器时代早期遗址”承担句子的客体语义角色,可以作为一个完整的概念词汇,不需要更细粒度的分词结果。
再如,句子“该遗址的人类化石包括两颗牙齿和一段股骨,其中出自第5层的犬齿大部分已残破,齿冠磨耗很重,代表一老年个体;第6层的一颗保存完整,齿冠磨耗程度中等,咬合面的纹理不很复杂,是一成年人的右下臼齿;股骨出自第6层底部,特征和现代人的基本一致,代表一幼年个体。”。第一、四、八、九、十一小句的主动词分别是“包括、代表、是、出自、代表”。在这些小句中承担语义角色的字符串分别是“该遗址的人类化石、两颗牙齿和一段股骨”,“一老年个体”,“一成年人的右下臼齿”,“股骨、第6层底部”和“一幼年个体”。它们均是考古领域概念词汇。其他小句不含有主动词。
对于通用领域和专业领域文本来说,主动词识别是一个比较困难的问题。对领域非结构化文本,通常具有如下特点是:第一,使用的语句句式比较单一,语句句式往往严整而少变化;第二,从句类看,主要使用陈述句;第三,从句型看,领域文本语句多用主谓句,一般不用省略句;第四,领域文本的主动词集合相对比较稳定。基于这些特点,本节将描述一种基于语料学习驱动的主动词识别方法[52]。该方法了利用领域本体关系词汇、训练语料中主动词、语料中含有的动词及其频率等信息。
语义角色依赖于主动词而存在,语义角色可以看作句子的核心要素。根据句子的主动词和汉语句子的句模结构(Sentence Pattern Structure)识别句子的各个语义角色。
下面分析句型和句模的联系和区别。句型是由句法成分按照一定的结构方式构成的,是根据“句子-句法”平面的特征提取出的类别,是从“句子-句法”平面抽象出来的句法结构的格局。句模是根据“句子-语义”平面的特征提取出的类别[57]。句型和句模是表层(显层)和深层(隐层)的关系。句型由主语、宾语等句法成分构成。句模由主事、施事、受事和客事等语义角色构成。句型和句模之间是多对多的映射关系。一种句型可以表示多种句模。一种句模可以通过不同的句型来表示。例如,句型“主—动—宾”一般对应着句模“主事—主动词—客事”。但该句模又可以分为“施事—主动词—受事”“施事—主动词—使事”等句模。反之,“受事—施事—主动词”,可对应于“宾主动”和“主状动”。然后,利用句法规则提取句子中的领域概念词汇。
本节采用混合式的领域概念获取方法,该方法有机地融合了规则、统计、句法、语义等信息。整个获取过程分为如下六个步骤,如图4.1所示。
(1)对领域非结构化文本进行预处理。包括文本清理和文本物理结构信息提取。
图4.1 领域概念获取系统的体系结构
(2)对领域文本进行分词。包括分词和词性标注。其中,采用最大前向匹配法进行分词。
(3)对领域文本进行句法和语义分析。包括语义聚合体识别、单复句识别、主动词识别以及语义角色识别。
(4)识别候选概念。包括组合型歧义消除、交集型歧义消除以及候选概念产生。
(5)领域概念词汇输出。包括领域概念词汇验证和领域概念词汇输出。
(6)领域概念词汇学习。包括领域概念词汇相似度量、领域概念词汇组合机制学习以及新领域概念词汇产生。
4.2.3.2 预处理模块
预处理模块包括文本清理、文本物理结构识别。从互联网等资源采集的多源领域文本,由于语言表达以及各种人力因素等原因可能导致领域文本出现错误的标点符号和无法识别的字符等,从而影响后续的领域概念词汇获取。因此,需要首先进行文本清理即文本纠错处理。这项工作由文本清理模块来完成。
对于领域文本的标点符号,本节采用基于语义歧义分类的文本清理方法。其基本思想是根据标点符号的纠正动作是否产生语义歧义,对标点符号进行分类纠正。首先列出了四种标点符号错误:“,”“;”“.”“:”,它们对应的正确标点符号分别为“,”“;”“句号或小数点”“冒号或比例号”。然后按照纠正操作是否产生语义歧义进行标点符号纠正,即通过纠正动作“Replace(〈t1>,〈t2>)”来完成。纠正动作Replace(〈t1>,〈t2>)表示将字符串t1替换为t2。在四种标点符号错误中,前两种错误分别对应的正确标点符号仅有一种,从而可通过执行纠正动作1:Replace(〈,>,〈,>)和纠正动作2:Replace(〈;>,〈;>)来校正,并且不产生语义歧义。后两种错误分别对应的正确标点有两种,会产生语义歧义,不进行纠正。
通常,从领域文本的句子中提取领域概念词汇。对于输入的领域文本字符流,需要从中识别出文本标题、段落标题、段落、句子、参考书目和作者等文本的物理结构信息。
本节利用与文本的几何结构和关键字相关的启发信息,来识别文本的物理结构。领域文本的几何结构是指文本中物理结构信息的几何位置。关键字是指标识文本物理结构信息的字符串。例如,关键字“关键词”标识这个关键字后面的字符流为文档的关键词。
4.2.3.3 分词模块
分词是实现领域概念词汇提取的基础。本节给出领域概念词汇切分规则。对下列类型的字符或字符串进行切分:
汉字字符串:由若干个连续的汉字字符构成的字符串。
句末点号和句中点号。句中点号包括逗号、顿号、分号、冒号。句末点号包括句号、问号、叹号。
非汉字字符串:由若干个连续的非汉字字符构成的字符串。非汉字符串可能包括数字、字母等。
需要指出的是,对下列两种情形,不作切分处理:
(1)对满足标点符号启发规则的字符串不做切分。例如,对于规则:
表示对于字符串S,若S位于引号之间,则S不做切分,其中Left(〈S>,〈“>)表示S左邻引号“,Right(〈S>,〈”>)表示S右邻引号”,NoSeg(S)表示S不做词语切分。本规则旨在保留引号中完整的词语或短语。
(2)若字符串S位于小括号、中括号、大括号、单引号或双引号之间,则S不做切分。本规则旨在保留括号中完整的词语或短语。
本节采用最大前向匹配法进行分词。词语W的词性标注为W在词典中的词性集合,可能为一个或多个。需要说明的是,本节的领域概念词汇识别方法仅利用词语W的可能词性集合来辅助提取候选领域概念词汇,并不对词语W在句子中的词性进行辨别。
4.2.3.4 语义聚合体和单复句识别模块
在领域非结构化文本中,关于时间和数量的表达通常具有一定的特点或规律。例如,在考古领域文本中,时间描述主要与古时期、古时代、年代和日期相关。例如,三星堆古遗址的年代分布在公元前3000年至公元前1200年。数量描述主要与个数、种类数、序数和比例等相关。例如,三星堆古遗址的分布面积为12平方千米。因此,可以采用文法来构造时间和数量的表达形式。这样,可以单独处理表示时间和数量的字符串。为此,本节先引入一些定义。
定义(时间聚合体,Time Cohesion):对于字符串S,如果存在TS⊆S,TS为表示时间的字符串,则将S中包含TS的表示时间的最大字符串称为时间聚合体。
例如,对于句子“三星堆遗址是公元前16世纪至公元前14世纪世界青铜文明的重要代表”,包含时间聚合体“公元前16世纪至公元前14世纪”。再如,对于句子“放射性碳素断代并经校正,半坡类型的年代为公元前4600~前4400年左右,史家类型为前3690年。”,包含时间聚合体“公元前4600~前4400年左右”和“前3690年”,而不是“公元前4600~前4400年”。
定义(数量聚合体,Quantifier Cohesion):对于字符串S,如果存在QS⊆S,QS为表示数量的字符串,则将S中包含QS的表示数量的最大字符串称为数量聚合体。
例如,对于句子“三星堆古遗址已经确定的古文化遗存分布点达30多个”,包含数量聚合体“30多个”。对于句子“鸽子洞洞口向东,洞深约15米。”,包含数量聚合体“约15米”,而不是“15米”。
定义(不完全时间聚合体,Incomplete Cohesion):对于字符串S,如果S被识别为时间聚合体,而存在时间聚合体S′,S⊂S′,但S′未被识别,则将S称为不完全时间聚合体。
例如,句子“1986年7月至9月发掘的两座大型商代祭祀坑,出土了金、铜、玉、石、陶、贝、骨等珍贵文物近千件”中,若识别出“1986年7月”,则为不完全时间聚合体,因为“1986年7月至9月”未别识别出来。
将时间聚合体和数量聚合体统称为语义聚合体(Semantic Cohesion)。本节阐述一种可执行标记语言Executive Tagged Language(简称ETL)。ETL由两部分组成:文法和语义动作Agent。语义动作Agent包括执行语义动作的约束条件和内容,约束条件是用文法来表示的。该语言具有良好的扩展性、重用性以及构造的极小性。
对于领域文本中的表示时间和数量相关的时间聚合体和数量聚合体,由时间聚合体可执行标记语言ETLti-co和数量聚合体的可执行标记语言ETLqu-co对它们分别进行识别和标注。对于不完全时间聚合体,首先由ETLti-co构建表示时间的词汇集合,然后在这些词汇或符号的触发或启发下对其进行识别。对于由ETLti-co标记的时间聚合体字符串TS,作如下操作:
对于时间聚合体TS右邻的字符串,按照从左向右的方向,取到第一个不是时间聚合体词汇或符号的字符为止,设提取字符串为RS,如图4.2所示。
图4.2 不完全时间聚合体的识别图
对于字符串时间聚合体TS左邻的字符串,按照从右向左的方向,取到第一个不是时间聚合体词汇或符号的字符为止,设提取字符串为LS,如图4.2所示。
将Sum(LS,TS,RS)=LS+TS+RS标注为时间聚合体,同时去掉TS的时间聚合体标注,如图4.2所示。也就是,识别表示时间语义的最长字符串。
未登录数量聚合体识别的基本思想是:对数量聚合体的构成要素进行分类,并对构成要素的构成顺序进行归类。也就是,本节根据数量聚合体的表达形式或表示规律进行识别。根据前置约数词、中置约数词、后置约数词的不同位置,数量聚合体的表达形式可以分为下述八种情形:
情形1:〈数字串>〈中置约数词>〈未登录量词>〈后置约数词>
情形2:〈数字串>〈中置约数词>〈未登录量词>
情形3:〈数字串>〈未登录量词>〈后置约数词>
情形4:〈数字串>〈未登录量词>
情形5:〈前置约数词>〈数字串>〈中置约数词>〈未登录量词>〈后置约数词>
情形6:〈前置约数词>〈数字串>〈中置约数词>〈未登录量词>
情形7:〈前置约数词>〈数字串>〈未登录量词>〈后置约数词>
情形8:〈前置约数词>〈数字串>〈未登录量词>
其中,数字串是指连续的数字字符串。前置约数词是指在数量聚合体中,通常位于数字串前面的约束词,例如“大约二三十人”中的“大约”。后置约数词是指在数量聚合体中,通常位于数字串后面的约束词,例如“四五十吨左右”中的“左右”。中置约数词是指在数量聚合体中,通常位于数字串和量词之间的约束词,例如“二十多岁”中的“多”。
对于含有数字字符串S的句子,设前置约数词为FA(Front Approximate Words),中置约数词为MA(Middle Approximate Words),后置约数词为BA(Back Approximate Words),未登录量词为UQ(Unknown Quantifier),作如下操作:
首先,判断数字字符串S左邻是否为前置约数词,如果是,则赋给前置约数词FA,否则FA为空。
然后,判断数字字符串S右邻是否为中置约数词,如果是,则赋给中置约数词MA,否则MA为空。
最后,识别数字字符串S右边的第一个后置约数词,如果找到,则赋给后置约数词BA,否则BA为空。
例如,若FA≠∅,MA≠∅,BA≠∅,将句子中数字字符串S右邻的中置约数词和第一个后置约数词之间的字符串赋值给未登录量词UQ,并且Length(UQ)>α(α为阈值),则符合上面情形5的数量聚合体表达形式,将FA+S+MA+UQ+BA标注为数量聚合体,其中,Length(UQ)表示UQ的长度,符号“+”表示字符串拼接操作。
对于单复句,本节采用关联词外部特征法来识别,具体地,构建单句和复句的可执行标记语言ETLsi-co,根据ETLsi-co对文本中的关联词进行标注。
4.2.3.5 通用短语识别模块
根据汉语在句型或句式表达的特点,在汉语非结构化文本中,存在大量的常用短语或句型。例如,句子“三星堆遗址是一座由众多古文化遗存分布点所组成的一个庞大的遗址群”中,含有短语“由…组成”。再如,考古领域文本中的句子“他们在种族上同仰韶文化的居民没有什么区别,与现代华北人种也有相同之点(选自马家窑文化)。”中含有短语“与…也有相同之点”。还有“当…时”,“与…大致相同”,“比…更为突出”等。一方面,根据这些短语可以提取候选领域概念词汇。例如,从上述句子可以提取考古领域概念词汇“现代华北人种”。另一方面,这些短语用来辅助识别主动词和语义角色。
定义(通用短语,General Phrase):将形如
“〈V0>〈K0>〈V1>〈K1>〈V2>〈K2>……〈Vn-1>〈Kn-1>〈Vn>〈Kn>”
的字符串称为通用短语,记为GP。其中,K0,K1,K2,...,Kn为常量项。常量项可分为单常量项和常量类项。V0,V1,V2,...,Vn为字符串变量项,称为通用短语变量。
例如,“〈#非空字符串z0>〈与>〈#非空字符串z1>〈相似>”,“〈#非空字符串z0>〈与>〈#非空字符串z1>〈迥然不同>”,“〈#非空字符串z0>〈以>〈#非空字符串z1>〈为显著特色>”均为通用短语,其中〈与>、〈相似>、〈迥然不同>、〈以>、〈为显著特色>为常量项,〈#非空字符串z0>和〈#非空字符串z1>为字符串变量项。
定义(通用短语匹配歧义):对于句子s和通用短语集合GPS,由S对GPS中的通用短语进行匹配,将满足下述任一情形的匹配称作通用短语匹配歧义。
情形1:句子s对通用短语集中GPS中的一个通用短语匹配得到多个匹配结果,将该种通用短语匹配歧义称为多结果匹配歧义。
情形2:存在多个通用短语与句子s同时匹配,将该种通用短语匹配歧义称为多短语匹配歧义。
本节阐述通用短语的匹配歧义消除方法,其基本思想是根据通用短语之间的关系来消除多结果匹配歧义和多短语匹配歧义。根据语境和通用短语的定义,可以得出通用短语是一种特殊的语境。为了消除通用短语的匹配歧义,根据通用短语的相似性和蕴含性分别对通用短语的关系进行分类。根据通用短语之间的相似性,通用短语之间的关系可以分为等同通用短语、包含通用短语、部分相似通用短语以及相异通用短语,如图4.3所示。根据通用短语之间蕴含性,通用短语关系则可以分为等同蕴含通用短语、包含蕴含通用短语以及其他蕴含通用短语,如图4.4所示。
图4.3 基于相似性的通用短语关系分类
图4.4 基于蕴含性的通用短语关系分类
下面给出通用短语识别和匹配歧义消除算法。这是一种多结果式和多短语式的通用短语匹配歧义的算法。其中,多结果式匹配歧义消除的基本思想是,根据句子与通用短语的匹配距离以及与通用短语中常量项匹配的句子词语的位置来选择通用短语匹配结果。另外,多短语式匹配歧义消除的基本思想是,根据通用短语的关系以及句子所匹配的通用短语的关键字个数和长度来选择通用短语匹配结果。
算法:通用短语识别和匹配歧义消除算法
输入:非结构化语料;
输出:标注通用短语的语料;
通用短语的识别:
(1)基于句内点号(包括逗号和分号),将汉语句子分解为小句;
(2)构建通用短语的可执行标记语言ETLge-ph;
(3)根据通用短语的可执行标记语言ETLge-ph对小句进行通用短语的常量项和通用短语变量标注;
#多结果的通用短语的匹配歧义消除:
(4)对于字符串S,由通用短语GP进行匹配,设得到n个匹配结果R1,R2,…,Rn;
(5)分别计算R1,R2,…,Rn中句子s与通用短语GP的匹配距离PMD1(S,GP),PMD2(S,GP),…,PMDn(S,GP);
(6)对这n个距离进行比较,求得最小值Smallest_PMD;
(7)构建集合T,T={i|PMDi(S,GP)=Smallest_PMD},即集合T由获得最小匹配距离的匹配结果序号构成;
a)句子s中匹配通用短语GP的所有常量项均独立成词,也就是在句子s中不与其左邻或右邻字符构成词语;
b)基于通用短语的常量项匹配近邻原则,选择常量项匹配距离较小的匹配结果。若模式P中依次含有常量项t0,t1,…,tk,句子s中匹配这些常量项的字符串依次为s0,s1,…,sk,选择L最小的匹配结果。
其中,Dis(si,si+1)为字符串si和字符串si+1之间的字符串的长度。通过计算可得,选择满足如下条件的匹配结果Ri:①对于第一个常量项K0,若在句子s中存在m个不同位置的匹配L1,L2,…,Lm,Ri中Li的位置最大;②对于第二个以后常量项的多个不同位置匹配,Ri中匹配常量项的位置最小。
#多通用短语的匹配歧义消除:
(10)如果句子s被多个具有包含关系、部分相似或相异的通用短语匹配,则提交候选概念产生模块处理;
(11)若句子s被多个具有等同蕴含、包含蕴含、其他蕴含关系的通用短语匹配;
a)情形1:句子s被多个具有等同蕴含关系的通用短语匹配,实际上就是一个通用短语的匹配歧义,则采用步骤(4)至步骤(9)匹配歧义消除方法;
b)情形2:句子s被多个具有包含蕴含关系的通用短语匹配,则提交候选概念产生模块处理;
c)情形3:句子s被多个具有蕴含关系的通用短语GP1,GP2,…,GPk匹配,而这种蕴含关系既不是等同蕴含,也不是包含蕴含;如果GP1,GP2,…,GPk的关键字个数相同,则计算GPi(i=1,2,…,k)的关键字长度之和Sumkwi,采用最长匹配原则,选择Sumkwi值最大的GPi的匹配结果。否则,如果GP1,GP2,…,GPk的关键字个数不同,则提交候选概念产生模块处理。这里,
4.2.3.6 主动词识别模块
本节借鉴相关工作[58],介绍主动词(Main Verb)的定义。简单句是指只有一个谓语动词的汉语句子。简单句的谓语在汉语中可以是动词、形容词、名词或主谓。复杂句由两个或多个简单句组成。主动词是简单句中的谓语动词,它对应英语中的时态动词。
对于主动词,作如下约定。首先,在关键句、系列动词句和并列谓语动词的句子中,第一个谓语动词被定义为主动词。第二,助动词不宜用作主动词。由于语料库的大部分句子是带有谓语动词的句子。因此,本节关注带有谓语动词的简单句和复杂句。在基于自举的主动词识别方法中,首先利用少量的种子主动词,然后自动识别领域文本语料中句子的主动词。种子主动词选自训练语料中句子的主动词。
主动词识别算法的动机是基于领域语料的动词分布。例如,对于语料中国百科全书考古卷[59],该语料包括三百万个字符。频率大于10的动词占动词频率总和的99.27%,频率大于2的动词占动词频率总和的99.85%。在1549个动词集合中,频率大于2的动词占比达到75.41%,频率大于5的动词占比达到61.46%。根据动词的频率分布,可以得出结论,由于汉语句子的主动词是动词,所以大多数句子的主动词出现两次以上。在第一次迭代期间,本节算法根据种子主动词识别句子的新主动词,并将这些新主动词动态添加到主动词列表中。扩展后的主动词列表用于在下一次迭代期间识别后续句子的主动词。该过程重复设定阈值的迭代次数,或者直到所有语料均被处理完毕。
句子中的主动词来源于句子的动词集合,所以首先从句子中识别所有的动词,由它们构成候选主动词集合,然后从中选择或识别主动词。本节构建了三个动词集合来识别句子中的动词。它们是:种子主动词集、训练动词集和动词学习集。然后采用最大匹配法从句子中提取这些动词词汇。三个动词集合的构建方法如下,如图4.5所示。
种子主动词集SVS(Seed Verb Set),来自训练语料中句子的主动词,它们也构成领域本体关系词汇集。
训练动词集TVS(Trained Verb Set)。由出现在训练语料中频率大于给定阈值的动词词典词汇构成。也就是说,如果词语w属于动词词典VD(Verb Dictionary),并且词语w在训练语料中的出现频率Freq(w,Corpus)大于阈值α,那么将词语w构建为训练动词,即:
动词学习集LVS(Learned Verb Sets)。由种子主动词、训练动词、同义词词林中与其同义的动词构成。也就是说,如果词语w为种子主动词、训练动词,或存在w′,w和w′在同义词词林Thesaurus中为同义词,那么将词语w构建为学习的动词,即:
其中,Synonymous(w,w′,Thesaurus)表示w和w′在Thesaurus中为同义词。
图4.5给出了动词词典、种子主动词集、训练动词集、动词学习集之间的关系。构建种子主动词的原因是:这些关系词汇描述了不同领域实体的基本关系。它们在句子中往往是以句子的主动词形式出现的,从而可搭建不同领域实体的关系。为了提高算法的速度,在构建训练动词的公式中,取出现频率阈值α为1。
图4.5 种子主动词、训练动词、学习动词之间的关系
一般地,动词词典中动词数量通常是有限的,主动词识别依赖于识别的动词集合,因此需要学习动词来扩充动词词典集合。构建动词学习集的原因是,动词词典中动词不一定能够覆盖测试语料中出现的所有动词,因此需要借助其他资源来扩充这些词汇。本节扩充的方法并不是简单地添加词汇,而是以种子主动词集和训练动词集为种子,通过同义词词林,将它们的同义词扩充进来。
根据句子的候选主动词集合,下一步是如何从中识别出或选择出句子的主动词。对出现在不同动词集合中的候选主动词,可设置不同的优先级。优先级是根据这三种类型动词作为句子主动词的概率设置的,概率越大,优先级越高。通常,种子主动词的优先级最高,训练动词的优先级居中,学习动词的优先级最低。
主动词识别的基本思想是,根据候选主动词的数量和优先级来识别主动词。主动词提取过程是:从属于种子主动词的候选主动词、训练动词集中的候选主动词和动词学习集中的候选主动词中依次进行选择。若选择成功则输出主动词;否则,输出句子不含有主动词信息。若汉语句子中只含有一个候选主动词,只需要判断它能否作为主动词即可。若句子中含有多个候选主动词,需要计算每个候选主动词的权值或权重,根据权值来选择主动词。下面给出基于语料学习的主动词识别方法。
算法:基于语料学习的主动词识别方法
输入:分词词性标注、语义聚合体、通用短语、单复句识别的语料;
输出:标注主动词的语料;
(1)采用最大前向匹配法提取汉语自由文本句子s中的种子主动词集、训练动词集和动词学习集中动词;
(2)计算句子s中包含种子主动词集SVS中元素的个数Numor;
若Numor=1,将唯一的种子主动词设为候选主动词,转入(5);
若Numor≥2,将所有的种子主动词设为候选主动词,转入(7);
若Numor=0,则转入下一步;
(3)计算句子s中包含训练动词集TVS中元素的个数Numtv;
若Numor=0∧Numtv=1,将训练动词设为候选主动词,转入(5);
若Numor=0∧Numtv≥2,将所有的训练动词设为候选主动词,转入(7);
若Numor=0∧Numtv=0,则转入下一步;
(4)计算句子s中包含动词学习集LVS中元素的个数Numlv;
若Numor=0∧Numtv=0∧Numlv=0,则输出没有主动词;
若Numor=0∧Numtv=0∧Numlv=1,将训练动词设为候选主动词,转入(5);
若Numor=0∧Numtv=0∧Numlv>1,将所有的训练动词设为候选主动词,转入(7)。
#单个候选主动词识别:
(5)若句子s中存在一个候选主动词CMV,提取所有包含CMV的词汇W1,W2,…,Wn;
(6)对于词汇W1,W2,…,Wn,如果∀i(i=1,2,…,n),Wi不是时间聚合体、数量聚合体或不切分字符串,则将候选主动词CMV设为主动词,否则输出句子不含有主动词;
#多个候选主动词识别:
(7)若句子s中存在k个候选主动词CMV1,CMV2,…,CMVk;
(8)对于候选主动词CMVi,提取包含CMVi的所有词语W1,W2,…,Wm;
(9)计算候选主动词CMVi的权重Weight(CMV i);
其中,词语Wi可能为如下类型的词汇:
零型词汇:时间聚合体词汇、数量聚合体词汇;
Ⅰ型词汇:领域词典词汇;
Ⅱ型词汇:通用词典词汇;
Ⅲ型词汇:不切分字符串;
Ⅳ型词汇:通用短语常量项词汇;
Ⅴ型词汇:通用短语变量词汇;
权值设置的原则:
Weight(0)=Weight(Ⅲ);
Weight(Ⅰ)=Weight(Ⅳ);
Weight(0)〈Weight(Ⅰ)〈Weight(Ⅱ);
Weight(Ⅳ)〈Weight(Ⅴ);
Weight(Ⅵ)>|Weight(Ⅱ)|;
(10)根据邻接知识约束规则对候选主动词CMVi的权重Weight(CMVi)进行增减计算;
(11)计算CMV1,CMV2,…,CMVk,设最大权值为Greatest_CMV_Weight;
(12)构建集合Tv,Tv={i|Weight(CMVi)=Greatest_CMV_Weight};
若|Tv|=1,将候选主动词CMVi设为主动词;
若|Tv|=0,则输出没有主动词;
若|Tv|≥2,设权值等于Greatest_CMV_Weight的候选主动词为CMVi1,CMVi2,…,CMVik,转入下一步;
(13)人工从训练语料中构建学习主动词集合LMVS,判断{CMVi1,CMVi2,…,CMVik}在LMVS中出现的元素个数Numlmvs;
若:(|Tv|≥2)∧(Numlmvs=1),将出现在LMVS中的候选主动词设为主动词;
若:(|Tv|≥2)∧(Numlmvs=0),则输出没有主动词;
若:(|Tv|≥2)∧(Numlmvs>1),转入下一步;
(14)设{CMVi1,CMVi2,…,CMVik}中出现在学习主动词集合LMVS中的词汇为CMVj1,CMVj2,…,CMVjp,重新计算这些词汇的权值;
其中,freqlmvs(CMVjp)为CMVjp作为学习主动词出现的频率,freqlvs(CMVjp)为CMVjp在语料中出现的频率,α和β是正调节因子;
(15)比较Weight(CMVj1),Weight(CMVj2),…,Weight(CMVjp),设最大权值为Greatest_CMV_Weight′;
(16)构建集合T′,T′={i|Weight(CMVi)=Greatest_CMV_Weight′};
(17)如果|T′|=1,则将权值最大的候选主动词设为主动词;否则,若|T′|>1,则输出句子不含有主动词。
4.2.3.7 语义角色识别模块
句子语义角色识别的基本思想是根据汉语句子的语义模型及其关系来识别语义角色。根据汉语文本句子中主动词的识别结果和汉语句子的语义模型,可以进行语义角色识别。通常,汉语句子的语义结构由两个或两个以上的语义成分组成,其核心为动词(包括一般所说的动词和形容词)所表示的语义成分,即动核[57],或者说,动词构成句子的骨架。为了描述语义角色识别算法,先给出两个概念:语义模型和语义模型的常量项结构。
定义(语义模型,Semantic Model):语义模型是指动核结构生成句子时与句型结合在一起的语义成分的配置结构,形如:
的字符串称为语义模型,其中,Ti为项,可能为常量项、常量类项,或字符串变量项,常量项和常量类项根据现有汉语句模构建[57]。
例如,对于如下语义模型:
“〈D1>::=〈#非空字符串1>〈!自由文本关系基础模型介词1>〈#非空字符串2>〈!start_tag_MVE>〈#非空字符串R>〈!end_tag_MVE>”。在语义模型D1中,“〈#非空字符串1>”为字符串变量项,表示非空字符串;“〈!自由文本关系基础模型介词1>”为常量类项,表示自由文本关系基础模型介词;“〈!start_tag_MVE>”为常量类项,表示主动词开始标记;〈!MARE_END_TAG>为常量项,表示主动词结束标记。根据现代汉语句模[57],本节构建了面向知识获取的语义模型。语义模型可以分为如下类型,如图4.6所示。
图4.6 基于相似性的语义模型分类
自由文本单句关系基础模型。由一个动核结构所构成。
自由文本单句关系复合模型。由两个或两个以上的动核结构所构成,包括联合、补充、致使三种复合关系。
第一种自由文本单句关系基础模型包括29个语义模型,第二种自由文本单句关系复合模型包括18个模型。从语义模型的定义可以得到,语义模型也是一种语境或模式。因此,语义模型根据其相似性可以分为等同语义模型、包含语义模型、部分相似语义模型和相异语义模型,如图4.6所示。
定义(语义模型的常量项结构,Constant Items Structure of Semantic Model):语义模型的常量项结构为其常量项和主动词构成的有序序列。
例如,对于语义模型
它的常量项结构为:“CS(H)=WRW”,其中第一个W表示常量项,即“〈!把>”,第二个W表示常量项,即“〈!给>”,R表示主动词标注项“〈!start_tag_MVE>〈#非空字符串R>〈!end_tag_MVE>”。语义模型的常量项结构共有六种类型:R、WR、RW、WRW、RR、WRR。具体地,如表4.1所示:
表4.1 语义模型的常量项结构
续表
语义角色可以分为四大类:主体、客体、与体和补体。利用语义角色来抽取领域概念词汇时,识别的目的是提取那些承担或扮演语义角色的字符串。在领域概念词汇识别算法中,主要识别如下语义角色[57]:
主体(Agent)。是动词所联系的主体动元。对主体中的施事、经事、系事、起事不作区分。
客体(Patient)。是动词联系着的客体动元。对客体中的准客事、受事、成事、使事、涉事、止事不作区分。
与体(Dative)。指与施事一起参与动作的参与体,或是系事的针对者、性状的共有者。对与体中的当事和共事不作区分。
位体(Locative)。属于客体,指事物存在或动作指向或到达的位置(处所、场合、目标等)。
例如,对于句子“2022年6月,考古人员在三星堆遗址祭祀区8号坑提取出一座青铜神坛,残高近1米,上部的神兽与下部镂空纹饰的台基目前处于分离状态。”,识别出主体是“考古人员”,客体是“一座青铜神坛”,位体是“在三星堆遗址祭祀区8号坑”。
下面给出语义角色识别算法。
算法:语义角色识别方法
输入:分词词性标注、语义聚合体、通用短语、单复句、主动词识别的语料;
输出:句子语义角色识别的语料;
#语义角色识别方法:
(1)构建汉语句子语义模型的可执行标记语言ETLsm-ro;
(2)基于句内点号(逗号和分号),将句子s分解为小句C1,C2,...,Ck;
(3)根据ETLsm-ro,判断小句Ci是否满足语义模型文法;
(4)如果小句Ci满足语义模型文法,并且所有常量项均没有和其相邻字符构成词语,则对小句Ci进行语义角色标注;否则,不进行任何标注。
#相似语义模型匹配的歧义消除方法:
(5)对于小句C,基于语义模型集合进行匹配,判断是否被具有等同关系的语义模型所匹配。若小句C与语义模型SM匹配,得到n个匹配结果R1,R2,…,Rn;
(6)分别计算匹配结果R1,R2,…,Rn中句子s与语义模型SM的匹配距离PMD1(s,SM),PMD2(s,SM),…,PMDn(s,SM),设这些匹配距离的最大值为Greatest_PMD;
(7)构建集合Ta,Ta={i|PMDi(s,P)=Greatest_PMD},如果|T|=1,则选择匹配结果Ri;否则,若|Ta|>1,则选择满足下面条件的匹配结果:对于第一个常量项K0,若在小句C中存在m个不同位置的匹配L1,L2,…,Lm,则选择位置最大的匹配。
(8)若小句C被具有包含语义和部分相似关系的多个语义模型匹配,提交候选概念产生模块处理。
#相异语义模型匹配的歧义消除方法:
(9)对于小句C,基于语义模型集合进行匹配,判断是否被具有相异关系的语义模型匹配,若小句C与相异语义模型SM1,SM2,…,SMk匹配,得到k个匹配结果R1,R2,…,Rk;
(10)分别构建语义模型SM1,SM2,…,SMk的常量项结构,根据常量项结构对SM1,SM2,…,SMk进行聚类;
(11)基于常量项最大匹配的原则,若CS(SM1)=R,CS(SM2)=RR,CS(SM3)=WR,CS(SM4)=RW,CS(SM5)=WRR,CS(SM6)=WRW,则设置Priority(SM1)=Priority(SM2)〈Priority(SM3)=Priority(SM4)=Priority(SM5)〈Priority(SM6)。对属于同一类的语义模型,根据每个语义模型被匹配的概率,设置优先匹配顺序;
(12)设优先权最大的聚类为CS={SMi1,SMi2,…,SMik},若|CS|=1,则选择语义模型SMi1的匹配结果,否则,若|CS|>1,则选择CS中优先权最大的语义模型的匹配结果。
4.2.3.8 候选领域概念产生模块
在对语料进行分词词性标注以及完成语义聚合体、通用短语、单复句、主动词和语义角色的识别之后,本节分析如何利用这些信息来提取领域概念。本节的目标是提取语义层面和句法层面上的领域概念,分别称作零型概念和I型概念。
定义(零型概念词汇,0-type Concept):将基于句子语义层面信息识别的概念称为零型概念词汇,记作C0。句子语义层面信息包括句子的主动词和语义角色识别信息。
定义(I型概念词汇,I-type Concept):将基于句子句法层面信息识别的概念词汇称为I型概念词汇,记作C1。句子句法层面信息包括句子的分词词性标注、通用短语、语义聚合体和单复句识别信息。
定义(主动词左邻概念词汇和右邻概念词汇):设句子S通过领域概念词汇获取算法得到如下概念词汇序列:C0,0,C0,1,…,C0,i,MV0,C0,i+1,…,Ci,k,C1,0,C1,1,…,C1,i,MV1,C1,i+1,…,C1,k,...,Cn,1,Cn,2,…,Cn,i,MVn,Cn,i+1,…,Cn,k,其中MVj(j=0,1,…,n)为S的主动词,则将Cj,i-1称为主动词左邻概念词汇,C,ji+1称为主动词右邻概念词汇,分别记为LNC(Left Neighbor Concept)和RNC(Right Neighbor Concept)。
下面给出候选领域概念产生方法。领域概念词汇识别的基本思想是在对汉语句子进行分词词性标注、时间语义聚合体、数量聚合体、通用短语、单复句、主动词和语义角色识别结果的基础上,识别句法层面的I型领域概念词汇和语义层面的零型领域概念词汇。
算法:候选领域概念产生方法
输入:语料经过分词词性标注、时间语义聚合体识别、数量聚合体识别、通用短语识别、单复句识别、主动词识别和语义角色识别;
输出:候选领域概念集合;
(1)判断小句C是否含有主动词。若不含有主动词,则输出零型候选概念C;否则,根据其语义角色提取零型候选概念;
(2)由单复句驱动构建或识别领域候选概念。也就是,对于零型候选概念CA0,判断CA0是否包含关联词前件或后件。如果CA0=S0+W0+S1+W1+…+Wn+Sn,其中W0,W1,…,Wn为关联词前件或后件,则构建I型候选概念词汇S0,S1,…,Sn,其中,S0,S1,…,Sn为非空的字符串,“+”表示链接操作;
(3)由主动词驱动识别领域候选概念词汇。也就是,对于主动词右邻概念词汇RNC,去掉RNC的开头的动词后缀;设MS为由学习主动词的前面修饰成分构成的词汇集,对于主动词左邻概念词汇LNC,则去掉LNC结尾的MS中的词汇;
(4)由时间聚合体和数量聚合体驱动识别领域候选概念。也就是,对于构建的I型候选概念CA1,判断是否包含时间或数量聚合体字符串;如果CA1包含时间或数量聚合体字符串,则利用关于聚合体的构建方法提取候选概念;
(5)由词汇驱动来识别领域候选概念。也就是,对于构建的I型候选概念CA1,根据关于词汇的构建方法识别候选概念;
(6)输出每个候选概念词汇的识别结果。
语义聚合体识别方法通过谓词逻辑进行阐述,前件是满足的条件,后件是执行的操作。例如,下面为关于时间聚合体的候选概念词汇构建方法:
“CA_Is(〈fn名词方位词序列>,〈fn时间聚合体>,〈fn名词领域词序列>)
→Build_CA_Op(〈fn名词方位词序列>)∧Build_CA_Op(〈Sum_Fn(〈fn时间聚合体>,〈fn名词领域词序列>)>)∧Build_CA_Op(〈fn时间聚合体>)∧Build_CA_Op(〈fn名词领域词序列>)”
其含义是:如果候选概念CA为由名词或方位词序列S1、时间聚合体S2、名词或领域词序列S3构成,则构建候选概念:S1,S2+S3,S2,S3。其中,〈fn名词方位词序列>表示名词方位词集合,CA_Is(·)表示是否为候选概念谓词,Build_CA_Op(·)表示构建为候选概念词汇操作。
又如,下面为关于词汇的候选概念构建方法:
“CA_Is(〈fn名词领域词序列1>,〈fn方位词>,〈fn名词领域词序列2>)
→Build_CA_Op(〈Sum_Fn(〈fn名词领域词序列1>,〈fn方位词>,〈fn名词领域词序列2>))”
其含义是:如果候选概念CA为由名词领域词S1、方位词S2和名词领域词S3构成,则构建候选概念:S1+S2+S3。
4.2.3.9 领域概念验证模块
由于提取的候选领域概念词汇不一定均正确,因此需要进一步验证它的正确性。一方面,根据知识验证规则,验证候选概念词汇的语法错误;另一方面,根据领域概念词汇过滤规则,分解概念词汇。
候选领域概念词汇验证方法的基本思想是:根据候选领域概念词汇的句法特征进行验证。例如,候选概念词汇中的字符不与其相邻的上下文字符构成词语。
验证领域候选概念的算法如下:
算法:验证领域候选概念
输入:候选领域概念;
输出:验证后的领域概念;
(1)构建出现频率高,构词概率低的汉字集合T;
(2)如果候选概念词汇CA=S0+W0+S1+W1+…+Sk+Wk,并且Wi∈T,Wi(i=0,1,…,k)不与其相邻字符构成词语,则构建概念词汇S0,S1,…,Sk;
(3)根据概念词汇过滤规则,分解概念词汇;
例如,“过滤方法:
CA_Is(〈#S1>,〈!和>,〈#S2>)∧No_Greater_Voca(〈!和>)
→Build_CA_Op(〈#S1>)∧Build_Ew_Op(〈!和>)∧Build_CA_Op(〈#S2>)”,其含义是:如果候选概念CA为由字符串S1、“和”、字符串S2构成,“和”不与其左邻或右邻字符构成词语,则构建候选概念词汇S1和S2,对“和”不构建候选概念词汇。
(4)基于概念验证规则,检查候选概念词汇的语法错误。
例如,验证方法:CA_Is(〈#S1>,〈!。>)→Build_CA_Op(〈#S1>)∧Build_Ew_Op(〈!。>)”,其含义是:如果候选概念CA由字符串S1和“。”构成,则构建候选概念词汇S1。也就是,去除概念中的标点符号。
4.2.3.10 概念学习模块
对于已构建的领域概念词汇,可以根据概念的构词规律和语义组合关系来学习新的概念词汇。为此,首先描述词法概念学习和语义概念学习。
定义(词法概念词汇学习,Morphological Concept Lexicon Learning):通过分析和归纳概念词汇的构词规律而进行的概念词汇学习称为词法概念词汇学习。
定义(语义概念词汇学习,Semantic Concept Lexicon Learning):通过分析和归纳概念词汇的语义组合关系而进行的概念词汇学习称为语义概念词汇学习。
词法驱动的领域概念词汇学习方法的基本思想是,首先,根据概念词汇集抽取前缀型词缀和后缀型词缀;然后,根据前缀、后缀以及字符串的构成方式学习概念词汇,如图4.7所示。
下面给出学习新概念的算法步骤。
算法:学习新领域概念词汇
输入:已知概念词汇集;
输出:学习的新概念词汇;
#词法驱动的领域概念词汇学习:
(1)输入考古领域概念词汇集{C1,C2,…,Cn},对它们进行相似性度量;
(2)构建概念词汇前缀集合PreS和概念词汇后缀集合PostS,
PreS={Pe1,Pe2,…,Pen},其中,Pei满足:|{j|Prefix(Pei,Cj)}|>α,α为阈值,也就是,以Pei为前缀的领域概念词汇的个数大于α;
PostS={Po1,Po2,…,Pon},其中,Poi满足:|{j|Postfix(Poi,Cj)}|>α,α为阈值,Prefix(Pei,Cj)表示概念词汇Cj以Pei为前缀,Postfix(Poi,Cj)表示Cj以Poi为后缀。
(3)标注文本句子s中PreS∪PostS中的元素;
(4)设文本句子s含有有序词缀:P1,P2,…,Pk,对Pi(i=1,2,…,k-1),按照如下方法构建候选概念词汇,设词缀Pi和词缀Pi+1之间的字符串为MS;
若词缀Pi和Pi+1均为前缀,则构建候选概念词汇Pi+MS(前缀概念),如图4.7(a)所示;
若词缀Pi为前缀,Pi+1为后缀,则构建候选概念词汇Pi+MS+Pi+1(混合缀概念),如图4.7(b)所示;
若词缀Pi为后缀,词缀Pi+1为前缀,则转向Pi-1与Pi的候选概念词汇构建方法,Pi和Pi+1的候选概念词汇构建方法,如图4.7(c)所示;
若词缀Pi为后缀,词缀Pi+1为后缀,则构建候选概念词汇MS+Pi+1(后缀概念),如图4.7(d)所示。
图4.7 基于构词法的领域概念构建方法
通过语义概念学习的概念词汇称为派生概念词汇,派生概念词汇分为组合概念词汇和类推概念词汇。引入派生概念词汇的基本思想是,根据现有概念词汇通过函数产生新的概念词汇。
定义(派生概念词汇,Derived Concept):对于概念词汇C1,C2,…,Cn(n≥1),如果存在函数f使得概念词汇C=f(C1,C2,…,Cn),则称概念词汇C为C1,C2,…,Cn的派生概念词汇。
引入组合和分解概念词汇的基本思想是,根据现有概念词汇通过字符串链接操作产生新的概念词汇。
定义(组合概念词汇、分解概念词汇,Combined Concept Lexicon,Decomposed Concept Lexicon):对于概念词汇C1,C2,…,Cn(n≥2),如果存在C=C1+C2+…+Cn,则称概念词汇C为C1,C2,…,Cn的组合概念词汇(Combined Concepts Lexicon),概念词汇C1,C2,…,Cn称为C的分解概念词汇,其中,“+”表示字符串的链接操作。例如:如果概念词汇C1为“都城”,概念词汇C2为“遗址”,那么概念词汇C为C1+C2,即都城遗址,C为C1和C2的组合概念,C1和C2为C的分解概念。
引入类推概念词汇的基本思想是,根据现有概念词汇,将构词要素替换为同类型的词汇,从而产生新的概念词汇。
定义(类推概念词汇,Analogized Concept Lexicon):对于概念词汇C1,如果存在类型替换函数f,使得概念词汇C2=f(C1),则称C2为C1的类推概念,其中f定义如下:
设C1=A11A12…A1p…A1 k,其中,A1i为字符串,i=1,2,…,k。若A1p为语义类集合元素,存在A1p′为该语义类集合元素,则f(C1)=f(A11 A12…A1p…A1 k)=A11A12…A1p′…A1 k,可得类推概念词汇A11A12…A1p′…A1 k。
例如,对于概念词汇C1=晚更新世早期,早期∈时期语义类={早期,中期,晚期,…},存在类型替换函数f,使得C2=f(C1)=晚更新世中期,或C2=f(C1)=晚更新世晚期,那么C2称为C1的类推概念。
语义组合驱动的领域概念学习算法步骤如下。
算法:语义组合驱动的领域概念学习
输入:输入概念词汇集Γ;
输出:学习的领域概念;
(1)如果概念词汇C1,C2,…,Cn均为概念词汇C的子概念词汇,存在k个概念词汇C1,C2,…,Ck经过连接函数f作用产生新的组合概念C′1,C′2,…,Ck′,那么可以产生新的猜想组合概念词汇:Cj′=f(Cj)(j=k+1,…,n);
(2)如果概念词汇C1,C2,…,Cn均为某一语义类中的元素。若存在k个概念词汇C1,C2,…,Ck经类型替换函数产生新的类推概念C′1,C′2,…,Ck′,那么可以产生新的猜想类推概念词汇:Cj′=f(Cj)(j=k+1,…,n);
(3)由类与类的槽的值域通过连接函数产生新的猜想类。也就是,对于类C,若V={V1,V2,…,Vn}为C的属性A的值域,并且∃i,Vi+C为类,则构建猜想类:V1+C,V2+C,…,Vi-1+C,Vi+1C,Vn+C;
(4)由不同子类之间复合产生新的猜想类。也就是,对于类C,若C可以分为SC11,SC12,…,SC1m,也可以分为SC21,SC22,…,SC2n,并且存在i,j,SC1i+SC2j为类,则构建猜想类:SC1p+SC2q,p=1,2,…,m,q=1,2,…,n。
例如,对于类“器物”,其制作材料包括陶土、瓷土、木头、石头、玉石、金银、铜、铁、竹子、大漆,存在陶器、瓷器,则构建猜想类:木器、石器、玉器、金银器、铜器、铁器、竹器、漆器。
再如,已知“都城”和“洞穴”均为“遗址”的子概念词汇,“都城遗址”和“洞穴遗址”均是概念词汇,可以猜想组合概念词汇“贝丘遗址”可能也是一个概念词汇,如图4.8所示。
图4.8 猜想组合概念的产生机制示例
下面给出由类与类的槽的值域通过连接函数产生新的猜想类的例子。例如,磨制石器的器形有:单刃、复刃、直刃、端刃、凸刃、凹刃、半圆形、龟背状、短身圆头、单面刃、双面刃等。根据类生成机制,可以产生新的猜想类:单刃磨制石器、复刃磨制石器、直刃磨制石器、端刃磨制石器、凸刃磨制石器、凹刃磨制石器、半圆形磨制石器、龟背状磨制石器、短身圆头磨制石器、单面刃磨制石器、双面刃磨制石器。
下面给出产生类推概念词汇的例子。例如:由概念“旧石器文化”、“新石器文化”、“青铜时代文化”可以产生新的猜想类推概念:“铁器时代文化”。再如,石器的制作方法有:“打制、磨制和琢制”。可以产生新的猜想类推概念:“打制石器、磨制石器、琢制石器”。
下面给出由不同子类之间复合产生新的猜想类的例子。例如,打制石器可以分为石片工具和石核工具,或者可以分为砍斫器、刮削器、尖状器、雕刻器、斧形器、镞形器、刀形器、石球状器、锛状器。根据类生成机制,可以产生新的类:石片砍斫器、石片刮削器、石片尖状器、石片雕刻器、石片斧形器、石片镞形器、石片刀形器、石片石球状器、石片锛状器、石核砍斫器、石核刮削器、石核尖状器、石核雕刻器、石核斧形器、石核镞形器、石核刀形器、石核石球状器、石核锛状器。
4.2.3.11 领域概念获取算法
下面给出领域概念词汇获取的整体算法。领域概念词汇获取算法的符号包括:
一个汉语句子s,句子s中的一个字符串W;
通用词典GD(General Dictionary)和领域词典DD(Domain Dictionary);
时间聚合体标注语言Lti-co;
数量聚合体标注语言Lqu-co;
通用短语标注语言Lge-ph;
单复句标注语言Lsi-co;
语义角色标注语言Lse-ro;
名词标记no、动词标记ve、形容词标记aj、副词标记ad、代词标记pr、介词标记pe、约数词标记ap、助词标记au、区别词标记di、叹词in、处所词标记lo、语气词标记mo、数词标记nu、量词标记qu、时间词标记ti、拟声词标记on、方位词标记or、连词标记co;
谓词ClauPr(W,S)表示字符串W为句子S的小句;
谓词MaVePr(W,S)表示字符串W为句子S的主动词;
谓词C0(W)表示字符串W为零型概念;
谓词C1(W)表示字符串W为I型概念。
领域概念获取算法的函数包括:
词性标注函数PosFn(W);
D={〈W,Pos(W)>},词性函数Pos(W)为词语W的词性,Pos(W)的值为词语W所有的可能词性的集合。
词性标注函数将句子中的词语映射为词语的词性。
时间聚合体标注函数TiCoFn(W);
其中,TiCo表示时间聚合体。
时间聚合体标注函数通过语义聚合体识别模块,将句子中表示时间的字符串映射为或标记为TiCo。
数量聚合体标注函数QuCoFn(W);
QuCo表示数量聚合体。
数量聚合体标注函数通过语义聚合体识别模块,将句子中表示数量的字符串映射为或标记为QuCo。
不完全时间聚合体标注函数IncoTiCoFn(W);
TVCS为由时间聚合体可执行标注语言ETLti-co构建的词汇和符号集合,U0,…,Up,…,Um,V0,…,Vq,…,Vn为词语。
不完全时间聚合体标注函数通过语义聚合体识别模块,将句子中表示时间的字符串映射为或标记为TiCo。
未登录时间聚合体标注函数UnkTiCoFn(W);
若W′=U0+…+Up+…+Um+S+V0+…+Vn,其中,U0,…,Up,…,Um,V0,…,Vq,…,Vn为词语,S为数字串。
情形1:字符串W=Um+S+UQ,Um为前置约数词,Length(UQ)〈α,Length(UQ)表示UQ的长度,α为阈值;
情形2:字符串W=Um+S+V0+…+VP-1+Vp,Um为前置约数词,Vp为S右边的第一个后置约数词,Length(V0+…+VP-1)〈α;
情形3:字符串W=Um+S+V0+…+Vq,Um为前置约数词,V0为中置约数词,Length(V1+…+Vq)〈α;
情形4:字符串W=Um+S+V0+…+Vr,Um为前置约数词,V0为中置约数词,Vr为S右边的第一个后置约数词,Length(V1+…+Vr-1)〈α;
情形5:字符串W=S+UQ,Um不是前置约数词,Length(UQ)〈α;
情形6:字符串W=S+V0+…+VP-1+Vp,Um不是前置约数词,Vp为S右边的第一个后置约数词,Length(V0+…+VP-1)〈α;
情形7:字符串W=S+V0+…+Vq,Um不是前置约数词,V0为中置约数词,Length(V1+…+Vq)〈α;
情形8:字符串W=S+V0+…+Vr,Um不是前置约数词,V0为中置约数词,Vr为S右边的第一个后置约数词,Length(V1+…+Vr-1)〈α。
未登录时间聚合体和不完全时间聚合体标注函数通过语义聚合体识别模块,将句子中表示时间的字符串映射为或标记为TiCo。
通用短语标注函数GePhFn(W);
存在通用短语Ph,S匹配Ph,若字符串W匹配Ph中的常量项,则GePh-Fn(W)=GePhCo;若字符串W匹配Ph中的变量项,则GePhFn(W)=GePhVa;其他情形,GePhFn(W)=∅。
通过通用短语识别模块,通用短语标注函数将句子中包含在匹配通用短语中的常量项映射为或标记为GePhCo,将变量项映射为或标记为GePhVa。
关联词语标注函数AsWoFn(W);
AsWo表示关联词语。
关联词语标注函数将句子中的关联词语映射为或标记为AsWo。
主动词标注函数MaVeFn(W);
其中,MaVe表示主动词。
主动词标注函数通过主动词识别模块,将句子中主动词识别为或映射为MaVe。
语义角色标注函数SeRoFn(W);
Agent表示主体,Patient表示客体,Dative表示与体,Locative表示位体。
语义角色标注函数通过语义角色识别模块,将句子中语义角色识别为或映射为Agent、Patient、Dative或Locative。
下面将分析各标注函数之间的关系:
TiCoFn(W)≠∅→∃W′(ti∈Pos(W′))∧(W′⊆W):若词语W通过时间聚合体函数映射不是空集,则存在词语W′,且词语W包含词语W′,时间标记ti的词语的词性为词性集合中元素。
QuCoFn(W)≠∅→∃W′(nu∈Pos(W′))∧(W′⊆W):若词语W通过数量聚合体函数映射不是空集,则存在词语W′,且词语W包含词语W′,数词标记ti的词语的词性为词性集合中元素。
QuCoFn(W)≠∅→∃W′(qu∈Pos(W′))∧(W′⊆W):若词语W通过数量聚合体函数映射不是空集,则存在词语W′,且词语W包含词语W′,量词标记ti的词语的词性为词性集合中元素。
TiCoFn(W)≠∅→QuCoFn(W)=∅:若词语W通过时间聚合体函数映射不是空集,则词语W通过数量聚合体标注函数映射为空集。
TiCoFn(W)≠∅→GePhFn(W)=∅:若词语W通过时间聚合体函数映射不是空集,则词语W通过通用短语标注函数映射为空集。
TiCoFn(W)≠∅→AsWoFn(W)=∅:若词语W通过时间聚合体函数映射不是空集,则词语W通过关联词语标注函数映射为空集。
TiCoFn(W)≠∅→MaVeFn(W)=∅:若词语W通过时间聚合体函数映射不是空集,则词语W通过主动词标注函数映射为空集。
QuCoFn(W)≠∅→TiCoFn(W)=∅:若词语W通过数量聚合体标注函数映射不是空集,则词语W通过时间聚合体标注函数映射为空集。
QuCoFn(W)≠∅→GePhFn(W)=∅:若词语W通过数量聚合体标注函数映射不是空集,则词语W通过通用短语标注函数映射为空集。
QuCoFn(W)≠∅→AsWoFn(W)=∅:若词语W通过数量聚合体标注函数映射不是空集,则词语W通过关联词语标注函数映射为空集。
QuCoFn(W)≠∅→MaVeFn(W)=∅:若词语W通过数量聚合体标注函数映射不是空集,则词语W通过主动词标注函数映射为空集。
MaVeFn(W)≠∅→Ve∈PosFn(W):若词语W通过主动词标注函数映射不是空集,则动词标记Ve的词语词性为词性集合中元素。
MaVeFn(W)≠∅→SeRoFn(W)=∅:若词语W通过主动词标注函数映射不是空集,则词语W通过语义角色标注函数映射为空集。
下面给出混合式的领域概念获取的算法。
算法:混合式的领域概念词汇获取
输入:领域语料;
输出:领域概念词汇;
(1)执行文本清理动作Replace(〈,>,〈,>),Replace(〈;>,〈;>);
(2)采用最大前向匹配法对句子进行分词和词性标注,执行PosFn(W);
(3)构建ETLti-co和ETLqu-co,执行TiCoFn(W)和QuCoFn(W);
(4)识别不完全时间聚合体,执行IncoTiCoFn(W);
(5)识别未登录数量聚合体,执行UnkTiCoFn(W);
(6)通用短语识别,执行GePhFn(W),消除通用短语匹配歧义;
(7)主动词识别,执行MaVeFn(W);
(8)识别句子的语义角色,执行SeRoFn(W),消除语义模型识别歧义;
(9)基于语义角色识别结果,输出零型领域概念词汇;零型概念提取的条件:
(∀W⊆S)﹁MaVePr(W,S)→∀W(ClauPr(W,S)→C0(W))
(∃W⊆S)SeRoFn(W)≠∅→C0(W)
(∃W⊆S)MaVeFn(W)≠∅→C0(W)
(∃W′⊂W)(ClauPr(W′,S)∧C0(W))→C0(W′)
(10)对主动词左邻概念词汇和右邻概念词汇进行消歧;
(11)基于单复句、时间聚合体、数量聚合体、词汇的概念词汇构建规则提取I型概念词汇;
零型概念驱动的I型概念词汇识别;∀W(C0(W)→C1(W))
关联词驱动的I型概念词汇识别;
对于W,若S0,S1,…,Sn为非空的字符串,
C0(W)∧(W=S0+W0+S1+W2+…+Wn+Sn)∧(AsWoFn(W1)≠∅)∧…∧(AsWoFn(Wn)≠∅)→C1(S0)∧C1(S1)∧……∧C1(Sn)
时间数量聚合体驱动的I型概念词汇识别规则
词汇驱动的I型概念词汇识别方法规则
(12)验证概念词汇,主要采用基于规则的方法进行构建和验证I型概念词汇的。例如,
(S=W0+W1+W2+…+Wi+…+Wj+…+Wk+…+Wm+…+Wn)∧
∧(no∉PosFn(Wi-1)∧or∉PosFn(Wi-1))∧(no∈PosFn(Wi)
∨or∈PosFn(Wi))∧…
∧(no∈PosFn(Wj-1)∨or∈PosFn(Wj-1))∧(TiCoFn(Wj)≠∅)∧
∧(no∈PosFn(Wi+1)∨or∈PosFn(Wi+1))∧…∧(no∈PosFn(Wk)
∨or∈PosFn(Wk))∧(no∉PosFn(Wk+1)∨or∉PosFn(Wk+1))
→C1(WiWi+1…Wj-1)∧C1(WjWj+1…Wk)∧C1(Wj)∧C1(Wj+1…Wk)
下面给出实验结果及分析。本节以《中国大百科全书考古卷》中的古文化类文本和遗址类文本为例,进行领域概念获取。古文化类文本183篇,遗址类文本212篇,提取约166500个考古领域概念。领域概念获取的平均准确率为79.38%,错误率为20.62%。
例如,对于句子“发现人类化石和文化遗物的第4、5、6层,伴出有三门马、中国缟鬣狗、肿骨大角鹿等华北中更新世典型动物,地质时代为中更新世晚期,铀系法断代及古地磁断代为距今40万至14万年(选自庙后山遗址)。”,分词系统的切分与标注结果为:
“发现/v人类/n化石/n和/c文化/n遗物/n的/u第4/m、/w 5/m、/w 6/m层/q,/w伴/v出/v有/m三门/ns马/n、/w中国/ns缟/Ng鬣狗/n、/w肿/v骨/Ng大/a角/n鹿/n等/v华北/ns中/f更新/v世/Ng典型/a动物/n,/w地质/n时代/n为/p中/f更新/v世/Ng晚期/f,/w铀/n系法/n断代/v及/c古/a地磁/n断代/v为/u距/v今/Rg40/m万/d至/v 14/m万年/m。/w”。
对于上述概念系统所获取的领域词汇结果,如下所示。其中,t表示概念词汇识别的类型,若t=0表示概念词汇是通过语义角色识别的概念词汇,t=1表示概念词汇是通过语义角色和句法识别的概念词汇。g表示概念词汇的类型,若g=r表示关系概念词汇,g=c表示概念词汇,g=e表示虚词,g=w表示关键词。