一种基于定义与关系的术语抽取方法与流程

文档序号:13446227阅读:202来源:国知局
本发明属于文本挖掘领域,尤其涉及一种基于定义与关系的术语抽取方法。
背景技术
::术语作为在特定领域内表达专业概念的约定性符号,在中文分词、句法分析等自然语言领域都发挥着重要的作用。在构建领域知识库的过程中,术语作为领域内知识的主要体现,在知识实例的扩充工作中有着重要的地位。从非结构化文本中手工进行术语标注耗费大量人力与时间,且会存在因标注遗漏而导致召回率降低的情况。因此自动的术语抽取工作受到了越来越多研究者的重视。现有技术中的术语抽取方法主要包含两个步骤。第一步是通过对字符串的单元性计算来获取候补术语;第二步则通过术语性这一衡量指标来抽取出真正的术语。其中单元性是用来刻画特定字符串组合的稳定性,术语性是用来描述一个语言单位在该领域内的相关程度。这些方法大都是基于统计的方法。但为基础教育知识库构建进行术语抽取时,术语的统计特征和专业领域中的术语有较大的不同。以数学学科为例,术语“三角形”在初高中课本中共出现1779次,而术语“切点圆”则仅仅出现3次。数学教材中仅有少部分重要术语被反复使用,这种长尾特性会造成低频词的遗漏。此外,一些基础性术语如“面”、“线”也被广泛地使用在其他领域,这种现象会导致通用性高的术语会因为逆向文件频率而被认为是领域无关的词语。因此,现有技术中的术语抽取方法对于低频术语的辨识能力较低,容易造成遗漏,对通用性较高的术语以及长字数术语抽取能力较差。专业词汇解释定义:对一个概念的内涵和外延的确切而简要的说明。比如,什么是“外切圆”。构词规则:即词语是如何构成的,比如“直角三角形”是由名词“直角”和“三角形”构成的。模板:是指概括某类情况的抽象表达。比如,“<下位部分>是<上位部分>”模板就包含了所有“a是b”的情况,其中“a”是“下位部分”,“b”是“上位部分”。边界词表:出现在边界位置的常见的副词(如“时”、“都”、“于”、“各”等等)以及常用的代词和量词搭配(如“这个”、“一组”、“一对”、“一条”等等)组成的词表。边界检测:通过边界词表筛选术语候选中的术语。比如“一条直线”在术语候选中,但是我们的边界词表中有“一条”,则说明“一条直线”不是术语,需要从术语候选中删除。术语候选:是术语的可能性较大但还需进一步确认的词语或句子片段的集合。比如,上面提到的“一条直线”。右型候选(rc):术语更容易出现在右侧部分的术语候选,比如术语候选“一条直线”就是rc,术语是“直线”,出现在“一条直线”的右侧。左型候选(lc):术语更容易出现在左侧部分的术语候选,比如“直线上”是lc,术语是“直线”,出现在“直线上”的左侧。技术实现要素:针对上述问题,本发明提出了一种基于定义与关系的术语抽取方法,所述方法包括以下步骤:步骤(1):对html格式的文本进行预处理与初始化;步骤(2):依据步骤(1)处理后得到的文本,进行基于定义的术语候补抽取,生成一个术语候补集;步骤(3):利用步骤(1)处理后得到的文本与步骤(2)生成的所述术语候补集,进行基于上下位关系的术语候补抽取,生成新的术语候补集;步骤(4):利用步骤(1)处理后得到的文本与步骤(3)生成的所述术语候补集,进行基于整体部分关系的术语候补抽取,生成新的术语候补集;步骤(5):利用步骤(1)处理后得到的文本与步骤(4)生成的所述术语候补集,进行基于并列关系的术语候补抽取,生成新的术语候补集;步骤(6):对步骤(5)生成的所述术语候补集中的每一个术语候补进行基于构词规则的检查,生成一个通过构词规则检查的术语候补集;步骤(7):利用步骤(5)生成的所述术语候补集和步骤(6)生成的所述通过构词规则检查的术语候补集对术语候补进行边界检测,生成新的术语集;步骤(8):统计步骤(7)生成的所述术语集的元素个数为n,将n与步骤(7)执行前的术语集的元素个数进行比较,若二者相等则程序结束,返回当前的术语集;否则,执行步骤(9);步骤(9):计算机修正分词结果,返回至步骤(3)。进一步地,步骤(1)包括如下子步骤:步骤(1.1):识别文本中的img和table标签,过滤掉图片和表格;步骤(1.2):过滤掉文本中的html标签,提取标签中的文本内容;步骤(1.3):从清理后的文本中找出符号与公式,并进行过滤;步骤(1.4):根据句号、逗号、分号与问号对文本进行重新分段;步骤(1.5):利用ansj分词工具对文本进行中文分词,并计算每个词的词频。进一步地,步骤(2)包括如下子步骤:步骤(2.1):人工根据文本特点总结出定义模板,定义模板为正则表达式形式,包含被定义部分和定义部分两个匹配内容;步骤(2.2):通过步骤(2.1)制定的模板从文本中抽取出被定义部分和定义部分,被定义部分被标记为右型候补,设置为低置信度,定义部分被标记为左型候补,设置为高置信度;步骤(2.3):将新发现的术语候补添加到当前的术语候补集中。进一步地,步骤(3)包括如下子步骤:步骤(3.1):人工根据文本特点总结出上下位模板:“<下位部分>是<上位部分>”;步骤(3.2):通过步骤(3.1)制定的模板从文本中抽取出下位部分和上位部分,若上位部分是已发现的术语,则将下位部分设置为右型候补,设置为低置信度,若下位部分是已发现的术语,则将上位部分设置为左型候补,设置为高置信度;步骤(3.3):将步骤(3.2)中发现的术语候补添加到当前的术语候补集中。进一步地,步骤(4)包括如下子步骤:步骤(4.1):人工根据文本特点总结出整体部分模板:“<左部分>的<右部分>”;步骤(4.2):通过步骤(4.1)制定的模板从文本中抽取出左部分和右部分,设左部分为s1,右部分为s2,s1的分词结果为w1_1……w1_m,s2的分词结果为w2_1……w2_n,首先检验w1_m与w2_n中是否恰有一个是已经发现的术语,若w1_m是术语,则取s2作为术语候补,若w2_n是术语,则取s1作为术语候补;步骤(4.3):对步骤(4.2)中发现的术语候补tc,检查分词后所有与tc有整体部分关系的词中术语所占的比例,若比例大于等于给定阈值则将tc设置为低置信度rc加入到当前术语候补集中;步骤(4.4):寻找出当前术语候补集中满足通过步骤(4.1)制定的模板的术语候补tc,并从中抽取“左部分”s1和“右部分”s2,若tc是高置信度术语候补,则设置s1为高置信度rc,设置s2为高置信度lc,当tc是低置信度术语候补时,若tc为lc则仅取s1,将其设置为低置信度rc,否则仅取s2,将其设置为低置信度lc,此后将tc从当前术语候补集中删除;步骤(4.5):将步骤(4.4)中产生的新术语候补添加到当前术语候补集中。进一步地,步骤(5)包括如下子步骤:步骤(5.1):人工根据文本特点总结出并列关系模板:“<并列部分>(<并列部分>、)*[和|或|与]<并列部分>等?”;步骤(5.2):通过步骤(5.1)制定的模板从利用步骤(1)处理后得到的文本中抽取出“并列关系”;步骤(5.3):设步骤(5.2)抽取出的并列内容为s1……sn,sn的分词结果w1……wm,设ti=wi……wm(1<=i<=m),计算机统计s1ti、……、sn-1ti,这n-1个字符串的出现次数之和ti,设ta(此时对应的ti为ta)为ti中最大的值,若ta大于给定阈值则将s1ta、……、sn-1ta、sn这n个词语设置为高置信度rc;步骤(5.4):计算机将步骤(5.3)中产生的术语候补添加到当前术语候补集中。进一步地,步骤(6)包括如下子步骤:步骤(6.1):人工对于一般术语的构成进行分析,总结出根据置信度高低不同的术语构词规则;步骤(6.2):根据步骤(6.1)得到的构词规则对当前术语候补集中的术语候补进行检测,将所有满足构词规则的术语候补添加到所述通过构词规则检查的术语候补集中;步骤(6.3):对所述通过构词规则检查的术语候补集中的每一个低置信度术语候补tc,检查已经发现的术语中是否存在一个术语t使得t为tc的后缀,若不存在这样的t,则将tc从所述通过构词规则检查的术语候补集中剔除;步骤(6.4):计算机对所述通过构词规则检查的术语候补集中的每一个低置信度术语候补tc,计算tc在文本当中的出现次数,若小于给定阈值则将tc从所述通过构词规则检查的术语候补集中剔除。进一步地,步骤(7)包括如下子步骤:步骤(7.1):人工构建边界词表,选取常见的副词以及常用的代词和量词搭配;步骤(7.2):根据步骤(7.1)得到的边界词表以及当前术语候补集和所述通过构词规则检查的术语候补集,进行术语边界检测。进一步地,步骤(9)包括如下子步骤:步骤(9.1):设t为术语集中的一个术语字符串,当前分词系统将其分为n个词:w1、……、wn,其对应的词性为p1、……、pn,将t作为新词添加到分词系统中,使其分词结果为一个词,若pn为名词类n、形容词类a或动词类v,则t的词性与pn相同,否则设置t的词性为名词类n;步骤(9.2):更新当前全部的分词结果,重新计算所有词的词频,跳转到步骤(3)。由上可知,本文提出了以挖掘术语定义与术语关系为主,综合构词规则和边界检测的术语抽取方法,该方法首先对文本进行定义抽取,从定义中生成初始的优质术语候补,之后会根据术语关系不断对术语候补进行扩充。本发明的技术方案有利于提高对低频术语的辨识能力和对于通用性较高术语、长字数术语的抽取能力。附图说明图1是本发明提出的术语抽取方法的整体流程图具体实施方式下面结合附图,对实施例作详细说明。图1为本发明提出的术语抽取方法的整体流程图,具体包括以下步骤:步骤(1),文本预处理、分词与词频统计以网页html格式呈现的资源是来源最广泛、获取方式最简便的资源,本发明选择html文本作为本方法的数据输入。html格式的资源并非纯文本形式,故需要进行文本预处理的数据清洗工作。网页中的图片在文本中仅为链接没有语义信息,同时表格由于格式多变而处理难度高,故本发明通过正则表达式将<img>标签与<table>标签中的内容全部从正文中过滤。另一方面,文本中常常夹杂着数学符号与公式,这些内容对于术语抽取没有帮助,且会对分词效果产生影响,故本发明用正则表达式过滤掉书中的数学符号与数学公式。之后本发明去除所有的网页标签,并根据句号、逗号、分号与问号对文本进行重新分段。本发明利用ansj分词工具对文本进行中文分词,并计算每个词的词频。步骤(2),基于定义的术语候补抽取首先通过人工方式对一般含有定义的文本进行分析,从中得出一般的定义抽取模板如表1所示。通过模板匹配抽取出的定义会被分解为两个部分:被定义部分与定义部分。被定义部分揭示了该定义是在描述谁的定义,而定义部分则表明了用来进行下定义的内容。本发明利用定义来获取术语候补基于如下两个假设:(1)课本中的定义都是用来讲授该学科知识的,故一定都是用来描述该学科中的术语的;(2)基础教育学科中的术语应当呈现较强的自包含特性,即用来定义某一个术语的词语很可能本身也是术语。故对于一个定义,本发明能够将其定义部分和非定义部分各作为一个术语候补。表1.定义抽取模板<定义部分>(叫|称)(做|为)<被定义部分><定义部分>是指<被定义部分><被定义部分>的定义(是|为)<定义部分>称<定义部分>(做|为)<被定义部分>以垂线的定义为例展示基于定义的术语候补获取。垂线的定义:“互相垂直的两条直线中的一条直线叫做另一条直线的垂线”。根据模板匹配,本发明能确定被定义部分为“另一条直线的垂线”,定义部分为“互相垂直的两条直线中的一条直线”。根据上述的假设,这两个部分都能作为术语候补。从上面的例子中,可以看出定义部分和被定义部分的句子复杂程度是不同的。通常情况下,定义部分的句子更为复杂。针对上面的情况,尽管一条定义当中能够产生两个术语候补,设置定义部分产生的术语候补为低置信度,被定义部分产生的术语候补为高置信度。在术语筛选的环节中,会根据不同的置信度等级采取不同的筛选策略。此外,本发明认为在定义部分与被定义部分产生的术语候补中,术语都应当处于靠右侧的部分,故它们均会被标记为右型候补(rc)。左型候补(lc)与右型候补(rc)是用来指出术语更容易出现在术语候补的左侧部分还是右侧部分。在术语筛选阶段会根据术语候补方向的不同采取不同的策略分析。步骤(3),基于上下位关系的术语候补抽取上下位关系指两个词之间体现出的语义包含关系。例如“正方形是一种特殊的长方形”中,“正方形”是下位词,“长方形”是上位词。关系依靠模板:“<下位部分>是<上位部分>”来进行抽取。本发明抽取所有的含有上下位关系的句子,并且匹配到的下位部分或上位部分中恰有一个部分是已发现的术语。本发明将其中不是术语的部分作为术语候补。例如在上例中,若“正方形”已经在已发现术语集中出现,则可以根据上面的规则,将“一种特殊的长方形”作为术语候补。匹配到的下位部分会被标记为rc,上位部分会被标记为lc。由于能够反映上下位特征的句式并不一定都具有这种关系,例如“解三角形是一个重要的数学问题”中,匹配到的上位部分并不是一个真正的术语,故本发明将上下位关系产生的术语候补设置为低置信度。步骤(4),基于整体部分关系的术语候补抽取整体与部分关系通过“的”字短语(模板为:<左部分>的<右部分>)来进行抽取。整体与部分关系中既存在“三角形的边”这样仅涉及术语的关系,也存在如“函数的难点”这样的有非术语参与的关系。为了在保证术语抽取准确度的前提下,更好地利用整体与部分关系进行术语抽取,本发明根据抽取到关系的来源的不同,分别针对高置信度术语候补、低置信度术语候补与普通文本采取了不同的关系分析方法。从高置信度术语候补中发现的整体部分关系很有可能是在描述仅涉及术语的关系,故本发明认为是最为可靠的,所以直接将“的”字短语中“的”左右两侧的内容均设置为高置信度的术语候补。“的”字左侧的内容标记为rc,“的”字右侧的标记为lc。由于低置信度的术语候补通常句式会比较复杂,本发明需要选择“的”字短语中句式较为简单、更可能存在术语的一部分作为术语候补。这里本发明根据左右型候补来进行判断。若术语候补是lc,则本发明选择“的”字短语左侧部分作为术语候补并标记其为rc,否则选用右侧部分并设置其为lc。最后本发明设置这个新发现的术语候补为低置信度。对于从普通文本中抽取的内容,本发明设左部分为s1,右部分为s2。s1的分词结果为w1_1……w1_m,s2的分词结果为w2_1……w2_n。计算机首先检验w1_m与w2_n中是否恰有一个是已经发现的术语。若w1_m是术语,则取其s2作为术语候补tc,若w2_n是术语,则取取s1作为术语候补tc,之后得到分词结果中所有和tc有整体部分关系的词w,检查w中术语所占的比例。若比例大于等于给定阈值则将tc设置为低置信度rc加入到tcs中。实际设置该阈值为1,即要求w必须全部为已经发现的术语。步骤(5),基于并列关系的术语候补抽取本发明通过人工构建的模板:“<并列部分>(<并列部分>、)*[和|或|与]<并列部分>等?”来识别并列关系。该表达式表示并列该关系的模板。其中,()表示成组;*表示匹配前面的子表达式0次或0次以上;|表示或;[]表示一个字符;?表示匹配前面的子表达式零次或一次。故以上表达式包括所有的并列关系。比如,在“三角形和边”中,第一个“<并列部分>”是“三角形”,“(<并列部分>、)”出现了0次,“[和|或|与]”出现的是“和”,接着又一个“<并列部分>”是“边”。若并列部分中有一个为已发现的术语,则其他的并列部分皆很有可能为术语。本发明基于上面的假设将满足条件的并列部分作为术语候补。例如“棱锥与棱柱都是常见的几何体”中,若“棱柱”在已发现的术语集中,则本发明会将“棱锥”添加到术语候补中。由于并列关系中并列部分的句式结构通常较为简单,且一旦有一个并列部分为术语,其他并列部分为术语的可能性很高,故本发明设置抽取出的术语候补为高置信度术语候补,并标记为rc。为了解决如“锐角、直角和钝角三角形”中的词根省略问题,本发明采用了词根校验机制:设抽取出的并列内容为s1……sn,sn的分词结果w1……wm。设ti=wi……wm(1<=i<=m),计算机统计s1ti、……、sn-1ti,这n-1个字符串的出现次数之和ti。设ta(此时对应的ti为ta)为ti中最大的值。若ta大于给定阈值则计算机将s1ta、……、sn-1ta、sn这n个词语设置为高置信度rc。实际设定的阈值为(n-1)*3。步骤(6),基于构词规则的术语候补筛选本发明称一个术语分词后的组成词语个数为该术语的元数。例如“三角形”是一元术语,而“直角三角形”就因为分词结果为“直角”和“三角形”而是二元术语。术语的元数会随着分词结果的变化而变化。本发明参考ansj_seg提供的词性表根据人工对于术语构词的分析结果,制定了术语的构词规则表,如表2所示。表2.术语构词规则四元以上的术语会通过多次迭代而被发现。例如“单位正交基底”的初始分词结果是:“单位正交基底”,该术语是一个五元术语。但在第一次迭代结束之后,其分词结果为:“单位正交基底”,是一个三元术语,故在第二次迭代中该术语候补就会被确认为术语。本发明会对低置信度的术语候补进行命名规则的检查,即检查已发现的术语中是否存在术语是该候补的后缀。并剔除词频小于10的术语候补。步骤(7),基于边界词表检测的术语候补筛选学科的语言表达通常具有一定的固定表述方式,这会导致一些领域无关的词语因为经常与特定术语搭配而被误认为是术语的一部分。例如“一条直线”就因为“一条”经常与直线搭配而被误认为是术语。为了克服这个问题,本发明引入了边界检测。本发明选择手工建立边界词表。选取常见的副词(如“时”、“都”、“于”、“各”等等)以及常用的代词和量词搭配(如“这个”、“一组”、“一对”、“一条”等等)。边界检测步骤如下:我们检查每一个术语候选。若该候选是rc,则从其分词结果的右侧起寻找到第一个出现在边界词表的词语,将该词右侧的部分作为新的术语候选,并删除原先的术语候选。例如:rc候选“一条直线”中,我们从右侧起找到第一个边界词表中的词语是“一条”,则将其右侧的部分,也就是“直线”作为新的术语候选,并将原先的“一条直线”从术语候选集中删除。若候选是lc,则从左侧开始寻找,并挑选左侧部分作为新的术语候选。步骤(8),术语更新与分词结果更新检查步骤(7)中生成的术语集中的术语数量是否有变化,若无变化则返回该术语集,程序结束,否则需要对分词结果更新。设t为术语集中的一个术语字符串,当前分词系统将其分为n个词:w1、……、wn,其对应的词性为p1、……、pn。将t作为新词添加到分词系统中,使其分词结果为一个词。若pn为名词类n、形容词类a或动词类v,则t的词性与pn相同,否则设置t的词性为名词类n。更新全部分词结果后,跳转到步骤(3)。整个术语抽取方法的流程示意图可参考图1,利用上述步骤(1)—(8),创建了一种从html格式的文本中抽取出术语的方法。本发明所有实验用java编程实现,并在配置为intelpm1400mhz,768m内存的笔记本电脑上运行。此外,针对本发明的术语抽取方法,进行了如下实验验证过程:(1)建立数据集选择基础教育的数学学科为研究对象,选择了人民教育出版社的初中数学课本6本,高中数学必修与理科选修课本12本以及初高中教辅书2本,共计20本书的电子版。数字化的资源以epub格式(其中正文为xhtml格式,与html格式一致)组织。经过文本预处理后,共得到7万余个短句,共计46万余词。(2)实验衡量的准则首先请基础教育数学老师对全部的数据集进行一次术语标注。之后利用本系统进行术语抽取,并请专家对抽取出的术语进行审核,从中挑选出正确抽取的术语。将人工标注的术语与方法抽取出的正确结果进行合并,作为数据集中总的术语。以查准率precision、查全率recall和f1-measure来评价实验结果,具体定义如下:查准率precision:p=系统正确抽取的术语数目/系统抽取出的术语数目;查全率recall:r=系统正确抽取的术语数目/总术语的数目;f1-measure:f1=2pr/(p+r)(3)实验结果首先统计系统抽取出的术语的分布情况。表3展现了不同元术语的分布情况。可以看出二元及以上的术语尽管占总术语的44%,但其词频和却仅不到2%,可以看出本发明的系统能够有效地抽取出低频术语。表3.术语分布情况其后,本发明将实验结果与baseline方法进行比较。baseline方法是通过词语的左右互信息熵和词频来进行术语抽取。表4则是两种方法的评测结果。表4.与baseline的结果比较对比baseline,本发明的方法能有效地提高关键词抽取的查准率及查全率,f1值由41.9%增加至82.7%,大大提高了术语抽取的能力。另外,本发明也就方法的时间开销问题单独做过实验,实验证明本发明的方法与baseline方法的效率相当,策略的引入并没有导致过大的时间开销。上述实施例仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本
技术领域
:的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求的保护范围为准。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1