利用一套消歧技术处理文本的系统和方法转让专利

申请号 : CN200480031233.2

文献号 : CN1871597B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 马修·科来奇皮埃尔·贝尔齐勒杰里米·巴恩斯

申请人 : 伊迪利亚公司

摘要 :

本发明涉及一种使用消歧组件来识别文本明确含义的处理自然语言文本的系统和方法。该方法包括将一组件选择应用于文本以识别文本处的明确含义。每一组都为文本处的明确含义提供了一个置信度和概率。使用多个文本处的明确含义的选择来确定明确含义。本发明还涉及一种生成词义标注文本的方法。该方法包括以下步骤:利用消歧组件对大量文档进行消歧;为所述组件所提供的词语识别一含义而生成一个置信度和概率值;如果该词含义的置信度低于设定的阈值,那么忽略该含义;如果该词含义的置信度高于设定阈值,那么把该含义加入词义标注文本。

权利要求 :

1.用于对自然语言文本消歧的计算机执行方法,所述文本为电子格式,所述方法包括以下步骤:a)接收包含所述自然语言文本的输入;

b)对所述输入执行至少一个语言分析算法,从而生成处理文本,所述至少一个语言分析算法选自存储在计算机可读介质上的语言分析算法集;

c)对所述处理文本执行多个词义消歧(WSD)算法,所述WSD算法选自存储在计算机可读介质上的WSD算法集,其中所述词义消歧算法中每一个:-为所述处理文本中的每一个歧义词生成一组词义;

-生成与所述每一歧义词相关的概率分布,所述概率分布包括所述每一组词义中的每一个词义的概率;

-为每一概率分布生成一置信度;

d)执行合并算法,其中来自步骤(c)的结果被合并从而为所述每一歧义词生成合并词义组;

e)生成词义标注文本输出,所述输出包括已被消歧形式的自然语言文本,其中每一所述歧义词与一词义相关,该词义选自在所述步骤(d)所生成的相应的合并词义组。

2.根据权利要求1所述的方法,其特征在于:通过执行与所述每一WSD算法相关的置信函数而生成所述置信度。

3.根据权利要求1所述的方法,其特征在于:所述步骤(d)还包括合并由每一WSD算法为给定歧义词生成的概率分布和置信度,从而生成与每一合并词义组相关的合并概率分布和合并置信度。

4.根据权利要求3所述的方法,其特征在于:合并所述概率分布包括计算所述概率分布的加权和。

5.根据权利要求4所述的方法,其特征在于:所述权包括每一所述概率分布的相应的置信度。

6.根据权利要求3所述的方法,其特征在于:通过合并每一概率分布的置信度算得所述合并置信度。

7.根据权利要求1所述的方法,其特征在于:所述方法还包括在所述步骤(d)之前执行筛选步骤,其中将所述概率分布与预置概率值相比较,并且最大概率低于所述预置概率值的任何概率分布被舍弃并且不被合并到步骤(d)中。

8.根据权利要求1所述的方法,其特征在于:所述方法还包括在所述步骤(d)之前执行筛选步骤,其中将所述置信度与预置置信度值相比较,并且置信度低于所述预置置信度值的任何概率分布被舍弃并且不被合并到步骤(d)中。

9.根据权利要求1所述的方法,其还包括在所述步骤(d)之后执行歧义消除步骤,从而确定在每一合并词义组中的一个或多个极大可能性的词义,所述歧义消除步骤包括:选择概率值大于阈值概率值并且置信度大于阈值置信度的那些词义,并消除所述合并词义组中的所有其它词义。

10.根据权利要求1所述的方法,其还包括在所述步骤(d)之后执行歧义消除步骤,从而确定在每一合并词义组中的一个或多个极小可能性的词义,所述歧义消除步骤包括:选择概率值小于阈值概率值并且置信度小于阈值置信度的那些词义,并从所述合并词义组中消除所选择的词义。

11.根据权利要求1所述的方法,其特征在于:从所述语言分析算法和WSD算法集中选择所述语言分析算法或WSD算法由存储在数据库所包含的控制文件中的一个或多个控制参数控制。

12.根据上述权利要求1到11中任一项所述的方法,其特征在于:所述步骤(c)到(d)被迭代执行。

13.根据权利要求12所述的方法,其特征在于:对于每一次迭代,执行不同的WSD算法组。

14.根据权利要求13所述的方法,其特征在于:对于每一次迭代,重执行前一迭代的一个或多个WSD算法。

15.用于对电子格式的自然语言文本消歧的系统,其包括:

文本处理引擎,包括:

-与输入装置连接的至少一个处理器,用于接收包含所述自然语言文本的输入文本;

-与所述至少一个处理器连接的解算机可读存储介质,并且具有嵌入其中的指令用于控制所述至少一个处理器;

-词义消歧(WSD)模块,与所述文本处理引擎连接,用于处理所述输入文本中的词,所述消歧模块包括:多个语言组件,每一所述语言组件包括至少一个被编码在计算机可读介质上的可执行算法,用于处理所述输入文本从而确定所述输入文本中有待消歧的词;

多个WSD组件,每一所述WSD组件包括被编码在计算机可读存储介质上的可执行算法,所述可执行算法用于确定一个或多个词义并将所述一个或多个词义与由所述语言组件所确定的每一所述词关联,并且用于为所述一个或多个词义中每一个词义计算概率和置信度;以及迭代组件定序器,其可由WSD模块访问,并且包含编码指令,所述编码指令用于控制语言组件和WSD组件的执行,并用于利用来自合并模块的输出,所述合并模块具有用于合并所述WSD组件结果的被编码的合并算法。

16.根据权利要求15所述的系统,其特征在于:所述WSD组件的算法生成所述词义的概率分布。

17.根据权利要求16所述的系统,其特征在于:所述合并模块的合并算法被编码成合并由每一WSD组件算得的概率分布和置信度,并且为每一所述概率分布生成合并概率分布和合并置信度。

18.根据权利要求17所述的系统,其特征在于:所述合并算法进一步被编码以合并通过计算由给定词的WSD组件所生成的所有概率分布的加权和得到的概率分布,并且其中加权因子包括各自置信度。

19.根据权利要求18所述的系统,其还包括:歧义减少模块,所述歧义减少模块用于筛选所述WSD组件或所述合并模块的结果,并消除概率值和置信度低于相应阈值的这些词义。

20.根据权利要求19所述的系统,其特征在于:所述歧义减少模块将所述合并概率分布和合并置信度的值中至少之一与各自概率和置信度阈值相比较,其中所述阈值被包含在与所述文本处理引擎操作性连接的控制文件中。

21.根据权利要求15所述的系统,其特征在于:所述文本处理引擎还包括知识库,所述知识库嵌在与至少一个处理器连接的计算机可读存储介质上,用于由所述语言组件或WSD组件访问。

22.根据权利要求21所述的系统,其特征在于:所述文本处理引擎还包括数据库,所述数据库包含与至少一个处理器连接的词义标注语料库,用于由所述语言组件或WSD组件访问。

23.根据权利要求15所述的系统,其特征在于:所述系统的元件被直接或间接地连接在网络上。

24.根据权利要求23所述的系统,其特征在于:所述网络包括因特网。

说明书 :

技术领域

本发明涉及自然语言文本(如查询因特网搜索引擎、网页和其它电子文档)的歧义消除,以及消除语音至文本系统的文本输出的歧义。

背景技术

词义歧义消除是确定文本中词的含义的过程。例如,词语“bank”可以有“金融机构”、“堤防”和“飞机转弯”的含义(或其它含义)。当听到或看到自然表述的语言时,根据所述内容语境,人们会本能地选择每个词语的正确意思。一词义消歧器就是一种依赖计算机来完成这项任务的系统,是使计算机理解自然语言这项技术的一个关键组件。
词义消歧器应用于对其有需求的应用软件,或者应用于通过利用对文本消歧后的词义可以实现程序自身优化的应用软件。这类软件包括但不限于:因特网搜索和其它信息检索软件;文档分类;机器翻译和语音识别。
本领域普通技术人员应理解:尽管人可以毫不费力的完成词义消歧,并且这是理解自然语言的一个关键步骤,但是对于计算机来说,目前还没开发出具有足够精度的系统可应用于那些应用软件以解决普通文本中的词义消歧问题。即使是当前的高级词义消歧系统的精度也仅仅约33%,因此,对许多软件来说这样的结果太不精确。
因此,有必要提供一种应用于解决现有技术不足问题的词义消歧系统和方法。

发明内容

第一方面,提供了一种利用消歧组件来确定文本的一个或多个明确含义的处理自然语言文本的方法。该方法包括将一组件选择应用于文本以确定文本处的明确含义。每一个组件都为文本处的明确含义提供了一个置信度和概率。通过选择多个文本处的明确含义来确定单个明确含义。
在本方法中,组件由一个中心模块来依次激活和控制。
本方法还包括确定第二组件选择,并将第二选择应用于文本以进一步改进单个明确含义(或多个明确含义)。第二选择中,每个组件为文本的第二单个文本处的明确含义(或多个明确含义)提供了第二置信度和第二概率。通过第二多个文本处的明确含义选择来确定单个明确含义(或多个明确含义)。
在本方法中,在将第一选择应用于所述文本之后,并且在将第二选择应用于优化单个明确含义(或多个明确含义)之前,进一步消除明确含义中置信度低于所设阈值的含义。
在本方法中,当在第一和第二选择中都出现一个特定的组件时,当第二选择应用于文本时,调整其置信度和概率。
在本方法中,第一组件选择和第二组件选择可以相同。
在本方法中,利用每一组件的特性,由置信函数生成每一组件的置信度。
在本方法中,将用来确定单个文本处的明确含义(或多个明确含义)的组件选择应用于文本后,对于每个所选择的所述组件,为其明确含义生成一个概率分布。本方法进一步合并所述选择的所有概率分布。
在本方法中,所述组件选择根据所述文本的语境对文本进行消歧,所述语境由领域、用户历史纪录和基本内容确定。
将所述组件选择应用于文本后,本方法利用所述单个明确含义(或多个明确含义)改进所述组件选择中的每一组件知识库。
在本方法中,至少有一个所述组件选择仅为粗略含义提供结果。
在本方法中,利用一种合并算法,可将所述组件选择的所有结果合并成一个结果。
在本方法中,所述过程可以利用含有合并粗略含义的第一阶段以及含有合并每一粗略含义组内精确含义的第二阶段。
在本方法中,合并程序可以利用加权概率分布总和,所述权重可以是和分布相关的置信度。此外,所述合并程序还可以包括加权平均置信度,而且所述权重也是和分布相关的置信度。
另一方面,提供一种处理自然语言文本的方法,其使用多个消歧组件确定所述文本的明确含义,所述方法包括步骤:为消歧过程指定一个精度目标;并将一所述多个消歧组件中的组件选择应用于满足精度目标。
另一方面,提供一种处理自然语言文本的方法,其使用多个消歧组件确定所述文本的明确含义,所述方法包括步骤:识别所述文本的一组含义;以及识别并从所述含义组中删除不需要的含义。
另一方面,提供一种处理自然语言文本的方法,其使用多个消歧组件确定所述文本的明确含义,所述方法包括步骤:识别所述文本的一组含义;以及识别并从所述含义组中删除大量的歧义。
再一方面,提供了一种生成词义标注文本的方法。所述方法包括以下步骤:利用消歧组件对大量文档进行消歧;为所述组件提供的一词语的所识别的含义生成一个置信度和概率;如果所述词的所述含义的所述置信度低于设定的阈值,那么忽略所述含义;以及如果所述词的所述含义的所述置信度高于上述的设定阈值,那么将所述含义加入所述词义标注文本。
其它方面,提供上述方面集或子集的各种组合。

附图说明

本发明上述和其他方面将会根据下列其特定实施例和仅借助于实例说明本发明原理的附图说明而变得更加明显。在附图中,相同的附图标记表示相同的元素特征(并且其中单个元件带有唯一的字母后缀):
图1是和文本处理系统具体实施相关的词与词义的图示;
图2是用于图1系统中的一典型语义关系或词的图示;
图3是提供了词义消歧的文本处理系统具体实施的图示;
图4是一词义消歧模块、控制文件优化器和图3中文本处理系统的数据库元件的块状图;
图5是数据结构图,用来表示应用于图3系统的图2所示的语义关系;
图6是图3所用的具体实施方法执行的文本处理程序的流程图;
图7是图6文本处理过程中消歧步骤的流程图;
图8是图4中控制文件优化模块的数据流程图;及
图9是和图3文本处理系统相关的引导过程流程图。

具体实施方式

通过一个或多个示例和本发明原理中特定实施例提供下列说明及其所描述的实施例。提供这些例子目的在于解释而非限制本发明的原理。在以下的说明中,整个说明书和附图里用相同的附图标记分别标注相同的部件。
下列术语将在后续的说明中被使用,并具有以下所示的含义:
计算机可读存储介质:用来存储计算机指令或数据的硬件。例如,磁盘、磁带、诸如CD ROM那样的光学可读介质,以及诸如PCMCIA(个人计算机存储卡国际协会)卡那样的半导体存储器。在不同的情况下,该介质可以采取诸如小型磁盘、软盘、盒式磁带那样的便携物件形式,也可以采取诸如硬盘驱动器、固态存储卡或RAM那样的相对较大或固定的物件形式。
信息:包含可搜索的、用户感兴趣的内容的文档、网页、电子邮件、图像描述、抄本、存储文本等,例如,与新闻文章、新闻组消息、网络日志等有关的内容。
模块:执行特定步骤和/或处理过程的软件或硬件组件;可以在运行于通用处理器上的软件中实现。
自然语言:希望被人而非机器或计算机所理解的词语表达。
网络:配置为通过使用特定协议在通信信道上通信的设备的互联系统。其可以是一个局域网、广域网,因特网或通过通信线路运行或通过无线传输工作的类似网络。
查询:表明所求搜索结果的一系列关键词;可以使用布尔运算符(例如“与”、“或”);可以用自然语言表示。
文本:计算机或相关存储设备里以惯用形式表述的文本信息。除非特别限定,一般采用自然语言。
搜索引擎:响应用户查询,为用户提供其感兴趣的信息的搜索结果的硬件或软件组件。可以根据关联性排列和/或分类查询结果。
词义标注文本:用与文本中词义相关的单个词义或多个词义对部分或所有词语标记的文本。
词义标注语料库:是词义标注文本的集合。其中词义和可能语言信息如某些或所有词语的词性标注。各词义详述和其它语言信息的精度必须和词典编纂人所获的相似。因此,如果由机器生成词义标注文本,那么由机器标记的词义的精度必须和从事词义消歧的词典编纂人所做的标记相似。
所述处理信息为应用软件中的一个步骤,所述应用软件需要这一处理或通过利用文本中词义能得以改进。这个过程通常被称为词义消歧。应用软件包括但不限于:
1.因特网搜索和别的信息检索应用软件;既用于为了更加明确用户请求消歧查询,也用于为了选择出较相关的结果消歧文档。当处理庞大的数据(如文档数据库或因特网上的网页)时,大量的可用数据导致难以找到相关信息。尝试用各种各样的搜索方法在这样的信息库中寻找相关信息。一些最知名的系统是因特网搜索引擎,如允许用户执行基于关键词搜索的Yahoo(商标)和Google(商标)。这些搜索通常包括将用户输入的关键词与网页索引中的关键词进行匹配。在执行这样的搜索时遭遇一些困难的一个原因是在自然语言中使用的词语的多义性。特别是,由于一个词语有几个含义,或者每个含义有多个同义词或解释,所以经常遭遇困难。例如,搜索引擎根据仅含“Java bean”这两个字的文档进行匹配,通过消歧,“Java bean”是“咖啡豆”的意思而不是由Sun Microsystems开发的计算机技术“Javabean”。消歧器会从结果中排除有关计算机技术的信息,同时会把有关咖啡豆的信息收入到结果中。
2.文档分类;参照其文本内容,根据准确含义标准把文档归类。例如,设想一种将电子邮件自动分类到相关用户指定主题的文件夹里的应用程序。一个这样的文件夹可能被称为“程序开发工具”,且其包含涉及任何形式“程序开发工具”的任何电子邮件。在该应用软件中用词义消歧会把不含匹配文件夹标题的词语但含有相关信息的电子邮件精确分类到所属的文件夹或排除。例如,“Java对象(Java object)”这个词会被收入该文件夹里,因为所含“Java”有程序语言的意思。但是,含有“Java coffee(Java咖啡)”或“tools to use in designing a conference program(在策划会议事件中使用工的具)”的词可能会被拒收。因为消歧后第一个例子中的“Java”表示“一种咖啡”,而第二个例子中的“program”指的是“事件”,与计算机编程无关。可通过给一机器学习算法一消歧邮件中的词义,选择性地获得这一效果,而非仅如现有应用程序一样提供该词语。因而分类精度将提高,且应用软件将表现得更加智能化,对用户更有用。
3.机器翻译;应用于翻译前获取词语准确的含义,以便正确翻译有多种可能译法的词。例如,如果英语中“bank”这个词是指“金融机构”,则可以译成法语中的“banque”;但是当指“river bank(河岸)”时,则译为“rive”。要想准确翻译这类词语,就必需从中选择出一个含义。本领域普通技术人员应理解,现有技术中的高出错率是因为机器翻译系统选择了所译词语的错误的含义造成的。在该系统中加入词义消歧功能,通过减少或消除目前现有系统造成的此类错误,将会提高精度。
4.语音识别;应用于正确翻译由音同形不同的词或词组组成的话。多数语音识别系统包括一个分析短语语音并输出所发音词的几种可能顺序的识别组件。例如,“I asked to people(我向人询问)”和“I asked twopeople(我问了两个人)”有相同的发音,且做为由这种识别组件分析的可能词序,这两种形式将都被输出。多数语音识别系统还包括一个模块,该模块从可能的词序中选择出可能性最大的词序并作为结果输出这个词序。通常该模块通过选择与已知发音词序最近匹配的词序来实现。通过选择产生最一致的翻译的词序,词义消歧可以提高这种模块的效力。例如,设想一种语音识别系统对同一发音生成两种替换翻译:“I scream inflat endings(我对平淡的结尾尖叫)”或“Ice cream is fattening(冰激淋在增多)”,词义消歧器将在发音相同的两种翻译中选择,与对文本中同一个词的两种可能解释进行消歧的方式完全相同。
5.文本至语音(语音合成);用于正确读出多音词。例如,“I saw hersow the seeds(我见她播种种子了)”和“The old sow was slaughtered forbacon(这头老母猪被宰杀做成熏肉了)”这两个句子都含有“sow”这个词,但是它在每个句子中有不同的发音。为了能正确读出每个句子,语音文本应用软件就需要知道各词语的合适的解释。词义消歧模块可以确定出第一个句子中“sow”的意思是动词“播种”,第二个句子中的“sow”是指“母猪”。因而,所述语音文本应用软件就具有能够正确读出每个句子的必要信息。
详细说明具体实施列之前,先介绍一些词和词义间关系的相关背景。参照图1,由附图标记100通指词和词义间的关系。如例中所示,某些词有多种含义。多种可能性之中,“bank”这个词可以表示:(i)作金融机构解的名词;(ii)作河岸解的名词;或(iii)作存款行为解的动词。同样的,“interest”这个词也有多种含义,包括:(i)表示涉及未偿投资或未偿借代的应付金额的名词;(ii)表示给予某物特别关注的名词;(iii)表示对某物享有合法权利的名词。
该实施例给各词分配词义。本实施例尤其定义了两种词意:粗略的和精细的。精细含义定义了词语的精确含义和用法。每一精细含义应用于词性种类(名词、动词、形容词或副词)的一特定词性。粗略的含义定义了和词语相关的一个宽泛概念,并可能涉及不止一种词性。每个粗略含义里都包括一个或多个精细含义,每个精细含义都有其所属的粗略含义。一个词语可能有多个精细含义和多个粗略含义。因为词的精细含义与同粗略含义定义相关的类概念相匹配,所以根据粗略含义分类精细含义。表1说明了一个词与其粗略含义和精细含义之间的关系。举例说明了精细含义和粗略含义之间的区别,“bank”这个词的精细含义里涉及了“倾斜飞机(to bank a plane)”中作为动词的“倾斜(to bank)”和“飞行员进行了倾斜(the pilot performed a bank)”中作为名词“倾斜(a bank)”的区别,然而这两种含义就被一并归入了较粗略的含义“操纵(Manoeuvre)”中。

参照图2,示例了词义间的语义关系。这些语义关系是基于含义而精确定义的两个词之间的联系类型。该联系是特定含义的词义间的联系。例如,“a bank”(取河岸的意思时)是一种地形,而“bluff”(断崖)(取一种土地形貌的意思时)也是一种地形。“a bank”(取河岸的意思时)也是一种斜坡(指阶状陆地)。“a bank”取金融机构的意思时与“bankingcompany”或“banking concern”(金融公司)同义,“a bank”还是一种金融机构,属于一种商业类型。按照通常所理解的银行支付存款利息和收取借贷利息的事实,“a bank”和“interest”利息(指投资应付的钱)与“loan”(指贷款)有关。
应当理解,还存在很多其它可用的语义关系类型。尽管在现有技术中已知,下面是一些词之间语义关系的例子:同义词是彼此同义的词。上位表示一个词代表一整类具体例子的关系。例如,“运输工具”是一个上位词,其包括“火车”、“战车”、“雪橇”和“汽车”这些具体例子在内的一个词类;同时,下位就表示了一个词是一类例子中的一个成员的关系。如之前的例子列中,“火车”是“运输工具”这个类的下位词。部分表示一个词是某种事物的一个组成部分、构成材料或其中一个成员的关系。例如:“腿”和“膝”之间的关系,“膝”是“腿”的一个部分词,因为膝是腿的一个组成部分;同时,整体是指一个词是部分词所指部分的整体。如之前的例子,“腿”是“膝”的整体词。可以使用归入这些类的任何语义关系都可用,另外,也可以使用任何公知的指出了词义间特定语义和语法关系的语义关系。
大家还认识到,用词义消歧来解决搜索引擎中的检索关联问题。此外,用户经常如同表达语言一样表达文本。然而,由于相同的含义可以有许多不同的表达方式,那么当用户不以相同的用以初始分类相关信息的特定方式表达文本时,他们就会遭遇困难。
例如,如果用户正在寻找有关“爪哇”岛的信息,而且对在“爪哇”(岛)“度假”感兴趣,那么他通过关键词“Java”和“度假(vacation)”来分类,则检索不到有用的文档。该实施方案就解决了这个问题。大家认识到,在自然表达文本中为每个关键术语的衍生精确同义词和子概念增加了要检索的关联性检索量。如果用没有词义消歧功能的辞典来执行此操作,结果会更糟。例如,语义扩展“Java”这个词而没有首先确定其精确含义,将会产生大量而无用的结果集,该集合带有潜在的基于不同的词义选定的结果,所述不同的词义为“印度尼西亚”和“计算机程序设计”。由此该实施方案提供了通过语义扩展词义产生一个全面同时更精确地结果集以解释每个词义的系统和方法。
参照图3,以附图标记10通指本具体实施例中的文本处理系统。该系统获取输入文本12。文本12包括自然语言文本,如查询、文档、语音至文本输出或任何电子形式的自然语言文本资料。
该文本处理系统包括了文本处理引擎20。该文本处理引擎20可以通过专用的硬件或者在通用处理器上运行的软件来实现。该文本处理引擎也可以在网络上运行。
该文本处理引擎20通常包括一个处理器22。该引擎还可以直接连接到或通过网络或其它此类通信方式间接地连到显示器24、接口26和计算机可读存储介质28上。处理器22一端接在显示器24上,另一端连接接口26。接口26包括一些用户输入设备,如键盘、鼠标或其它配套设备。如果显示器24为接触触发的,那么显示器24本身就可以作为接口26使用。计算机可读存储介质28连在处理器22上,给处理器22提供指令,以指示和/或配置处理器22来运行与文本处理引擎20操作相关的步骤或算法,如下作进一步讲解。可以把计算机可读存储介质28的部分或全部物理地置于文本处理引擎外以用于例如,大容量存储器。本领域普通技术人员意识到可在本发明中使用各种形式的文本处理引擎。
可选地,为获更高的计算速率,文本处理器引擎20可以包括多个并行运作的处理器或任何其它的多处理装置。这样使用多个处理器可以使文本处理引擎20在多个处理器间分配任务。此外,如本领域普通技术人员所理解的,所述多个处理器不必物理地被置于相同位置,可以将它们空间地分离而在网络上互连。
文本处理引擎20包括数据库30,该数据库30应用于存储文本处理引擎20所使用的知识库和要素语言资源。如本领域普通技术人员应理解的,数据库30以结构化方式存储信息以实现计算上地有效的存储和检索。可以通过添加另外的关键词义或对另外的文档引用现有的关键词义来更新数据库30。可以通过划分数据库30并在多个位置进行存储来得到更高的效率。
文本处理引擎的一个重要部分是转换输入文件或文本中的词语为词义的词义消歧(WSD)模块32。词义是鉴于一个词语的用法及其相邻词的前后关系而赋予该词语的特定解释。词义是搜索引擎20包括一个应用于处理输入文档中的词语或者对词义的查询的词义消歧模块32。例如,在句子“Book me a flight to New York”中词语“book”是歧义的,因为“book”可以是一个名词或一个动词,而这两种词性中的每一种又都具有多个可能的含义。由词义消歧模块32进行词语处理的结果是得到一个由词义而不是歧义或未解释的词语组成的消歧文档或消歧文本。词义消歧模块32为文档或文本中的每个词语辨别词义。词义消歧模块32通过广泛的互连语言技术来确定词语的哪一个特定含义是所需的含义,该互连语言技术以分析上下文中的语法(例如词性、语法关系)和语义(例如逻辑关系)来实现。可以使用表示词义之间明确的语义关系的词义知识库来辅助执行消歧。
参照图4,对数据库30作进一步详述。
为了帮助明确词语语义,该实施例使用如上对图2所描述的获取词语关系的词义知识库400。知识库400与数据库30相关联,并通过访问所述知识库400来帮助WSD模块32执行词义消歧,也列出了文本中可能词义的详细目录。随着现有技术词典和诸如WordNet(商标)这样的词汇数据库在系统中的应用,知识库400提供了一个有关词、词义和语义关系的增强目录。例如,即使在先技术词典仅含对应于各词义的词语的定义时,知识库400也含有词义之间关系的信息。这些关系包括词义及其相关词性(名词、动词等)的定义、精细词义同义词、反义词、下义词、子义词、名词性形容词、类似的形容词关系以及现有技术中已知的其他关系。知识库400还包含其它现有词汇数据库所没有的附加语义关系:(i)词义之间的附加关系,例如精细含义整合成粗略含义,类举关系、类关系、屈折词形和派生词形关系;(ii)校正来自出版源的数据中的错误;以及(iii)其它现有技术知识库中不存在的附加词、词义及其关系。
除了含有词及其对应的词义(精细和粗略)和概念的详细目录和四十多个特定的语义连接类型外,数据库30还提供了一个语言组件502和WSD组件504使用的组件资源402知识库。一些组件资源由几个组件共享,而另一些组件资源独属于一个特定的组件。在本具体实施例中,组件资源包括:通用模块、特定领域模块、用户模块和会议模块。通用模块包含普通领域信息,例如未知领域的任何文本中每个词各含义的概率分布。使用几个领域的数据来训练通用模块。WSD组件504和语言组件502必须利用这些组件资源。例如,一个组件可以在任何请求下用这些组件资源,或仅当用更多的特定模块无法完成该请求时用这些组件资源。用特定领域信息训练特定领域模块。在各种领域中,特定领域模块应用于构建专用词义用法模型。例如,对于旅行代理商和计算机程序师来说,词语“Java”有不同的含意。这些组件资源为每个集合创建统计模块。为特定用户训练用户模块。所述模块可被指定并可被延时访问。用户模块可以通过应用软件建构或者由词义消歧系统自动生成。会议模块提供了关于在会议里重组多个请求的信息。例如,用搜索引擎几个词义消歧请求可能涉及整个信息检索会议里的相同话题。会议模块可通过应用软件建构或由WSD模块32自动生成。
数据库30还含有词义标注语料库404。词义标注语料库404可优选地被分成应用于训练组件、应用于各组件的训练置信函数和训练控制文件优化器的子单元,进一步作如下所述。
参照图5,以进一步详述本实施例提供的知识库400。本实施例中知识库400是一种概括的图形数据结构,并由节点表402和联结两个结点的边缘/关系表403实现。依次描述各表。任意数据类型的注解都可附一个节点或边缘。其它实施例中,还可以用其它诸如链接列表那样的数据结构来实现知识库400。
在表402中,每一个节点是该表402的一个行元素,本实施例中,每一个节点的记录有如下那么多的字段:ID字段406,类型字段408和注释字段410。在表402中存在两种类型的条目:词语与词义定义。例如,通过类型字段408A中的“词语”条目来确定ID字段406A中的词语“bank”。此外,示范性的表402提供了词语的多个定义。为了对所述定义进行分类并区分表402中的词语条目与定义条目,可以使用标签来确定定义条目。例如,将ID字段406B中的条目标记为“标签001”。类型字段408B中的相应定义将该标签标记为“精细含义”词语关系。注释字段410B中的相应条目将该标签标记为“名词,金融机构”。照此,现在可以将词语“bank”连接到该词义定义。而且,还可以将词语“经纪行”的条目连接到该词义定义。另一个实施例可以使用带有附加后缀的常用词语,以识别该词义定义。例如,另一种标签可以为“银行/n1”,其中后缀“/n1”表明该标签为名词并且是该名词的第一含义。应当理解可以使用其他形式的标签。可以使用其他标识符来识别形容词、副词和其他词性。在类型字段408中的条目确定了与词语相关的类型。一个词语存在多种有效的类型,包括:词语,精细含义和粗略含义。还可以提供其他类型。在本实施例中,当一个词语实例具有一个精细的含义时,该实例还具有注释字段410中的一个条目来提供关于该词语实例的更多细节。
边缘/关系表403包含表示节点表402中两个条目之间关系的记录。表403具有以下条目:源节点ID栏412、目的节点ID栏414、类型栏416和注释栏418。栏412与栏414用来把表402中的两个条目连接到一起。栏416确定连接两个条目的关系类型。记录有源节点和目的节点的ID、关系类型并且可能有基于该类型的注释。关系的类型包括“根词语到词语”、“词语到精细含义”、“词语到粗略含义”、“粗略含义到精细含义”、“衍生”、“下义词”、“类别”、“名词性形容词”、“类似”、“具有部分”。还可以在其中记录其他关系。注释栏418中的条目提供了一个(数字)键来为给定词性唯一确定一种从词语节点到粗略节点或精细节点的边缘类型。
参照图4,以进一步详述本实施例所提供的WSD模块32。WSD模块32包括控制文件优化器514,迭代组件定序器(ICS)500,语言组件502和WSD组件504。
首先看WSD组件504和语言组件502,现在描述WSD组件504和语言组件502(组件)的公共特性和特征。由一个特殊组件产生的结果更适宜用概率分布和置信度来评定。概率分布使得组件返回一个概率图,该概率图显示了任何可能的答案是正确的可能性。根据WSD组件504,可能的答案包括文本中可能的词义。根据语言组件502可能的答案有赖于语言组件所执行的任务,例如,词性标注器502F的可能答案是每个词的可能词性标注集。置信度提供了一个概率分布算法的信任水平指标。照此,一个具有高概率和高置信度的答案显示了该算法确定出了一个最有可能的单一答案并且很有可能所确定的答案是精确的。如果一个答案具有高概率而低置信度,那么尽管算法确定出了一个最有可能的单一答案,但是它的置信度显示了该答案可能不正确。根据WSD组件504,一个低的置信度可能表示该组件缺乏需要用来消除特殊词歧义的信息。每个组件有一个好的置信函数很重要。尽管是一个低的全局精度的组件,但是该带着低全局精度但是有着好的置信函数的组件有助于系统精度,正如该置信函数将正确识别由可信组件为其提供答案的词子集。
置信函数评价组件的内部运行特征和组件的算法并估计出该算法的存在的可能精度缺点。例如,如果算法有赖于统计概率,那么当概率是根据很少的几个例子算出时,该算法往往会得出不正确的结果。因此,对于这种算法,置信度将用到包括该算法所用的例子数的变量。一个置信函数可能包括几个变量,甚至数百个变量。通过使用输入类的变量或本领域普通技术人员所熟知的回归算法(统计学的,如概化线性模式;或基于机器学习的,如类神经网路)来构造上述的置信函数。训练分类的数据或回归函数优选通过在一部分词义标注语料库404上运行WSD算法获得,该词义标注语料库404即为此目的而被设置。
许多组件使用基于机器学习概念的统计技术或本领域普通技术人员所熟知的别的统计技术。本领域普通技术人员应该明白为了建造统计模型,此类组件需要使用训练数据。例如,为了确定哪个是特定词统计上的最合适的含义,对每个词,在先组件504A都用了许多词义标注例子。本实施例中,由词义标注语料库404来提供训练数据,该词义标注语料库404即为本领域普通技术人员所熟知的“训练语料库”。
现在对WSD组件504特征做进一步详述。每个WSD组件504都尝试通过用一种特定词义消歧算法来把文中的词和对应的正确的词义联结起来。整个消歧过程中,每个WSD组件504可能运行不止一。该系统提供了语义词数据或数据库30中其它形式的数据。为了执行消歧功能,该数据库30是每个算法都需要的。正如已注意到的,每个WSD组件504都有一个算法,用该算法执行特定消歧类型并依其结果而生成概率和置信度。该WSD组件包括但不限于:在先组件504A,实例存储组件504B,n-连词组件504C,概念重叠组件504E,启发式词义组件504F,频词组件504G和从属组件504H。每个组件都有一个与其特殊运算相关的专门知识库。每个组件都产生一个如上所详述的置信函数。现对每个组件做以下详述。除非在此提出的特殊方面,每一种技术都是本领域所知道的。还应该明白,并不是本实施例中所描述的所有WSD组件都是完成精确词义消歧功能所必要的,而是需要一些不同技术的组合。
依据各种词义出现频率的统计数据,在先组件504A利用一种现有算法来预测词义。具体地,根据词义标注语料库中的词义频率,该算法为每个词义分配概率。这些词频更适宜存在组件资源402中。
例如存储组件504B利用一种实例存储算法来预测短语词义(或词序)。优选地,该存储组件504B尝试预测所有有序的词的词义。短语典型地定义为一系列连贯的词。一个短语可能是两个字甚至长达一个整句。该算法访问一个为每个词提供了一个被认为正确的含义的短语(或词序)列表。优选地,这一列表包括了一些在词义标注语料库里多次出现并且有相同含义的句子片段。优选地,当一个分析短语所得的词的词义不同于先前的归结到该短语里的词义时,该词序表将拒收且不保存这个分析短语里的词义。
当进行文本消歧时,实例存储算法将鉴别部分文本或者全部文本是否与已存在词序表里的先前已确定的再现词序匹配。如果匹配,该模块会把顺序词义分配给文本中相应匹配的词。
n-连词组件504C利用一种仅对一个固定范围的词有效的n-连词算法,并仅尝试一预测一个单个词的含义,与实例存储算法形成对比。本n-连词算法通过匹配小范围内相邻词的特征预测一个主要词的词义。此类特征包括:词元、词性、粗略的精细词义和名称实体类型。该算法可以分析目标词前或后n个词,通常,n被设为取2个词。若n取2,该算法就使用具有各词相关正确含义的词对列表。该列表源自在词义标注语料库404里多次出现并且有相同含义的词对。然而,当即使仅一个词义不同时,该列表也拒收和不存此类词对含义。当进行文本消歧时,n-连词算法把来自查询或正在处理的文本的词对和经历了n-连词算法已保留下来的列表所提供的词对进行匹配,当在先前列表中可以找到该词对并且该查询或正被处理的文本中的两个词之中的一个词的词义也存在时可认为匹配。如果确认匹配,会给正被处理的词对中的另一个词分配的相关词义。
与所述n-连词算法相关的组件资源经词义标注语料库404训练并成为组件资源402的一部分。所述n-连词算法组件资源包括一个统计模型,该统计模型用来确定充足频繁地运作的n-连词算法何时成为一个有效词义预测器。知识库中的几个预测器可由词型触发。根据给定的概率分布,这些预测器可能加强一个普通含义或事实上也可能产生多个可能的含义。
概念重叠组件504E具有一种概念重叠算法,该算法通过选择与文本段落概括性主题最匹配的含义来预测词义。本实施例中,文本段落的主题定义为文本段落中所有不可删除的词义组。通过比较文本段落主题来评定主题的相似性,并选出每个词的具有最大主题相似性的含义。该文本段落主题通过从词义标注语料库摘录出来的的主题来为每个词义消歧。此种比较法是点积或余弦度量。正如为本领域普通技术人员所熟知的,还有许多其它用主题相似性来消歧文本的技术。
启发式词义组件504F具有一种启发式(heuristic)词义算法,该算法利用根据知识库中的本质语言特性和语义链接而制定出的法则来预测词义。例如,在知识库中,根据“Indonesian is a language”这样的联系,词条“a spoken human language”中“language”的含义和“Indonesian”相关。通过该启发式词义组件,一个既含有词语“language”也含有词语“Indonesian”的句子将会获取被消歧的词语“language”。尤其,这种关系已是人工验证了的,因此在精确性上有一个更高的可信度。
频词组件504G具有一种用来确定出现最频繁的词的含义的频词算法。在英语中,500个出现最频繁的词几乎占了正常文本中所遇到的词的三分之一。其中的每一个词在词义标注语料库404中都存在大量的可用训练实例。因此,使用监督性机器学习方法,有可能为每个词训练出特定词义预测器。本实施例中,用来训练该组件的机器学习方法正在强化,所使用的特征包括紧邻有待消歧的目标词的词和词性。正如为本领域普通技术人员所熟知的,也可用其它特征和机器学习技术来完成同样的目标。
依存关系组件504H具有一种依存关系算法,该算法使用一种基于句子中的语义依存关系的词义预测模型。通过选定依存关系中的中心词并选择性地确定该中心词含义,依存关系算法就会预测出其从属词的含义。同样,选定了从属词并确定该从属词义,依存关系算法会预测出中心词含义。例如,在文本段“drive the car”中,中心词是“drive”,从属词是“car”。对“car”含义的理解足以预测出“drive”是“开一种交通工具”的意思。
应该明白,随着该领域发展的研究,时常也会用到其它词义消歧技术,并且这些技术同样也就归入了该系统新的WSD组件。还应该明白,单个WSD组件不足以高精度地消除文本歧义。为了解决这个问题,本实施例使用了多种技术以消除文本歧义。上述的这些技术详述了可以实行高精度词义消歧的模范组合。也可采用其它技术。
现在来看语言组件502。每个组件502提供了一种应用于文本以确定语言信息的特定类型的文本处理功能。这种语言信息即是供给WSD组件504进行消歧的信息。语言组件502中的每一个组件的运行都为本领域普通技术人员所属悉。该语言组件502包括:
切割器502A,用以把输入文本分割成单个的词和符号。切割器502A按照字符顺序处理输入文本并把输入文本分解成一系列实类(token),一个实类是能形成词语的最小字符序列。
句子边界探测器502B,用以鉴别输入文本的句子边界。句子边界探测器用规则和数据(如缩写词列表)来识别输入文本的可能句子边界。
Morpher(形素器)502C,用以鉴别词语的词元,也就是基本形式。本实施列中,词元定义了词的精细含义和粗略含义目录。例如,对于词尾变化的词“jumping”,该形素器鉴别出它的基本词形是“jump”。
剖析器502D,用以鉴别输入文本中的词之间的关系。剖析器502D鉴别输入文本中的语法结构和短语。此操作结果是产生一个为本领域人所熟知的概念剖析树。词之间的一些关系包括“主谓”结构和“动宾”结构。随后就能从这些短语中提取一系列语法和语义依存关系。剖析器502D也会生成应用于更新词性分类的词性标记。剖析器信息也应用于选择可能的复合词。
依存关系分离符502J,使用剖析树来生成一系列本领域普通技术人员所熟知的语法和语义依存关系。许多别的组件利用语义依存关系来提高其模型。用下列方法提取依存关系。
1.用剖析器502D生成一个语法剖析树,包括为每个短语确定语法中心词。
2.通过使用本领域普通技术人员所熟知的经验知识集为每个短语生成语义中心词。语义中心词不同于语法中心词,如语义规则优先考虑语义上的重要因素(如名词和动词),然而语法中心词则优先考虑语法上的重要因素,如介词。
3.一旦确定了语义中心词(或短语),就分析同类的词和短语与中心词所构成的依存关系。
已命名实体(Named-entity)识别器502E,用来鉴别知名的固有名词如“Albert Einstein”或“International Business Machines Incorporated”和其它的多词固有名词。已命名实体识别器502E收集实类,该实类先把一个已命名实体分组,再把组归类。这种类包括本领域普通技术人员熟知的:人物、场所、产品(artefact)。已命名实体种类由隐藏式马可夫模型(HMM)确定。而该隐藏式马可夫模型(HMM)仅针对标注出了已命名实体的词义标注语料库404部分。例如,在文本片段“Today Coca-Cola announced...”中,HMM通过分析周围的词,把“Coca-Cola”归为公司(而不是一种产品)。本领域普通技术人员熟知还存在许多应用于已命名实体识别的技术。
词性标注器502F,为输入文本中的词分配诸如“名词”和“动词”这样的功能角色(functional roles)。词性标注器502F鉴别词性,该词性应该可以被映射到涉及词义间消歧过程的主要词性(名词、动词、副词、形容词)中。词性标注器502F使用几个基于三连词的隐藏式马可夫模型(HMM),而该隐藏式马可夫模型(HMM)仅针对注有词性信息的词义标注语料库404部分。本领域普通技术人员熟知还存在许多应用于词性标注的技术。
复合词探测器(compound finder)502H,应用于找到输入文本中可能的复合词。一个例子复合词“coffee table”或“fire truck”,尽管有时被写作两个词,但为了词义消歧需被视为一个词。知识库400包括了一系列复合词,这些复合词可在文本中被确定。每个有待鉴别的复合词都给定一个标志该复合词正确构成的可能性的概率。这个概率从词义标注语料库404中计算得出。
现在来看ICS500。ICS500控制语言组件502和WSD组件504对文本的操作顺序,以不断减少所处理文本中的歧义数量。ICS500有几项特殊功能:
1.ICS500使用所选择的语言组件502来整理文本中要素摘要,并通过一个通用接口把这些要素提供给WSD组件504。
2.ICS500使用上传器500A(seeder)为每个词赋一组可能的初始含义,这一组可能的初始含义来自知识库400,上传器500A把所赋的这组可能的初始含义与文本中有待WSD组件504消歧的各词联系起来,从而提供一最大化的初始歧义。
3.ICS500根据由控制文件516所确定的运算混合(an algorithm mix)来调用WSD组件504。激活所选择的WSD组件504后尝试进行文本消歧,并提供与文本中可能词义相关的概率和置信度。优选地,多重迭代调用WSD组件。
4.ICS500使用合并模块500B和歧义消除器500C来合并整合来自多组件的输出。合并模块500B把所有的WSD组件504输出合并到一个合并的概率分布和置信度。歧义消除器500C根据合并模块500B来确定应该从文本中消除的歧义。
在随后的描述词义消歧运作过程部分,将对ICS500的功能和设计作更详细的描述。
控制文件优化器514选择性地执行一个训练程序,该训练程序以控制文件516的形式输出一个“处方”。该“处方”包括了在每个迭代过程中为WSD组件504所提供的最优化序列和参数,并且在整个词义消歧过程中ICS500也要使用该“处方”。在随后的描述优化控制文件生成器部分,将对控制文件优化器514的功能和设计作更详细的描述。
现在来对本实施例处理文本的执行步骤作进一步详述。参照图6,附图标记600通指执行文本消歧过程。该文本消歧过程分为四个步骤。第一步是生成一个优化控制文件602。本步创建一个在文本消歧606步骤中用到的控制文件。第二步识读文本604(read text 604),包括识读文件中有待消歧的文本。第三步文本消歧606,包括对文本进行消歧。是文本消歧过程中的主要步骤。第四步消歧文本608输出,包括把词义标注文本写入文件。
参照图7,现在进一步详述主要处理步骤文本消歧606。
对于收到的需要消歧的文本,ICS500以下列方式处理该文本。
1.ICS500通过分割器502A传递文本以鉴别词语边界,并根据出现在文本中的标点符号来分离这些词。
2.ICS500通过经语言组件502传递文本来实现鉴别文本中的语法特征。此类语法特征包括:词元(含复合词)、词性、已命名实体和语义依存。每个特征都生成一个置信度和概率分布。
3.把处理文本提供给上传器500A,该上传器500A使用由语言组件502生成的词元和词性来鉴别文本中每个词存于知识库400中的一系列可能含义。
4.然后ICS500把一组独立的WSD组件504应用于输入文本,由控制文件516来指定各具体组件和它们的执行顺序。每个WSD组件504对文本中部分或所有的词进行消歧。对于已消歧的含义,各WSD组件504为其生成一个概率分布和置信度。
5.接着ICS500用合并模块500B执行一个合并操作。该模块合并应用于所有词的所有组件获得的结果生成一单个含义概率分布和每个词的关联置信度。合并前,如果在控制文件516中有具体说明,ICS500可以舍去置信度不足够高的结果,或者由于主要结果概率不足够高而舍去该结果。合并概率分布是一个由置信度导出权重的每个保存下来的概率分布的加权和;而合并置信度是一个由置信度导出权重的加权平均信心值。例如,如果一个WSD组件“A”为词“Java”提供一个100%概率的词义“热“热饮料”,而一个WSD组件“B”为该词“Java”提供一个100%概率的词义“程序语言”,那么合并分布将包括各占50%概率的“热饮料”和“程序语言”。为了合并WSD组件仅生成的粗略含义的结果,合并器可能任意运行两次,一作应用于粗略含义,第二作应用于涉及个粗略含义的精细含义组。
6.ICS500通过使用歧义消除器500C来实现歧义减少过程。本实施例根据由合并模块500B输出的合并分布和置信度执行消歧过程。当合并分布中的一个含义有一个被认为很高的概率以及高置信度时,即认为该含义是正确的,并可舍弃所有其它的含义。例如,如果一个合并结果显示,对于“Java”的消歧结果是有着98%概率以及90%置信度的含义“咖啡”,那么所有其它含义将会被尽可能排除,并且“咖啡”的含义被唯一的保存下来。控制文件516即为此判定点设置概率和置信度阈值。相反地,当一个或多个含义有着很低的概率但具有高置信度时,此类含义可能被认为不重要而被排出含义集合。控制文件516又会为此判定点设置概率和置信度阈值。该消歧过程通过利用由WSD组件504提供的信息来减少输入文本中的歧义,并从而改变整个后续迭代消歧过程中供给WSD组件504的含义。
7.至少可任意执行一个或多个迭代步骤4、5和6。应该明白,每个后续迭代的结果都有可能不同于前一迭代结果,正如WSD组件504自身不能预测前一迭代后被消歧的含义。WSD组件504通过比较减少的歧义和前一迭代结果,得出一个有着更高精度概率和/或更高置信度的结果。控制文件516为每次迭代确定适用的WSD组件504。应该明白,除非对足够数量的词完成消歧或完成了控制文件516所指定的迭代次数,将会执行多次迭代。
本实施例中,词义消歧过程可以调用多次迭代。典型地,在每次迭代中,在不引入大量的消歧错误的前提下仅消除一部分歧义。优选地,所选择的任何WSD组件504都尝试为每个词消歧,所选择的WSD组件504对先前没被舍弃的含义返回一个完整的概率分布。通常,不准许一个WSD组件504通过再提交该词先前已被舍弃的含义而增加文本歧义。在迭代过程中,各WSD组件彼此独立运行,而由ICS500控制或通过前一迭代进行消歧时WSD组件504的各组件之间发生交互作用。在其它实施例中,提供有整个一迭代和多次迭代间的过程中各WSD组件之间不同程度的交互作用和结果关系。应该明白,由于那些交互作用的高度复杂和不可预测的属性,含有被明确编入WSD组件504的WSD各组件间高度交互作用的系统往往太复杂而不能实际建造。由此,ICS结构所提供的各WSD组件504之间的受控交互作用和各WSD组件504间的独立性是本实施列和发明中的一个关键优势。
通过合并模块500B和歧义消除器500C的联合作用来后置处理几个经WSD运算504所得的结果以减少文本中的歧义。这些模块的联合作用涉及后置处理模块512。应该明白,正如本实施例中所描述的对合并模块500B和歧义消除器500C的使用是仅在该特定实施方案中的一个示例技术,并且还设计了可选技术。例如,后置处理模块512可以使用如神经网络这样的机器学习技术来合并和删减结果。在该算法中,把每次运算得到的概率分布和置信度反馈回学习系统,从而为每个含义生成一个的合并概率和置信度。
关于合并模块500B,还可采用诸如分类算法和顺序合并算法这样的其它算法。
参照图8,现在对控制文件优化器程序514作进一步详述。使用控制文件优化器程序514生成优化控制文件516以提供最大限度的消歧精度。该程序以从词义标注语料库802开始。本实施例中,词义标注语料库802是词义标注语料库404的一部分,被存作执行控制文件优化器程序514。控制文件优化器514利用WSD模块606生成一个控制文件516,该控制文件516根据词义标注语料库802来优化WSD模块的精度。
控制文件优化器514要求给定优化标准,为被删除的歧义百分比或消歧精度百分比分别设置阈值。然后根据指定的其它阈值度量标准,控制文件优化器优化控制文件以使词义消歧性能达到最佳。也可以指定一个最佳的迭代数。通过每次迭代而使正确结果的数量或给定的被删除的歧义的数量最优化。确定了算法和指定精度阈值的最佳联合后,训练继续进行下一迭代。每次迭代会降低目标精度,随着迭代次数的增加将会使结果标准逐渐下降。测试多个目标精度序列,并选择出基于词义标注语料库802生成的最好结果序列。优选地,随着每一的后续迭代,精度或剩余歧义不断减少。所测实例迭代精度序列的结果为:
1.95%->90%->85%->80%
2.90%->80%
对于一个给定的迭代和目标消歧精度,通过执行下列步骤来确定需调用的优化算法列表以及要保持的联合概率和置信度阈的结果。
1.根据词义标注语料库802分别调用每个WSD组件504,每个组件都会产生一个结果,从而获得一组结果。
2.对于由WSD组件504所产生的一组结果,搜索概率和置信度阈空间以确定对照优化标准使性能最优化的阈值。通过以如5%这样的固定步长增量在0%到100%的范围内搜索所有联合概率和置信度阈值来实现上述的确定最优化阈值过程。
3.一旦为每个WSD组件504确定了最佳阈,依照这些阈值,对所有WSD组件504产生的结果进行删减,并用较早描述过的合并模块500B合并结果。
4.搜索整理过的合并结果以确定合并结果的概率和置信度阈,这些阈值以等于或高于迭代所用的目标精度的精度来使许多正确的答案达到最优化。用步骤2的方法来完成这一优化过程。
5.对WSD组件504进行合并后的结果重复步骤4,但WSD组件504相关性结果被排除。从而确定应用于最优化结果集合中正确结果的概率和置信度阈。把该结果集合中的正确结果的最大数量和步骤4中所获得的结果的数量作比较,它们之间的不同显示了由相关性算法(algorithm ofinterest)得到的正确的唯一性答案的分布。如果一个WSD组件504的结果分布是负值,就表明该WSD组件504的结果对结果有害;如果这个分布值是零,那么表明在迭代中对新的正确结果没有贡献。在负值分布情况下,从WSD组件504结果列表中删除有着最低负值分布的该WSD组件504的结果。WSD组件504结果列表要在后续迭代过程被调用。
6.重复步骤5,直到有着负或零分布置的一组WSD组件504结果被确定并删除。数字可能是所有的WSD组件504。
7.重复步骤2至步骤6,在上述和下列迭代中,但其中步骤2的目标精度,通过小步长增长如2.5%改变高于并随后低于目标精度。
8.WSD组件504与概率和置信度阈的结合可以产生最大量的正确答案,这种结合被留作解决给定迭代的方法。每一WSD组件504的概率和置信度阈值以及歧义消除器500C被写入以控制文件,并且继续训练下一迭代和目标消歧精度。
以上描述显示,可通过设置控制文件优化器514来优化指定的精度,为每个词分配一个且仅分配一个含义。但应该知道对于特定的应用软件或在特定的具体实例中,并不表示给每个词仅分配一个含义或对所有词消歧。
先于任何歧义出现在文本中歧义的数量被认为是最大歧义。出现在完全词义标注文本中的歧义数量,为每个词都分配一个且仅分配一个含义的被认为是最小歧义。但应该知道对于某些应用软件或在特定的实例中,适合仅删除出现在文本中的部分歧义。可以通过允许一个词具有多个可能含义或通过不对某些特定词消歧,或者通过这两种方法一起来完成删除部分歧义过程。在本实施例中,被删除的歧义百分比定义为:(舍弃的含义数)除以(可能的含义总数减一)。应该进一步明白,通常情况下,除去一个较小的歧义百分比会使词义消歧模块32返回一个较高精度的结果;假如词义消歧模块32可以给每个词指定不止一个可能的含义,并且如果为一个词指定的含义中包括了该词的正确含义,那么就认为该词进行了正确消歧。
随意地,可分别为控制文件优化器514提供优化标准、由词义消歧模块32得到的被删除的歧义百分比的阈值,以及词义消歧模块32的消歧结果精度。要求控制文件优化器514a)依据最低精度阈值,最大化被删除歧义的数量(例如,删除尽可能多的歧义,以确保存留下来的可能含义有95%的可能性包括正确的含义),或b)依据最小的被删歧义百分比,最大化消歧精度(例如,依除去每个词至少70%的附加含义,最大化精度)。这种性能在应用软件中很有用,a)因为可以使词义消歧模块32优选地适应真实的自然语言文本世界。正如在一个文本中所表达的,真实的自然语言文本中的词可能真实的产生歧义(也就是对人产生歧义),因而不可能完全消歧。并且b)因为可以利用词义消歧模块32的应用软件选择或多或少保守地执行词义消歧模块32,其中消歧精度越低,被舍弃的正确含义也越少。这点特别重要,例如,在信息检索应用软件中,保证正确的信息不被舍弃很重要(如由于错误的消歧),即使以包括无关信息为代价(如由于消歧文本中出现了额外的错误含义)。
随意地,可为控制文件优化器514提供一个最大次数的迭代。
应该明白,创建精确的置信函数很重要。一个具有差的置信函数的组件,即使有着高精度,也不会对系统精度有贡献,或者与有着最佳置信函数的组件相比对系统精度贡献较少。这种情况会在以下两种情形之一出现:
如果置信函数常常倾向于给一个正确结果低的信心值,那么合并器500A将会有效忽略该结果,因为由此通过置信度来加权结果的合并算法,其实际效应就好像所用组件根本就没有给这个词任何结果。因此,这些正确的结果就会因为这个差的置信函数而被排除。
另一方面,如果置信函数给错误的结果一个高的信心值,那么自动训练程序将会认为该算法对许多错误结果有贡献,而从运行中把该信心值排处。
应该明白给系统增加一个带有差置信函数的算法(例如,过度乐观并经常以100%的信心产生错误结果的算法)也不严格不利影响系统精度,正如上述的控制文件优化器514将会对那样的结果置疑,并且在进一步消歧迭代中将不会执行那种算法。这给系统提供了一个以抵制含有差的WSD组件的存在的健全标准(level of robustness)。
对于本领域普通技术人员来说很明显,多数WSD系统的精度随着训练语料库的大小而增加,而随着被错误标注的训练语料库而减小。训练语料库中精确词义标注文本的加入经常会增强WSD组件的效力。另外,多数WSD组件504要求为其置信函数训练留出部分词义标注语料库404。应该明白置信函数的效力随着词义标注文本的数量的增加而增大,该词意标注文本在为置信函数训练增加而留出的部分词义标注语料库404中。
词义标注语料库404可以由人类词典编纂者手工创建。但是,应该明白这将是一个耗时费钱的过程,因而找一个能自动生成或增大词义标注语料库404的方法将非常有实际价值。
参照图9,本实施例也提供了一个能为WSD组件504训练自动提供词义标注语料库404或自动增加词义标注语料库404容量的系统和方法。在图9中举例说明了两个过程。第一个是组件训练过程960。这一过程使用词义标注语料库404或未标注文本900作为对WSD组件训练模块906的输出,以给WSD组件504生成改善的组件资源。第二个过程是语料库生成过程950。这一过程通过WSD模块32来处理未标注文本900或本标注文本902。使用由WSD程序32输出的置信函数和概率分布,由过滤器模块904过滤掉可能被错误标注的含义。那么部分词义标注的文本就可被加入部分标注文本902或词义标注语料库404中。当可选择地运行这两个过程——组件训练过程960和语料库生成过程950时,效果是提高了WSD模块32的精度也增大了词义标注语料库404的容量。
如上所述,知道多数可能的WSD组件504要求在它们进行消歧文本前,先根据词义标注语料库404执行一个训练程序。例如,在先组件504A要求由词义标注语料库404纪录含义频率。这些频率被存入在WSD组件资源402中。如上所述,对于训练程序可用的词义标注文本越多,每个WSD算法504将会越精确。所有WSD组件504的训练程序集全部参照图9,如WSD组件训练程序960。
如上所述,联合几个WSD组件504的结果来对先前未见的文本消歧。这是就是一个已知的“引导”过程。
本实施例中,仅把有着足够高信心值的结果加入训练数据中。这个过程采用下列算法:
1.用组件训练程序960来训练各词义消歧的每个模块。该训练组件使用来自词义标注语料库404的可用训练数据。
2.用WSD模块32对大量未标注文档900进行消歧,优选使用来自多种域的大量文档。
3.在过滤器模块904中,舍弃所有歧义或置信度值低于可调阈值的结果。
4.把没被舍弃的含义加入词义标注语料库404中。
5.利用组件训练程序960再次训练词义消歧组件集。
6.根据词义标注语料库404中相同的文档或新的未标注文本900部分,重新开始训练。
这一过程的关键在于使用了概率分布和置信度。在现有技术系统中,没有用到置信度并且不删除错误的结果。结果,再训练扩大的词义标注语料库404后,WSD组件504没有之前精确,因而那种过程并不实用。通过设置一个高置信度阈来删除加入到词义标注语料库404的多数错误含义,本实施例弥补了现有技术系统的不足,并允许以高质量的标注文本扩大训练数据。应该明白,这一过程可以运行多次,并且可以创建一个自增强循环。该自增强循环既增大了词义标注语料库404的容量也提高了WSD系统32的精度。本实施例的特性是具有可精选训练数据的性质和引导程序的可能自增强性质。
本实施例也提供了多种上述的引导程序来训练特殊领域(如法律、健康等)系统。采用了下列多种算法:
1.用高精度方法对大量文档进行消歧,如由技术人员手工操作。使用这些被加入到词义标注语料库404的,给系统提供“播种资源”的文档。
2.使用WSD组件训练程序960训练词义消歧组件.
3.用语料库标注程序950对来自域的大量文件进行消歧,并加入到词义标注语料库404中。
很明显,相对于现有技术,本实施例有几方面优势。包括:
1.多重独立算法。本实施例通过ISC500上的一个简化接口使较多的组件一体化。同样地,多个消歧技术并非使系统太复杂而不能熟练操作(如10到20个之间)。
2.置信度函数。在现有技术系统中,没有用到置信度。置信度可为现有技术系统提供几个重要优势。
多个组件结果的共同合并。置信函数使来自不同概率统计算法的结果与不同的权重结合,这些权重显示了在一个特殊情形下所期望的算法精度。利用上述发明的置信函数,本系统可以把许多组件的结果合并到一起来获取一个更可能的含义。
为实际歧义词删除错误的结果或词义。允许删除潜在错误的结果,这种实施例可以选择不给答案中有着很低置信度的词提供含义。这较好地反映了真实的自然语言世界,其中一些表达即使通过人的分析,仍然也会存在歧义。
引导。置信函数提供了一个每个答案都正确的可能性。这使得只可保存具有高精度的结果,并且把该高精度结果再用作各组件和综合系统的训练文本。反过来附加的训练文本又进一步提高各组件和综合系统的精度。这是一个高精度引导形式,和使用人工词典编纂词义标注附加训练文本相比,以很小的花费得到了一个相同的增益。从未标注文本(如因特网)生成大量词义标注文本,该技术仅受可用计算机容量限制。现有技术执行引导程序时不使用置信度,因而反馈给系统的文本中的词义标注远不及由人类词典编纂者提供的词义标注的精度,或者能使用置信度的系统提供的词义标注的精度,并且系统综合性能迅速停滞或下降。
3.迭代消歧。本系统允许一个组件有多个进行文本消歧的通道,允许利用由任何别的组件提供的高精度消歧(或减少歧义),来提高对剩余词消歧的精度。例如,当遇到一句话中的词“cup”和“green”时,一个特定WSD组件504可能辨别不出是涉及“高尔夫”的“球洞”,还是较普通的“饮水容器”。如果另一个WSD组件504能够对词“green”消歧为“高尔夫球场”的含义,那么现在第一个组件504也能够正确消歧“golf”为“高尔夫球洞”。在这种情况下,WSD组件504互相影响得到了更多可能的含义。
4.自动调谐WSD模块32的方法。WSD模块32包括一个为各组件和参数值合并一个最佳“处方”的方法。在提供了利用多个组件的多次迭代来获取最大可能精度的参数的情形下,这种合并集合是最佳的。
5.多级歧义。通过同时对粗略和精细含义操作,本实施例可以有效地整合不同的组件。例如,运行几类语言组件尝试辨别文本主题内容时,由于常常遵从语法而不是语义特性,相对于精细含义这些类组件往往有很低的精度,但相对于粗略含义时效果很好。WSD模块32可以合并给出了精细和粗略含义的各组件结果,允许每个组件运行最适合它的含义粒度。此外,仅要求粗略含义的应用软件可以从WSD模块32获取这些。由于它们的粗劣性,这些粗略含义将会得到比精细含义更高的精度。
6.使用特殊领域数据。如果知道相关问题领域的信息,本实施例可能偏向于支持与问题领域匹配的含义。例如,如果知道一个特殊文档涉及法律领域,那么WSD模块32会提供支持法律领域中那些术语的各组件的含义分布。
7.逐步减少歧义。应该知道,现有技术系统是通过在一个单次迭代中尝试为每个词选择一个单个含义来执行消歧,这就意味着一性删除了所有歧义,从而降低了消歧精度。相反,本实施例逐步执行消歧过程,每次迭代仅删除部分歧义。
随意地,本实施例采用元数据。例如,通过允许标题中的词对消歧实施不均衡权重,可用文档标题来援助文档查询的消歧过程。
尽管参照了一些特定实施例来描述本发明,但是本领域普通技术人员很清楚在不脱离在后附权利要求中所概括的本发明范围的情况下可以进行多种变化。本领域普通技术人员对以下一个或更多的专业都具有充分的了解:计算机编程,机器学习和计算机语言学。
相关申请
本申请要求2003年8月21日提交的申请号为60/496,681的美国临时专利申请的优先权。