发明内容
为了解决在分词的基础上进行的命名实体的识别,分词错误和它导致的信息丢失会影响识别效果的问题,本发明实施例提供了一种基于最大熵模型建模的方法,包括:
输入标注命名实体的训练文本;
对所述训练文本中的字符进行角色标注,得到带有字符角色标注的训练文本;
根据字符角色标注,建立所述字符的特征项;
将所述字符的特征项输入到最大熵的建模工具中,得到基于字符角色标注的数据模型。
本发明实施例还提供一种命名实体识别的方法,包括:
加载如前所述的基于字符角色标注的数据模型;
输入待识别文本,建立待识别文本中各字符的特征项,得到待识别文本字符特征项序列;
将待识别文本中字符特征项序列,输入到所述基于字符角色标注的数据模型中,得到具有最大产生概率的待识别文本字符角色标注序列;
对待识别文本字符角色标注序列的标注名称模式匹配,得到命名实体。
本发明实施例还提供一种基于最大熵模型建模的装置,包括:
输入模块:用于输入标注命名实体的训练文本;
标注模块:用于对所述训练文本中的字符进行角色标注,得到带有字符角色标注的训练文本;
建立模块:用于根据字符角色标注,建立所述字符的特征项;
建模模块:用于将所述字符的特征项输入到最大熵的建模工具中,得到基于字符角色标注的数据模型。
本发明实施例还提供一种命名实体识别的装置,包括:
加载模块:用于加载基于字符角色标注的数据模型;
特征项生成模块:用于输入待识别文本,建立待识别文本中各字符的特征项,得到待识别文本字符特征项序列;
角色标注生成模块:用于将待识别文本中字符特征项序列,输入到所述基于字符角色标注的数据模型中,得到具有最大产生概率的待识别文本字符角色标注序列;
匹配模块:用于对待识别文本字符角色标注序列的标注名称模式匹配,得到命名实体。
由上述本发明提供的具体实施方案可以看出,由于建立了基于字符角色标注的数据模型,并通过该数据模型进行命名实体的识别,不需分词,这就解决了进行命名实体识别时,因为分词错误和它导致的信息丢失而影响识别效果的问题。
具体实施方式
在本发明具体实施例的技术方案中,采用最大熵模型,充分利用多种语言学信息,直接对字符进行角色标注,得到具有最大概率的角色标注序列,并通过简单的标注名称模式匹配,来有效标识命名实体,如人名、地名和组织名。
我们认为句中的每个字符都隐含地携带了一个角色信息(角色是字符本身的属性)。本发明中的字符角色就是单个字符在命名实体中或句子所起的作用。角色标注就是把句子中的单字符的角色标注出来。这些角色可以是一个地名(人名)的第一个字符、也可是一个地名(人名)的最后一个字符或者一个地名(人名)的中间字符等等。如在人名、地名识别中,定义多种角色,在文本“张三去北京市看望小李”中,我们可以定义张三的“张”的角色为姓氏、小李的“小”的角色为姓名前缀、北京市的“市”角色为地名后缀。我们可以根据不同的需要,定义不同的角色信息,在本发明中,我们优选的方案是定义了15种角色信息,具体角色信息如下表所示:
标注ID |
含意 |
示例 |
1 |
一般词的单字词 |
熵 |
2 |
姓名首字符 |
王天明 欧阳修 |
3 |
姓名中间字符 |
王天明 欧阳修 |
4 |
姓名尾字符 |
王天明 欧阳修 |
5 |
一般词首字符 |
共产党 |
6 |
一般词中间字符 |
共产党 |
7 |
一般词尾字符 |
共产党 |
8 |
地名首字符 |
北京市区 |
9 |
地名中间字符 |
北京市区 |
10 |
地名尾字符 |
北京市区 |
11 |
机构名首字符 |
中国最高人民法院 |
12 |
机构名中间字符 |
中国最高人民法院 |
13 |
机构名尾字符 |
中国最高人民法院 |
14 |
语法派生词(MDW) |
高高兴兴 |
15 |
FACTOID实体名称 |
2006年7月16日 |
在本发明中,我们采用最大熵模型。在最大熵模型(Ratnaparkhi A.1997.)的架构下,利用各种有效的语言学特征信息(语言学特征信息就是字符对上下文产生影响的属性,如北京市的“市”往往作为一个地名的后缀,因此它的一个语言学特征信息就是地名后缀、小张的“小”它的一个语言学特征信息就是人名前缀等),建立基于上下文语境(上下文语境指选定字符前后字符的属性,如字符角色、字符类型等)和角色标注信息的最大熵模型。
关于事件概率p的熵的定义如下:
最大熵概率模型被定义在空间H×T上,其中H代表所有上下文中特征的集合,一个选定字符的上下文范围可选择为前后各两个字符,特征包括字符本身的特性和语言学特征信息,T代表一个字符所有可能的角色标记集合,hi代表给定一个特定上下文,ti代表某一特定角色标记。
给定一个特定上下文hi,特定角色标记ti的条件概率如公式(1)所示:
公式(1)表示给定一个特定上下文hi,特定角色标记ti的概率在整体概率中占多少比率,整体概率指给定一个特定上下文hi,各种特定角色标记ti的概率之和。
其中
公式(2)表示在给定上下文环境hi,下得到特定角色标记ti的概率,在公式(2)中是π是正则化常数,而{μ,α1,α2,...αn}是模型参数,{f1,f2,...,fn}被称为特征函数。参数αj表示第j个特征的权重。特征用一个特征函数fj来体现,特征函数为一个二值函数,特征函数形式如下:
wi为要进行处理的字符,suffix(wi)为该字符的后缀特征。
对于每一个特征函数fj(hi,ti),模型的约束情况是:模型所建立的条件概率分布的期望值要与训练样本表现出来的分布的期望值相等。参数{μ,α1,α2,...αn}是为了选择最大化训练数据关于概率分布p的可能性,优化概率分布p的最大熵值为目标。
我们可以根据不同的需要,确定不同的特征函数,本发明优选的特征函数如下:
1)在有限的上下文环境中是否包含人名前后缀信息。如:小(刘),(张)老师等词。
2)在有限的上下文环境中是否包含地名后缀,以及该后缀名的长度。
3)在有限的上下文环境中是否包含机构名后缀,以及该后缀名的长度。
4)在有限的上下文环境中是否包含姓氏或者外文译名信息。
5)在有限的上下文环境中是否包含地名信息。
6)当前字符是否是某个特定含义字符。
7)当前字符的后续两个字符是否是某两字字符串。
8)当前字符的前面两个字符是否是某两字字符串。
本发明提供的第一实施例是一种基于最大熵模型建模的方法,该第一实施例的方法流程如图1所示,包括:
步骤100:输入标注中文人名、中文地名信息的训练文本,根据前面我们所定义的角色信息,对每个字符进行角色标记的标注,从而建立起用于角色标注的训练文本。
输入标注了中文人名、地名信息的训练文本:[P钱其琛]访问[L德班],其中P表示中文人名,L表示中文地名。
通过程序处理后,我们得到训练文本的字符角色标注,如下:
钱/2其/3琛/4访/5问/7德/8班/10,根据前面优选方案定义的15种角色信息,具体角色标注为其中“2”就代表“姓名首字符”、“3”就代表“姓名中间字符”、“4”就代表“姓名尾字符”、“5”就代表“一般词首字符”、“7”就代表“一般词尾字符”、“8”就代表“地名首字符”、“10”就代表“地名尾字符”,这样我们也就可以知道各个字符的角色了。
步骤101:读入训练文本,选定一个字符,根据字符角色标注,基于每个字符的上下文语境,建立该字符特征项,并把这些特征项输出到特征文件或写到内存中。
在有些句子如:“好!”中因为只是由单字符组成,没有上下文,那么该字符的特征项就只要包括:选定字符本体、选定字符的角色和它的字符类型(数字,英文字母,符号和一般等)就可以了。根据不同的需求,特征项包括的内容可以不同,如一个选定字符特征项可以包括:选定字符的前几个字符的字符类型,选定字符本体、选定字符的角色和它的字符类型(数字,英文字母,符号和一般等),选定字符的后几个字符本体和它们的字符角色,以及各个字符组合等。或一个选定字符特征项可以包括:选定字符的前几个字符的角色,选定字符本体、选定字符的角色和它的字符类型,选定字符的后几个字符本体和它们的字符类型,以及各个字符组合。因此不难理解上下文语境也可以包括选定字符的前几个字符的字符类型和/或字符角色,还可以包括选定字符的后几个字符的字符类型和/或字符角色,还可以包括以上的组合。
在本发明优选的方案中,一个选定字符特征项主要包括:选定字符的前两个字符的角色,选定字符本体、选定字符的角色和它的字符类型(数字,英文字母,符号和一般等),选定字符的后两个字符本体和它们的字符类型,以及各个字符间两两组合(组合的词);还可以包含选定字符语言学特征信息:如人名前缀,人名后缀,人首姓,外文名,机构名后缀,地名后缀,地名信息等,比如训练文本是“钱其琛访问德班市”,其中的“市”字的语言学特征信息就是地名后缀。选定字符“钱”字特征项构成如下:句首字(无前面的字符)、字符本体为“钱”、类型为一般、角色为姓名首字符、后第一个字符本体为“其”类型为一般、后第二字符本体为“琛”类型为一般、后一二字符组成的词组为其琛等。
同样我们选定其它字符,得到其它字符“其”、“琛”、“访”、“问”、“德”、“班”的特征项,将这7个字符的特征项形成一个特征文件。
步骤102:利用现成的最大熵模型工具箱,输入特征文件,得到基于字符角色标注的数据模型。如果这些特征项是写到内存中,则从内存中读出所述字符的特征项,并输入到最大熵的建模工具中。输入特征文件及写入内存再读取,是本发明事实例优选的将特征项输入到最大熵的建模工具中的方法,现有技术中还有其它的技术手段可以实现,都是本领域公知的技术手段,这里不再赘述。
步骤103:为了不断的丰富该数据模型,需要不断的输入标注了中文人名、中文地名信息的新训练文本,重新执行步骤100-步骤102。
本发明提供的第二实施例是一种命名实体识别的方法,第二实施例的流程如图2所示,包括:
步骤200:加载实施例1中得到基于字符角色标注的数据模型。
步骤201:输入待识别文本。对于待识别文本中的每个字符,利用该字符的上下文语境,建立该字符的特征项,如:待识别的文本为“王天明去图县旅游了”,建立“王”字的特征项,构成如下:句首字、字为“王”、类型为一般、后第一个字为“天”类型为一般、后第二字为“明”类型为一般、后一二字组成的词组为天明、角色为待定等。
步骤202:将待识别文本中的9个字符特征项组成的序列输入到基于字符角色标注的数据模型中,得到具有最大产生概率的字符角色标注序列:王/2天/3明/4去/5图/8县/10旅/5游/7了/5。
步骤203:通过简单的标注名称模式匹配,得到命名实体及切分结果如下:
2+3+4为人名,5+7为一般词8+10为地名,
人名:王天明
地名:图县
切分结果如下:[P王天明]去[L图县]旅游了。
本发明提供的第三实施例是一种基于最大熵模型建模的装置,其结构如图3所示,包括:
输入模块:用于输入标注命名实体的训练文本;
标注模块:用于对所述训练文本中的字符进行角色标注,得到带有字符角色标注的训练文本;
建立模块:用于根据字符角色标注,建立所述字符的特征项;
建模模块:用于将所述字符的特征项输入到最大熵的建模工具中,得到基于字符角色标注的数据模型。
本发明提供的第四实施例是一种命名实体识别的装置,其结构如图4所示,包括:
加载模块:用于加载第三实施例中的基于字符角色标注的数据模型;
特征项生成模块:用于输入待识别文本,建立待识别文本中各字符的特征项,得到待识别文本字符特征项序列;
角色标注生成模块:用于将待识别文本中字符特征项序列,输入到所述基于字符角色标注的数据模型中,得到具有最大产生概率的待识别文本字符角色标注序列;
匹配模块:用于对待识别文本字符角色标注序列的标注名称模式匹配,得到命名实体。
由上述本发明提供的具体实施方案可以看出,由于建立了基于字符角色标注的数据模型,并通过该数据模型进行命名实体的识别,无需分词,这就解决了进行命名实体识别时,因为分词错误和它导致的信息丢失而影响识别效果的问题。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。