法律状态公告日
法律状态信息
法律状态
2019-06-28
专利权的转移 IPC(主分类):G06F17/27 登记生效日:20190612 变更前: 变更后: 申请日:20160926
专利申请权、专利权的转移
2018-11-30
授权
授权
2017-03-08
实质审查的生效 IPC(主分类):G06F17/27 申请日:20160926
实质审查的生效
2017-02-08
公开
公开
技术领域
本发明涉及自然语言处理技术领域,涉及深度学习、词向量应用及命名实体识别。尤其涉及一种少数民族地区地名识别方法。
背景技术
实体识别是自然语言处理的基础工作。在MUC-7会议中,命名实体(Named Entity)被明确细化为7类名词实体:人名、地名、机构名、日期、时间、金额和百分比数值。地名作为实体中的重要组成部分其识别的准确性对后续信息抽取、信息检索、信息推荐和机器翻译等任务有着重要的影响。尤其是地名作为地理信息的重要线索,其识别的准确程度直接影响地理信息系统等对信息的定位及相关的进一步应用。少数民族地区的地名由于其与民族特性的相关联系,其地名一般较长,并且名字的各个字之间未必成词。这些特点直接影响其识别的精度。虽然中文中地名的识别率已经相对较高,但通常的命名实体识别方法对少数民族地区的地名识别效果不够理想。
在现有的技术中,识别地名的方法有如下几种:1、通过从大规模地名词典和真实文本语料库得到的统计信息以及针对地名特点总结出来的规则,通过计算地名的构词可信度和接续可信度从而识别中文地名;2、以带特征词的中文地名和不带特征词的中文地名作为识别对象,通过构建地名识别规则库,以及对规则库中规则的量化处理来体现规则在识别地名中的可信程度的不同;3、支持向量机(SVM)、最大熵或CRF等统计模型中文地名自动识别方法:按字或词抽取特征向量的属性,然后将这些属性转换成对应模型能够接受的形式并进行模型训练,在通过得到机器学习模型来识别地名;4、在基于统计模型识别地名的基础上,通过对错误识别结果的分析,构建规则库对识别结果进行后处理。
以上方法的研究对象都不是针对少数民族地区的地名,对在地名库中出现较少,名字长且比较奇怪的少数民族地区的地名识别效果都会受到影响。另外,传统的识别方法或者需要规则的制定,或者需要特征的提取,成本高且可移植性不强。本发明提出的方法,通过文本词向量的训练,将字和词的上下文特征蕴含于词向量中,利用深度学习的原理,将地名训练语料的数字化信息和标识作为输入,通过循环神经网络模型训练,得到中文中少数民族地区地名的识别模型。进而通过该模型实现少数民族地区地名的识别。该方法针对少数民族地区地名设计,具有较好的可移植性。
发明内容
本发明对中文中少数民族地区地名提出了针对性的识别方法。通过深度学习手段:词向量的构建、模型的训练来识别少数民族地区地名,不需要繁复的规则制定和困难的特征提取。
本发明的技术方案:
一种基于深度学习的中文少数民族地区地名的识别方法,包括以下步骤:
步骤1:对语料进行预处理;
步骤2:词向量训练;
步骤3:模型训练;
步骤4:少数民族地区地名识别及后处理。
进一步的,步骤1中所述对语料进行预处理,对包含少数民族地区地名的中文语料进行预处理操作,具体包括以下几个子步骤:
步骤(a):利用中文分词工具对中文文本进行分词;
步骤(b):对步骤(a)中已分词后的语料进行数字化处理;
步骤(c):为步骤(a)每一个分词分配少数民族地区地名标注标签,并对其进行数字化表示;采用BIO标识少数民族地区地名的开始、接续和非地名表示,数字化替代1代表B、2代表I、0代表O。
进一步的,步骤2中所述词向量训练,包括以下子步骤:
步骤(a):初始词向量训练,将分好词、未标注的大规模语料采用skip-gram模型进行训练;
步骤(b):字向量训练,采用如下字词联合训练方案来取得字向量的值,字向量训练采用skip-gram模型;
Skip-gram模型的优化目标为,w的上下文中的某个词对wj对词w的条件概率:
式中:
其中V表示词表,优化上下文中某个词wj对目标词w的条件概率,以及上下文词中各个的汉字chk对目标词w的条件概率:
式中,D表示数据集,wj表示文本序列中的第j个词,c为wj的上下文,chk表示词wj中的汉字,|wj|表示词wj的字数,0<β<1为加权系数,其中归一化项用于使不同字数的词在训练中拥有同样的地位;
步骤(c):最终词向量取得由两部分组成:词本身初始词向量和组成这个词的汉字字向量,训练过程中,使用词本身的初始词向量以及组成这个词的各个字向量的平均值表示这个词的语义。
进一步的,步骤3中所述模型训练,采用循环神经网络模型进行训练,具体包括以下几个子步骤:
步骤(a):首先根据模型的窗口参数win的大小,将当前词的前win/2和后win/2个词所对应的词向量进行首尾相接,组合成新的词向量表示当前词,没有前词和后词使用-1表示;
步骤(b):将句子进行分块操作,保证每一个块的长度不长于参数值bs的大小;
步骤(c):将步骤(b)中的每一个块作为一个示例进行模型的训练,将步骤(a)中合并的词向量和前一步隐含层的输出作为模型输入,得到隐含层,如公式所示:
hi=sig(xi·Wxh+hi-1·Whh+bh)
式中,sig为神经元节点的激活函数,取sig(z)=1/(1+e-z),xi表示第i个词的词向量,hi-1表示隐含层第i-1个节点的输出,Whh表示前一隐含层节点与当前隐含层节点的权重,Wxh表示当前输入层节点与当前隐含层节点的权重,hi表示当前隐藏层节点的输出;
然后,利用隐含层输出计算模型输出层第i个节点输出ci,如公式所示:
ci=soft(hi·Whc+ci-1·Wcc+bc)
式中,hi表示隐含层第i个节点的输出,ci-1表示输出层第i-1个节点的输出,Wcc和Whc分别表示前一输出层节点与当前输出层节点的权重和当前隐藏层节点与当前输出层节点的权重。soft为softmax激活函数,k为输出层节点数,zi=hi·Whc+ci-1·Wcc+bc为输出层第i个节点的输入值。
进一步的,步骤4所述少数民族地区地名识别及后处理包括以下子步骤:
步骤(a):利用步骤3训练得到循环神经网络模型,在未标注数据上进行测试,识别未标注数据中的少数民族地区地名作为目标地名;
步骤(b):将数字化标识转换回BIO模式并按需求呈现识别结果。
有益效果:利用本发明能有效的降低在少数民族地区地名识别时特征选取的复杂性,充分利用未标注语料中蕴含的丰富的句法和语法信息,提高了少数民族地区地名识别的精度,增加模型的泛化能力。
附图说明
图1为本发明一种基于深度学习的中文少数民族地区地名的识别方法流程图;
图2为本发明采用的词向量训练流程图;
图3为本发明实施的RNN地名识别模型的示例性示意图。
具体实施方式
下面结合附图和具体实施方式对本发明进行详细描述。
图1显示了本发明地名识别方法的流程。需要对语料进行预处理,将文本序列化、标注数字化,并将文本替换为训练好的词向量来训练循环神经网络模型对模型进行构建。训练好了识别模型,就可以利用它来对预处理后的测试语料进行测试识别。识别后再进行必要的后处理。下面结合图1对本发明加以详细说明。
一种基于深度学习的中文少数民族地区地名的识别方法,包括以下步骤:
步骤1:对语料进行预处理:我们使用从网上下载的包含少数民族地区地名的中文语料,对其进行预处理操作,具体包括以下几个子步骤:
步骤(a):利用中文分词工具对中文文本进行分词;
步骤(b):对步骤(a)中已分词后的语料进行数字化处理;
步骤(c):为步骤(a)每一个分词分配少数民族地区地名标注标签,并对其进行数字化表示。采用BIO标识少数民族地区地名的开始、接续和非地名表示,数字化替代1代表B、2代表I、0代表O。
步骤2:词向量训练:在神经网络模型中,使用词向量表示词。为保证词向量的质量,本发明采用字、词结合的词向量来更确切地表达,大规模语料集中的句法、语义等丰富的信息。
步骤(a):初始词向量训练。将分好词、未标注的大规模语料使用Word2Vec工具,采用skip-gram模型进行训练,采样阈值取5,词向量维度设定100维。
步骤(b):字向量训练。因少数民族地区地名的特殊性,有较高比例的地名中各个字之间未必成词,所以考虑字向量。单独训练字向量虽然相对方便、简单,但它又常常丢失其作为词的上下文含义。所以本发明采用如下字词联合训练方案来取得字向量的值。字向量训练采用skip-gram模型。
Skip-gram模型的优化目标为,w的上下文中的某个词对wj对词w的条件概率:
式中:
其中,V表示词表(单词的集合)。
为了实现字词联合训练,本文提出同时优化上下文中某个词wj对目标词w的条件概率,以及上下文词中各个的汉字chk对目标词w的条件概率:
式中,D表示数据集,wj表示文本序列中的第j个词,c为wj的上下文,chk表示词wj中的汉字,|wj|表示词wj的字数,0<β<1为加权系数。其中归一化项用于使不同字数的词在训练中拥有同样的地位。
步骤(c):最终词向量取得由两部分组成:词本身初始词向量和组成这个词的汉字字向量。训练过程中,使用词本身的初始词向量以及组成这个词的各个字向量的平均值表示这个词的语义。
本发明使用大规模无标注语料训练得到的词向量去替换神经网络模型中的随机词向量,通过此操作,神经网络模型在初始阶段,词向量就已经包含了丰富的信息,模型在已知丰富信息的前提下,接收训练语料进行模型的训练可以大大的提高系统的性能。
步骤3:模型训练,我们采用循环神经网络(RNN)模型进行训练。具体包括以下几个子步骤:
步骤(a):首先根据模型的窗口参数win的大小,将当前词的前win/2和后win/2个词所对应的词向量进行首尾相接,组合成新的词向量表示当前词。没有前词和后词使用-1表示。
步骤(b):将句子进行分块操作,保证每一个块的长度不长于参数值bs的大小,此处设定为9。
步骤(c):将步骤(b)中的每一个块作为一个示例进行模型的训练,将步骤(a)中合并的词向量和前一步隐含层的输出作为模型输入,得到隐含层,如公式所示:
hi=sig(xi·Wxh+hi-1·Whh+bh)
式中,sig为神经元节点的激活函数,取sig(z)=1/(1+e-z),xi表示第i个词的词向量,hi-1表示隐含层第i-1个节点的输出,Whh表示前一隐含层节点与当前隐含层节点的权重,Wxh表示当前输入层节点与当前隐含层节点的权重,hi表示当前隐藏层节点的输出。
然后,利用隐含层输出计算模型输出层第i个节点输出ci,如公式所示:
ci=soft(hi·Whc+ci-1·Wcc+bc)
式中,hi表示隐含层第i个节点的输出,ci-1表示输出层第i-1个节点的输出,Wcc和Whc分别表示前一输出层节点与当前输出层节点的权重和当前隐藏层节点与当前输出层节点的权重。soft为softmax激活函数,k为输出层节点数,zi=hi·Whc+ci-1·Wcc+bc为输出层第i个节点的输入值。
步骤4:少数民族地区地名识别及后处理:
步骤(a):利用步骤3训练得到循环神经网络模型,在未标注数据上进行测试,识别未标注数据中的少数民族地区地名作为目标地名。
步骤(b):将数字化标识转换回BIO模式并按需求呈现识别结果。
下面以网上下载的数据整理后的数据集中一个具体实例:
阿西尔达斡尔民族乡素有“歌舞之乡”、“摔跤之乡”的美誉。
下面举例对本发明加以详细说明:
步骤1、数据预处理:具体子步骤如下:
利用分词工具对语料进行分词处理,然后对分词后的每一个词进行数字化处理并分配分类标签,最终每一个词都有一个序列和一个标签。
步骤2:词向量训练:利用word2vec工具对步骤1生成的分词进行词向量训练,获得每一个词的上下文信息表示。比如上例中少数民族地名“阿西尔达斡尔民族乡”中的“民族”一词,它的初始词向量表示为<0.675590 -0.431968 1.438434 0.559229 -0.867478 0.187683 1.467837 -1.981601 -0.517042 -1.159152 0.651845 2.442123…>
计算组成民族的两个字的字向量,“民”的字向量表示<1.513607 -1.338099 1.143857 1.141281 0.415794 0.708997 -0.567144 0.287029 -0.826816 0.308180 0.477060 -0.68784…>,“族”的字向量表示<0.590240 1.129969 -0.752465 -1.213565 -0.439796 0.240206 -1.103969 -2.192901 -0.163616 -0.707005 -0.112528 0.301551…>
最终“民族”的词向量表示为<0.9265 -0.2134 0.6099 0.1623 -0.2972 0.3790 -0.0678 -1.2958 -0.5025 -0.5193 0.3388 0.6853…>
步骤3:模型训练:采用循环神经网络(RNN)训练模型。少数民族地区地名识别中需要识别的类型有地名开始,地名接续,非少数民族地区地名。标注文件分别以1、2和0来标识。如我们的例句标识文件对应的内容为:
1 2 2 2 2 2 2 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
经过多次实验,我们选择9层神经网络模型,输入层有500维(滑动窗口5,词向量100维),隐藏层节点个数为100,利用反向传播以及梯度下降算法,训练得到中文少数民族地区地名识别模型。
步骤4:少数民族地区地名识别及后处理:首先,利用步骤3训练得到循环神经网络模型,在未标注数据上进行测试,对每个词进行预测,判断其对应标识并输出标注文件。最后再将输出文件转换为可读标识即完成了少数民族地区地名的识别工作。
以上所述,仅为本发明创造较佳的具体实施方式,但本发明创造的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明创造披露的技术范围内,根据本发明创造的技术方案及其发明构思加以等同替换或改变,都应涵盖在本发明创造的保护范围之内。
机译: 基于深度学习,存储介质和计算机设备的中文分词方法和装置
机译: 基于Web Plug-in的深度学习调制系统和基于相同方法的图像识别方法
机译: 基于残差卷积和递归神经网络的中文场景文本行识别方法