一种基于统计与条件随机场的复杂中文地名识别方法与流程

文档序号:18232574发布日期:2019-07-24 08:24阅读:307来源:国知局
一种基于统计与条件随机场的复杂中文地名识别方法与流程

本发明涉及地名识别技术领域,尤其涉及一种基于统计与条件随机场的复杂中文地名识别方法。



背景技术:

地名是人们对特定空间位置的文本标识,是自然语言中最重要的一类地理信息实体。地名识别作为自然语言处理中命名实体识别的一个重要分支,是数字文本空间信息形式化最基础、最底层的工作,其准确性将直接影响到后续的地名地址识别、地理编码等工作的精准度和有效性。而中文地名的识别是针对中文语言环境下数字文本中的地理空间实体的提取。

农资成产企业分布广泛,其生产、存储、运输及销售过程中的数据具有海量、特征多样、信息量大、冗余度高以及更换环节多等特点。由于产品种类繁多,流通环节复杂,这些信息大多是以批次为单位,借助于云平台以文本记录的形式上传到网络,而且越接近消费者的流通环节越是如此。因此要实现单个产品的溯源,就需要使用中文地名提取技术,针对记录中非结构化的文本信息,准确提取出农资产品流通中的关键空间节点信息,结合后续的地名关系的提取技术,构建溯源过程中描述地址语义和空间转移特征的地名-关系图,并以此为基础,通过构建多层次的高可用性的溯源信息平台,实现地名-关系图的存储和分析,使用图挖掘以及深度学习技术,对地名-关系图的简化,消除地名地址歧义,明确物流中的各个空间转移环节,并结合相关的专家知识,在溯源过程中实现异常节点的实时监测和预警,及时发现和解决农资物流中的质量安全问题,从而为溯源信息系统提供可靠的技术支撑。

综合来看,中文地名识别作为产品溯源等基于位置信息的应用的最基本的环节,其识别精度直接影响了产品最终的的质量。而由于中文地名用字以、用字搭配的丰富性以及网络文本的复杂性,现有的识别技术在复杂地名、地名歧义以及地名简称等方面的识别效果还有待提高,因此针对中文地名识别技术的研究有着巨大的科研和社会生产实践价值。



技术实现要素:

本发明的目的在于克服现有技术中存在的上述问题,提供一种基于统计与条件随机场的复杂中文地名识别方法,能够识别文字源中的复杂地名,并且能够准确地将文字源中的地名进行输出。

为实现上述技术目的,达到上述技术效果,本发明是通过以下技术方案实现:

一种基于统计与条件随机场的复杂中文地名识别方法,包括如下步骤:

S100、制作复杂地名语料库:通过爬取权威网站NGAC的地质文章标题数据,制作复杂地名语料库;

S200、生成关联性词典:根据复杂地名语料库进行字频以及词频的统计,生成关联性词典;

S300、复杂地名识别:记录待识别原文中的相邻词之间的关联性并通过与关联性阈值比较进行复杂地名的字词连接,最终将识别的地名进行输出;

S400、训练关联性阈值:采用中国地名数据建立关联性字典,用复杂地名语料库制作训练数据和测试数据,训练复杂地名识别模型的阈值,并将所有关联性数值中的最小值作为新的阈值。

优选地,上述基于统计与条件随机场的复杂中文地名识别方法中,步骤S200中生成关联性词典的具体步骤为:

S201、统计字频:从左到右扫描一遍复杂地名语料库,对于已经在词典中的字,将其计数加1,否则将该字加入词典,计数初始化为1;

S202、统计词频:从左到右扫描一遍语料,以相邻二字为词单位,对于已经在词典中的词,将其计数加1,否则,将该词加入词典,计数初始化为1。

优选地,上述基于统计与条件随机场的复杂中文地名识别方法中,步骤S300中复杂地名的识别步骤为:

S301、将复杂地名观测序列S按序拆分成单字序列A= [‘S1’,…‘Si’,…‘Sn’],并设置对应的标记数组T,用于记录单字序列中相邻字之间的关联性,T[i]对应记录Si与Si+1的关联性,标记数组的长度应为n-1,数组所有值初始化为-1;

S302、按照从左往右的顺序依次选择A中的一个字‘Si’作为中心字,并计算与其相邻的单字‘Si-1’,‘Si+1’的关联性Ci-1,Ci,,并更新T。在中心字为‘Si’时,当T[i-1]=Ci-1’且Ci-1’不等于0,则T[i-1]=(Ci-1’+Ci-1)/2, 否则,T[i-1]=Ci-1,直至执行完所有中心字的关联性计算,最终得到记录所有关联性数据的数组T;

S303、依据T对S进行切分,若T[i]=0或T[i]小于关联性阈值,则将A[i]与A[i+1]切分开,否则将A[i]与A[i+1]连接起来,得到最终的输出S’,S’中所有长度大于1词就是识别出的复杂地名,识别完成并输出。

优选地,上述基于统计与条件随机场的复杂中文地名识别方法中,步骤S303中,关联性阈值的初始值为0。

优选地,上述基于统计与条件随机场的复杂中文地名识别方法中,步骤S301中,单字序列中相邻字之间关联性计算公式为:

(1)当a为中心字,b为a右侧相邻字时,关联性为:

(2)当a为中心字,b为a左侧相邻字时,关联性为:

其中:为点互信息,p(a,b)是词ab在语料库中出现的概率,p(a),p(b)分别是字a、b在语料库中出现的概率,为左信息熵,为右信息熵。

优选地,上述基于统计与条件随机场的复杂中文地名识别方法中,步骤S400中,关联性阈值的训练方法为,根据已制作的复杂地名语料库,将阈值初始化为0,并利用步骤S300中识别流程,对测试数据中的地名进行识别,当识别完成后,统计正确识别的地名以及对应的关联性数值,以所有关联性数值中的最小值作为新的阈值。

优选地,上述基于统计与条件随机场的复杂中文地名识别方法中,步骤S400中统计计算出的关联性阈值赋值到到步骤S300中的关联性阈值,进行识别过程中关联性阈值的初始化。

本发明的有益效果是:

(1)本发明设计了一种基于信息熵和点互信息的复杂地名识别算法,该算法利用地名数据库生成关联性词典,并基于该词典对文本相邻用字之间的关联性进行计算,从而确定复杂地名与上下文的边界,最终实现复杂地名的识别;

(2)本发明将规则识别方法直接作用于原文,并且使用地名特征词对原文中的疑似地名位置进行粗略的定位,再结合探测窗口和规则集合进一步确认或排除,该方法能够将现有的规则集合高效的利用于地名识别,能够更好的与CRF模型配合,提高补召效果,大大提升了复杂地名的识别准确率。

当然,实施本发明的任一产品并不一定需要同时达到以上所述的所有优点。

附图说明

为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明的基于统计与条件随机场的复杂中文地名识别方法流程图。

具体实施方式

下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。

请参阅图1所示,本实施例为一种基于统计与条件随机场的复杂中文地名识别方法,包括如下步骤:

S100、制作复杂地名语料库:通过爬取权威网站NGAC的地质文章标题数据,结合《现代汉语语料库加工规范》制作了复杂地名语料库,为复杂地名的识别提供训练和验证的可靠语料;

S200、生成关联性词典:根据复杂地名语料库进行字频以及词频的统计,生成关联性词典,具体步骤为:首先统计字频:从左到右扫描一遍复杂地名语料库,对于已经在词典中的字,将其计数加1,否则将该字加入词典,计数初始化为1;然后统计词频:从左到右扫描一遍语料,以相邻二字为词单位,对于已经在词典中的词,将其计数加1,否则,将该词加入词典,计数初始化为1。

S300、复杂地名识别:记录待识别原文中的相邻词之间的关联性并通过与关联性阈值比较进行复杂地名的字词连接,最终将识别的地名进行输出,地名识别的步骤具体为:

首先将复杂地名观测序列S按序拆分成单字序列A=[‘S1’,…‘Si’,…‘Sn’],并设置对应的标记数组T,用于记录单字序列中相邻字之间的关联性,T[i]对应记录Si与Si+1的关联性,标记数组的长度应为n-1,数组所有值初始化为-1,在本步骤中,步骤S301中,单字序列中相邻字之间关联性计算公式为:

(1)当a为中心字,b为a右侧相邻字时,关联性为:

(2)当a为中心字,b为a左侧相邻字时,关联性为:

其中:为点互信息,p(a,b)是词ab在语料库中出现的概率,p(a),p(b)分别是字a、b在语料库中出现的概率,为左信息熵,为右信息熵。

然后按照从左往右的顺序依次选择A中的一个字‘Si’作为中心字,并计算与其相邻的单字‘Si-1’,‘Si+1’的关联性Ci-1,Ci,,并更新T。在中心字为‘Si’时,当T[i-1]=Ci-1’且Ci-1’不等于0,则T[i-1]=(Ci-1’+Ci-1)/2, 否则,T[i-1]=Ci-1,直至执行完所有中心字的关联性计算,最终得到记录所有关联性数据的数组T;

最后依据T对S进行切分,若T[i]=0或T[i]小于关联性阈值,则将A[i]与A[i+1]切分开,否则将A[i]与A[i+1]连接起来,其中关联性阈值起始值为0,如此,得到最终的输出S’。S’中所有长度大于1词就是识别出的复杂地名,识别完成并输出。

S400、训练关联性阈值:采用中国地名数据建立关联性字典,用复杂地名语料库制作训练数据和测试数据,训练复杂地名识别模型的阈值,并将所有关联性数值中的最小值作为新的阈值,并将新的关联性阈值赋值到步骤S300中的关联性阈值中,提升了复杂地名识别的准确率。

其中关联性阈值的训练方法为:根据已制作的复杂地名语料库,将阈值初始化为0,并利用步骤S300中识别流程,对测试数据中的地名进行识别,当识别完成后,统计正确识别的地名以及对应的关联性数值,以所有关联性数值中的最小值作为新的阈值。

本发明设计了一种基于信息熵和点互信息的复杂地名识别算法,该算法利用地名数据库生成关联性词典,并基于该词典对文本相邻用字之间的关联性进行计算,从而确定复杂地名与上下文的边界,最终实现复杂地名的识别,另外本发明将规则识别方法直接作用于原文,并且使用地名特征词对原文中的疑似地名位置进行粗略的定位,再结合探测窗口和规则集合进一步确认或排除,该方法能够将现有的规则集合高效的利用于地名识别,能够更好的与CRF模型配合,提高补召效果,大大提升了复杂地名的识别准确率。

在本说明书的描述中,参考术语“一个实施例”、“示例”、“具体示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上公开的本发明优选实施例只是用于帮助阐述本发明。优选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本发明的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本发明。本发明仅受权利要求书及其全部范围和等效物的限制。

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