高效且精确的命名实体识别方法和装置与流程

文档序号:17728146发布日期:2019-05-22 02:39阅读:422来源:国知局
高效且精确的命名实体识别方法和装置与流程

本发明涉及自然语言处理(nlp),尤其涉及用于文档中的命名实体(namedentity)识别和提取的方法、技术、装置和系统,其中命名实体可以被分为类别和类型。



背景技术:

用于识别命名实体的自动化系统的目标是能够从数字文档或文本中识别和提取命名实体,并将那些命名实体分类为一个或多个预定的类或类型,例如人、城市、汽车和其他等。命名实体识别和提取结果的下游应用是前景广阔的,包括改进信息检索系统和知识提取系统等。

一种命名实体识别(ner)技术使用向量来模拟数字文档和文本中或上下文中的单词和字符。这些向量可以被视为多维空间中的单词、字符和上下文的数字表示,形成一个用于训练ner系统的训练数据集。单词的向量与其含义有直接关系。单词“in”的一个示例向量是:[0.330420.24995-0.608740.109230.0363720.151-0.55083-0.074239-0.092307-0.328210.09598-0.82269-0.36717-0.670090.429090.016496-0.235730.12864-1.09530.433340.57067-0.10360.204220.078308-0.42795-1.7984-0.278650.11954-0.126890.0317443.8631-0.17786-0.082434-0.626980.26497-0.057185-0.0735210.461030.308620.12498-0.48609-0.00802720.031184-0.36576-0.426990.42164-0.11666-0.50703-0.027273-0.53285]。

图1显示这种包括单词向量、字符向量和上下文向量的训练数据集的逻辑构成。这种预先训练的ner系统可以实现高精度,但它需要大量的向量训练数据集,使其不适合在资源有限的移动设备中使用。例如,在流行的短消息服务(sms)中交换文本消息上的ner非常受限于移动电话的计算能力和存储容量。大多数当前可用的实施只能使用正则表达式(regularexpressions)来检测电话号码或超链接。但是,电话号码和超链接并不是唯一有价值的命名实体。地理位置、名称、电话号码、日期和时间可能都是用户希望在其他应用程序中使用的重要信息。例如,用户可能想要对包含在sms消息中的位置名称执行地图搜索。能够识别这些命名实体是第一步,然后才能允许这些数据与其他应用程序和/或系统进行交换,完全自动地或至少最小的用户干预。此外,识别某些实体(如人员、组织和场所)具有挑战性,但很有价值,因为这些类型的实体经常受到时间流逝的影响,同时又是文件和短信的主要组成部分。

通常,为了构建具有高识别准确率的ner系统,需要一个较大的训练数据集,结果形成一个相当大尺寸的ner系统。因此,传统的ner可能不适合移动设备。需要一种ner系统,其只有较小存储器尺寸要求但仍能保持高识别准确率。



技术实现要素:

本发明提供了一种从数字文档和文本中识别和提取命名实体的方法和装置。根据本发明的一个方面,提供了一种基于压缩ner模型的第一阶段命名实体识别器。根据本发明的另一方面,提供了一种基于规则的第二阶段命名实体识别器。根据优选实施例,提供了一种ner系统,其结合了基于压缩ner模型的命名实体识别器和基于规则的命名实体识别器。与传统的ner系统相比,这种ner系统具有较小的存储器占用空间,又不会牺牲识别精度。此外,由于ner系统减少了内存占用,运行速度也得以提高。根据替代实施例,仅使用基于压缩ner模型的命名实体识别器的ner系统也是可行的。根据另一个实施例,基于规则的命名实体识别器可以集成在其他ner系统或设备中并与其一起工作,以提高识别准确性。

根据一个实施例,使用包括注释语料库的训练数据集来训练基于压缩ner模型的命名实体识别器,其中注释语料库是被向量表优化和参数优化而进行优化过的。向量表优化包括:通过单词向量对训练数据集中的句子进行聚类(clustering);从每个群集中选择语料库以包含在训练中,其中所选的语料库先前未被选择用于当前训练数据集;在训练数据集中省略某些数据。在一个实施例中,参数优化包括:至少使用较少消耗存储器的数据方案以代替多维字符向量,以简化字符的数据表示。在一个示例性实施例中,消耗最少内存的数据方案使用单个二进制位,其中值“1”用于以大写字母开头的单词,值“0”用于以小写字母开始的单词。这样,得到的基于压缩ner模型的命名实体识别器可以显著降低存储器的尺寸要求。

根据一个实施例,基于规则的命名实体识别器包括公共规则模块和特定规则模块。文档和文本中存在命名实体通常表现出某些共同特征。这些共同特征包括最常用的单词以及单词的词性(pos,part-of-speech)标记,其中根据一个实施例,通过遗传算法确定最佳pos标记。公共规则模块是经过共同特征训练的分类器,用以发现和识别文档和文本中的命名实体。

命名实体的不同类别或类型和语言,可以通过正则表达(regularexpression)方法具有不同的识别规则。正则表达的识别规则可以从命名实体的类别或类型和语言的命名字典中获得。例如,对于英语中命名实体的地理位置类型,正则表达的识别规则可以是“在介词之一(in,on,at,to,from和towards)之后以大写字母开头的所有单词是地理位置”。特定规则模块是另一个分类器,其通过正则表达命名实体的特定类别或类型和/或语言,使用这样的识别规则来训练。如果要识别和提取多个类别或类型和/或语言的命名实体,可以采用多个基于规则的命名实体识别器,每个命名实体识别器包含一个特定规则模块,专门针对一个类别或一个类型的命名实体训练。

【附图说明】

在下面将参考附图更详细地描述本发明的实施例,其中:

图1显示多维空间中的单词向量、字符向量和上下文向量的ner系统训练数据集的逻辑构成;

图2显示根据本发明一个实施例的ner系统的逻辑结构和数据流图;

图3显示根据本发明一个实施例的基于压缩ner模型的命名实体识别器的训练策略;

图4a显示根据本发明一个实施例的基于规则的命名实体识别器的逻辑结构和数据流图;图4b显示根据本发明另一实施例的基于规则的命名实体识别器的逻辑结构和数据流图。

【具体实施方式】

在以下描述中,作为优选示例阐述了从数字文档和文本等中识别和提取命名实体的方法和装置。在不脱离本发明范围和精神的情况下进行的修改,包括添加和/或替换,对于本领域技术人员都是显而易见的。为了不混淆本发明,省略了一些具体细节。但是,本披露能够使本领域普通技术人员在不进行过度实验的情况下实践本发明教义。

参见图2。根据本发明的一个方面,图2提供了使用压缩ner模型202来训练第一阶段命名实体识别器204(基于压缩ner模型的命名实体识别器201)。根据本发明的另一方面,提供了一种基于规则的第二阶段命名实体识别器206。根据优选实施例,提供了一个包含基于压缩ner模型的命名实体识别器和基于规则的命名实体识别器的ner系统200。

ner系统200的运行包括:基于压缩ner模型的命名实体识别器201接收输入文本203,输入文本203可以是数字文档、文本消息等;基于压缩ner模型的命名实体识别器201,在输入文本203上执行第一阶段ner,以产生第一阶段确认:是否找到命名实体。如果第一阶段确认肯定了命名实体的存在,则生成第一阶段ner结果(识别的命名实体及其各自的类别或类型)205和一个准确的识别概率。如果第一阶段确认否定了命名实体的存在,则ner系统200将输入文本203发送到基于规则的命名实体识别器206,供其处理,执行第二阶段ner。如果第一阶段确认肯定了命名实体的存在,但是准确识别概率低于一个阈值,则ner系统200可以将输入文本203发送到第二阶段ner处理,也可以将第一阶段ner结果205发送到一个ner结果合并器208。否则,如果第一阶段确认肯定了命名实体的存在,且准确识别概率等于或高于一个阈值,则第一阶段ner结果205被发送到ner结果积分器208。

ner系统200的运行还包括:基于规则的命名实体识别器206执行第二阶段ner,以生成第二阶段ner结果207(被识别的命名实体及其各自的类别或类型)。根据一个实施例,ner结果合并器208通过合并运算,来合并第一阶段ner结果205和第二阶段ner结果207。合并运算是从第一阶段ner结果205和第二阶段ner结果207(如果两者都不是空白,或者其中一个不是空白)构建一个最终ner结果。根据另一实施例,ner结果合并器207通过选择运算,来合并第一阶段ner结果205和第二阶段ner结果207。如果第一阶段ner结果205和第二阶段ner结果207都不是空白(预期第二阶段ner结果有更高的识别精度),或者其中一个不是空白,选择运算是仅从第二阶段ner结果207构建一个最终ner结果。

参考图3。根据一个实施例,使用一个训练数据集来训练基于压缩ner模型的命名实体识别器,该训练数据集包括注释语料库301,其被向量表优化302和参数优化304进行优化。向量表优化302包括:通过单词向量将训练数据集中的句子聚类到一个可配置数量的群集中;从每个群集中选择语料库以包含在训练中,其中所选择的语料库以前未被选择过,用于当前训练数据集;并在训练数据集中省略某些数据。首先通过向量表优化302来优化注释语料库301,以产生优化的注释语料库303,然后通过参数优化304进一步优化,从而生成一个压缩ner模型306,用于训练基于压缩ner模型的命名实体识别器。在一个实施例中,参数优化304被迭代地应用于训练数据集,其中每次参数优化随后是ner测试305,然后是进一步的参数优化,重复直到识别精度开始降低。一旦识别精度开始显著降低,在最后一个之前的压缩ner模型306用于训练基于压缩ner模型的命名实体识别器。

根据一个实施例,在训练数据集中省略数据是为了使用单个单词向量来表示具有相同或相似含义的单词。例如,在一个群集中找到的语料库“inthegarden”和“atthepark”可以由一个向量表示(可以是“in”的向量、“at”的向量、或者是“in”和“at”两者平均或中位数的新向量)来表示“in”和“at”,以及另一个矢量(可以是“garden”的向量、“park”的向量、或者是“garden”和“park”两者平均或中位数的新向量)来表示“garden”和“park”。

在一个实施例中,参数优化304包括以下一个或多个:减少训练数据集的单词向量空间维度;减少训练数据集的字符向量空间维数;使用较少消耗存储器的数据方案代替多维字符向量来简化字符的数据表示。在一个示例性实施例中,消耗最少内存的数据方案使用单个二进制位,其中值“1”用于以大写字母开头的单词,值“0”用于以小写字母开始的单词。换言之,这个示例性的减少字符向量空间维度的实施例,将字符向量空间维度减少到一维。迭代参数优化可以采用一个或多个方案来减少每次迭代中的单词向量空间维度和/或字符向量空间维度的维度数量。目的是在识别精度开始降低之前迭代地减少尽可能多的维度并进而减少训练数据集的数据存储器消耗。

参考图4a和4b。根据一个实施例,基于规则的命名实体识别器206a或206b包括公共规则模块401a或401b以及特定规则模块402a或402b。文档和文本中存在的命名实体通常表现出某些共同特征。这些共同特征可能包括最常用的单词以及单词的pos标记,其中,根据一个实施例,最佳pos标记是通过遗传算法方法确定。公共规则模块是利用这些共同特征来训练的一个分类器,以识别输入文本203中的命名实体。

根据一个实施例,公共规则模块401a或401b的训练策略包括:将包含语料库的训练数据集中的每个句子分成由共同特征确定的单词;提取最常出现在训练数据集中的前n个单词(前n个最常用的单词);使用这前n个最常用单词构建n个特征,前n个最常用单词中的每个单词都有一个标签,表示该单词的相应句子是否具有一个命名实体。公共规则模块401a或401b的训练数据集可以和用于基于压缩ner模型的命名实体识别器的注释训练数据集相同。

根据一个优选实施例,由遗传算法方法确定的pos标记还被进一步应用于前n个单词,使得前n个单词中仅具有确定标记的那些单词被放入用于训练公共规则模块的特征列表中。根据另一实施例,确定的pos标记与前n个单词一起被包含在特征列表中。

不同类别或类型和语言的命名实体,可以通过正则表达方法具有不同的识别规则。正则表达式的识别规则可以从命名实体的类或类型和语言的命名字典中获得。例如,对于英语中命名实体的地理位置类型,正则表达式的识别规则可以是“在介词之一(in,on,at,to,from和towards)之后以大写字母开头的所有单词是一个地理位置”。特定规则模块402a或402b是另一个分类器,其通过一个特定类别或类型和语言的命名实体的正则表达的这些识别规则来训练。如果要从输入文本203中识别和提取多个类别或类型和/或语言的命名实体,可以采用多个基于规则的命名实体识别器206a或206b,其中每个都具有一个特定规则模块402a或402b,专门训练以识别其各自的类别或类型和语言的命名实体。但是,公共规则模块401a或401b仅需要被训练一次,可以在所有基于规则的命名实体识别器206a或206b中被重新使用。

参考图4a。根据一个优选实施例,基于规则的命名实体识别器206a被安排成使得其公共规则模块401a和特定规则模块402b能够串行运行。在该实施例中,输入文本203仅由公共规则模块401a接收用于ner,结果是确定输入文本203是否包含命名实体;如果是,输入文本203由特定规则模块402b处理,用于ner以生成第二阶段ner结果207。

参考图4b。根据一个替代实施例,基于规则的命名实体识别器206b被安排成使得其公共规则模块401b和特定规则模块402b能够并行运行。在该实施例中,输入文本203由公共规则模块401b和特定规则模块402b两者接收用于ner,结果是被识别和提取的命名实体。然后,在合并运算中将被识别和提取的命名实体合并,以生成第二阶段ner结果207。

在此披露的实施例可以使用通用或专用计算设备、计算机处理器或电子电路包括但不限于专用集成电路(asic)、现场可编程门阵列(fpga)以及依照本发明教义而配置或编程的其他可编程逻辑设备来进行实施。根据本发明的教义,软件或电子领域的技术人员可以容易地准备计算机指令或软件代码,在通用或专用计算设备、计算机处理器、或可编程逻辑设备中运行。

电子实施例的全部或部分可以在一个或多个通用或计算设备中执行,包括服务器计算机、个人计算机、膝上型计算机、移动计算设备如智能电话和平板计算机。

电子实施例包括计算机存储介质,其中存储有计算机指令或软件代码,其可用于对计算机或微处理器进行编程以执行本发明的任何过程。存储介质包括但不限于软盘、光盘、蓝光盘、dvd、cd-rom和磁光盘、rom、ram、闪存设备、或适用于存储指令、代码和/或数据任何类型的介质或设备。

本发明的各种实施例还可以在分布式计算环境和/或云计算环境中实现,其中整个或部分机器指令是通过由通信网络(例如内联网、广域网(wan)、局域网(lan)、internet和其他形式的数据传输介质)互连的一个或多个处理设备以分布式方式执行。

已经出于说明和描述的目的提供了本发明的前述描述。其并非旨在穷举或将本发明限于所公开的精确形式。许多修改和变化对于本领域技术人员来说是显而易见的。

所选择和描述的实施例是为了最好地解释本发明的原理及其实际应用,从而使得本领域普通技术人员能够理解本发明的各种实施例,并可以作出适合于预期特定用途的各种修改。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1