一种基于词汇增强的军事命名实体识别方法及装置与流程

文档序号:31647080发布日期:2022-09-27 20:33阅读:81来源:国知局
一种基于词汇增强的军事命名实体识别方法及装置与流程

1.本发明属于实体识别领域,尤其是涉及一种基于词汇增强的军事命名实体识别方法及装置。


背景技术:

2.命名实体识别(named entity recognition,ner)是信息抽取的一个子任务,是智能问答、知识图谱等自然语言处理应用领域的重要基础工作。因此,对命名实体识别的研究具有重要的理论和现实意义,但命名实体识别在军事文本中未能得到很好地解决。军事文本指军队在作战、训练及其他军事行动中产生的以电子文本形式存在和使用的文档,是与军事相关的各种文本的统称。军事文本中存在大量的军事命名实体,主要包括军职军衔名、军事装备名、军用物资名、军事设施名、军事结构名以及军用地名等。
3.命名实体识别在通用领域的研究已经比较成熟,在通用领域中,命名实体识别一般具有数目相对稳定、结构比较规范、命名规则比较统一等有利特点,主要包括人名、地名、组织机构名等。常见的命名实体识别方法主要分为3大类:
4.(1)基于词典和规则的方法。这种方法在数据量少时效果较好且识别速度快,但是该方法对词典规模及词典覆盖率的依赖性较大且编写规则需要耗费大量的人力和物力。现在大多情况下将规则和机器学习方法结合使用。
5.(2)传统机器学习的方法。其主流方法有条件随机场(conditional random field,crf)、支持向量机(support vector machine,svm)等。虽然该方法的可移植性强,但其依赖于标注数据的质量和规模,特征工程复杂。
6.(3)基于深度学习的方法。基于深度学习的命名实体识别思路是将token从离散one-hot表示映射到低维空间中成为稠密的embedding,随后将句子的embedding序列输入到神经网络中,用神经网络自动提取特征,预测每个token的标签。基于深度学习的方法精度高,不依赖于特征工程,但是对计算能力和语料规模要求高。
7.由于中文独特的语言特征,中文文本处理首先要对文本进行分词,若分词错误则会导致在ner上的错误累加。因此,已有研究证明基于字符的方法在中文ner上优于基于词的模型,并且现在多数学者的研究重点都是基于字符的命名实体识别。不会导致分词错误累加是字符级模型的优点,但从另一方面来说也是这种方法的缺点,因为有些单词信息蕴含的语义信息可以使字符级模型在识别实体时产生歧义,尤其军事命名实体往往以系统、复杂的军事知识为依据,具有独特的语法结构,且构成较为复杂,如将“空天军两架图-95”识别成“空天”、“军两架”和“图-95”。在刚进入信息化阶段中的军事领域,由于对军事实体的识别必须兼顾其语言规律和军事特性。针对于军事文本,专用军事词汇信息非常丰富,基于字符的命名实体识别算法无法利用其独特的语义表示,因此效果欠佳。


技术实现要素:

8.本发明要解决的技术问题是怎样提高对军事命名实体的识别精度,提出了一种基
于词汇增强的军事命名实体识别方法及装置。
9.为解决该技术问题,本发明所采用的技术方案是:
10.一种基于词汇增强的军事命名实体识别方法,包括以下步骤:
11.步骤1:获取已经标注的训练数据集,对所述训练数据集中的每一条数据进行预处理,得到每一条数据的字符序列s=c1,c2,

,cj,

,cm及每个字符的位置信息,其中cj代表该条数据中第j个字符,m表示字符序列的长度;
12.步骤2:引入军事领域专用词典,结合分词算法对预处理后的每一条数据进行分词,得到该条数据的词汇序列s=w1,w2,

,wi,

,wn以及每个词汇的词性,其中wi代表句子中第i个词汇,n为词汇序列的长度;
13.步骤3:将经过分词处理的的每一条数据构造输入数据作为训练样本,构造方法为,在经过分词处理的的每一条数据添加开头标识符“[cls]”和结尾标识符“[sep]”,对每一条数据中的每个词汇结合该词汇的词性设置边界标识符,并按照每个词汇在该条数据中出现的顺序将该词汇的边界标识符放入到该条语句的结尾标识符“[sep]”之后,在最后一个词汇标识符之后额外加入一个结尾标识符“[sep]”;
[0014]
步骤4:将各所述训练样本输入到bert模型进行编码,得到各训练样本包含上下文语义信息的向量表示;
[0015]
步骤5:将所述语义信息的向量输入到crf层中,crf层根据所述语义信息向量捕获相邻标签之间的依赖关系,并通过所述相邻标签之间的依赖关系确定每一条数据的标签序列,根据所述标签序列得到每一条训练样本中的军事命名实体;
[0016]
步骤6:重复步骤3至5,直到模型训练误差达到预设的阈值,得到训练好的网络模型;
[0017]
步骤7:获取待识别文本,将所述待识别文本输入到训练好的网络模型中,得到待识别文本中的军事命名实体。
[0018]
进一步地,步骤3中所述词汇边界标识符是指使用[词性]作为该词汇的开始标识符,使用[/词性]作为该词汇的结束标识符,所述开始标识符和结束标识符中的词性为步骤2中得到的该词汇的词性。
[0019]
进一步地,步骤3中每个词汇的边界标识符共享该词汇在预处理后的每条数据中的位置向量。
[0020]
进一步地,步骤4中,在所述bert模型的attention层中使用一个attetion_mask,文本token只去attend文本的token、不去attend标识符的token,而标识符token可以attend原文token。
[0021]
进一步地,步骤5中所述标签是指通过bio标注方式进行标注的标签。
[0022]
进一步地,步骤4中所述bert模型为哈工大讯飞联合实验室发布的中文bert-wwm-ext预训练模型。
[0023]
本发明还提供了一种基于词汇增强的军事命名实体识别装置,包括以下步骤:
[0024]
训练数据集预处理模块:用于获取已经标注的训练数据集,对所述训练数据集中的每一条数据进行预处理,得到该条数据的字符序列s=c1,c2,

,cj,

,cm及每个字符的位置信息,其中cj代表该条数据中第j个字符,m表示字符序列的长度;引入军事领域专用词典,结合分词算法对经过预处理后的每一条数据进行分词,得到该条数据的词汇序列s=
w1,w2,

,wi,

,wn以及每个词汇的词性,其中wi代表句子中第i个词汇,n为词汇序列的长度;
[0025]
训练样本构造模块:用于将经过分词处理的的每一条数据构造输入数据作为训练样本,构造方法为,在经过分词处理的的每一条数据添加开头标识符“[cls]”和结尾标识符“[sep]”,对每一条数据中的每个词汇结合该词汇的词性设置边界标识符,并按照每个词汇在该条数据中出现的顺序将该词汇的边界标识符放入到该条语句的结尾标识符“[sep]”之后,在最后一个词汇标识符之后额外加入一个结尾标识符“[sep]”;
[0026]
网络模型训练模块:用于将训练样本构造模块所构造的各所述训练样本输入到bert模型进行编码,得到各训练样本包含上下文语义信息的向量表示;将所述语义信息向量输入到crf层中,crf层根据所述语义信息向量捕获相邻标签之间的依赖关系,并通过所述相邻标签之间的依赖关系确定每一条数据的标签序列,根据所述标签序列得到每一条训练样本中的军事命名实体;重复执行,直到模型训练误差达到预设的阈值,得到训练好的网络模型;
[0027]
识别模块:用于获取待识别文本,将所述待识别文本输入到训练好的网络模型中,得到待识别文本中的军事命名实体。
[0028]
采用上述技术方案,本发明具有如下有益效果:
[0029]
本发明提供的一种基于词汇增强的军事命名实体识别方法及装置,通过引入军事领域专用词典,使用分词法得到语句的的词汇及词性信息,然后将字符信息和词汇信息一起构造输入语句输入到bert+crf语言模型中,也就是将词汇边界和词性类型作为标识符加入到字符序列后,构造出输入语句输入到bert+crf模型中,充分利用了语句中的字符语义特征和词汇语义特征,增强了输入数据的信息,提升了命名实体识别的精度。
[0030]
在构造输入数据时,通过将词汇边界标识符与词汇共享位置编码,因此推断速度更快、内存占用小。
附图说明
[0031]
图1为本发明流程图;
[0032]
图2为构造输入语句示意图;
[0033]
图3为基于词汇增强的军事命名实体识别实施例流程示意图;
[0034]
图4为bert中的attention_mask。
具体实施方式
[0035]
下面将结合附图对本发明的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0036]
图1至图4示出了本发明一种基于词汇增强的军事命名实体识别方法的具体实施例,如图1所示,包括以下步骤:
[0037]
步骤1:获取已经标注的训练数据集,对所述训练数据集中的每一条数据进行预处理,得到每一条数据的字符序列s=c1,c2,

,cj,

,cm及每个字符的位置信息,其中cj代表该条数据中第j个字符,m表示字符序列的长度;
[0038]
本实施例中,训练数据集使用军事领域已有的语料库并对其进行标注形成训练集。对训练数据集进行清洗以及句子级别的划分等预处理,按照字符级别以及词汇级别对未经标注的数据集进行人工标注,形成军事领域命名实体语料集。选择bio标注方式进行标注,将每个元素标注为“b-x”、“i-x”或者“o”。其中,“b-x”表示此元素所在的片段属于x类型并且此元素在此片段的开头,“i-x”表示此元素所在的片段属于x类型并且此元素在此片段的中间位置,“o”表示不属于任何类型。
[0039]
步骤2:引入军事领域专用词典,结合分词算法对预处理后的每一条数据进行分词,得到该条数据的词汇序列s=w1,w2,

,wi,

,wn以及每个词汇的词性,其中wi代表句子中第i个词汇,n为词汇序列的长度;
[0040]
本实施例中的军事领域词典通过选取公开军事新闻文本作为原始数据集,结合领域专家的专业知识和已有的文献资料构建军事领域词典。结合领域知识,制定军事领域命名实体分类标准。将军事领域命名实体分为8大类,分别是人员名称、军事地名、时间、军衔或军职、军事机构、军事设施、军事事件、武器装备以及其他类别。通过分词算法得到带有词性信息的词汇表。本实施例中的分词算法使用的是jieba分词算法。
[0041]
步骤3:将经过分词处理的的每一条数据构造输入数据作为训练样本,构造方法为,在经过分词处理的的每一条数据添加开头标识符“[cls]”和结尾标识符“[sep]”,对每一条数据中的每个词汇结合该词汇的词性设置边界标识符,并按照每个词汇在该条数据中出现的顺序将该词汇的边界标识符放入到所述待识别文本的结尾标识符“[sep]”之后,在最后一个词汇标识符之后额外加入一个结尾标识符“[sep]”;
[0042]
本实施例中,步骤3中所述词汇边界标识符是指使用[词性]作为该词汇的开始标识符,使用[/词性]作为该词汇的结束标识符,所述开始标识符和结束标识符中的词性为步骤2中得到的所要标识的词汇的词性。假设输入文本为“第一艘航空母舰是辽宁舰”,利用bio标注策略将

航空母舰’以及

辽宁舰’标注为军事命名实体。通过在jieba分词算法中引入军事领域词典可以得到以下词汇:航空母舰、辽宁、辽宁舰,其词性分别是n(名词)、ns(地名词)、n(名词)。按照步骤3所述构造方法,引入词汇信息的输入可以理解为:

[cls]第一艘航空母舰是辽宁舰[sep]《航空母舰》《辽宁》《辽宁舰》[sep]’[0043]
将每个词汇根据词性换成了带有边界信息的标识符[词性][/词性],则拼接后的句子为“[cls]第一艘航空母舰是辽宁舰[sep][n][/n][ns][/ns][n][/n][sep]”,这样可以在所构造的语句中既增加了词汇的边界信息也就是位置特征,也增加了该词汇的词性信息,如图2所示,步骤3中每个词汇的边界标识符共享该词汇在预处理后的每条数据中的位置向量。"航空母舰"这个词汇中在原语句中的起始位置为4,结束位置为7。因此在bert输入的位置编码中该词的起始位置为4,结束位置为7。通过将词汇边界标识符与词汇所在语句中共享位置编码,不需要对词汇信息引入额外的位置编码信息,因此推断速度更快、内存占用小。
[0044]
步骤4:将各所述训练样本输入到bert模型进行编码,得到各训练样本的上下文的语义信息向量。
[0045]
本实施例中,选用哈工大讯飞联合实验室发布中文bert-wwm-ext预训练模型对输入数据进行编码。
[0046]
本实施例中,在所述bert模型的attention层中使用一个attetion_mask,文本
token只注意文本的token、不去注意标识符的token,而标识符的token可以注意原文token。如图4所示,attetion_mask为一个大小为输入17
×
17的矩阵,17为输入文本“[cls]第一艘航空母舰是辽宁舰[sep][n][/n][ns][/ns][n][/n][sep]”减去开始标识符和结尾标识符的长度。黑色点位值为1,代表这个点位有用,白色点位值为0,代表这个位被mask掉。由于词汇标识符token是不含bio标注信息的,attetion_mask目的是复用文本中所有字符token的隐向量,使得字符token和标识符token相互独立,从而在模型训练中降低推理时间开销。
[0047]
本发明通过引入军事领域专用词典,使用分词法得到待识别文本中的词汇及词性信息,然后将待识别文本中的字符信息和词汇信息一起构造输入语句输入到bert语言模型中,也就是将词汇边界和词性类型作为标识符加入到实体序列后,构造出输入语句输入到bert模型中,充分利用了语句中的字符语义特征和词汇语义特征,增强了输入数据的信息,提升了命名实体识别的精度。
[0048]
步骤5:将所述语义信息向量输入到crf层中,crf层根据所述语义信息向量捕获相邻标签之间的依赖关系,并通过所述相邻标签之间的依赖关系确定每一条数据的标签序列,根据所述标签序列得到每一条训练样本中的军事命名实体;
[0049]
本实施例中,根据步骤5中捕获的相邻标签之间的依赖关系获得全局最优标签序列,crf可从训练数据中学习到与标签相关的约束条件,以保证最终输出结果的有效性。在序列标注中,一个词的标签常常与其周围词的标签存在关联。因此,对于给定的句子,最有效的方法是将句子中当前词的标签与相邻词标签的关系结合考虑,然后解码出最优的标签序列。crf可从训练数据中学习到与标签相关的约束条件,以保证最终输出结果的有效性。也就是bert是编码,crf是根据标注的标签约束进行解码。
[0050]
步骤5中所述标签是指通过bio标注方式进行标注的标签。
[0051]
如图3所示,通过crf层,对语句“国内第一艘航空母舰是辽宁舰”给出的标签结果为o,o,o,o,o,b-w,i-w,i-w,i-w,o,b-w,i-w,i-w,也就是根据bio标注方式的解释,将每个元素标注为“b-x”、“i-x”或者“o”。其中,“b-x”表示此元素所在的片段属于x类型并且此元素在此片段的开头,“i-x”表示此元素所在的片段属于x类型并且此元素在此片段的中间位置,“o”表示不属于任何类型,因此,得出的命名实体为“航空母舰”和“辽宁舰”。
[0052]
通过将所构造的输入数据经bert编码后得到的语义信息向量输入到crf层中,最后,由crf层预测全局最优结果。
[0053]
步骤6:重复步骤3至5,直到模型训练误差达到预设的阈值,得到训练好的网络模型;
[0054]
步骤7:获取待识别文本,将所述待识别文本输入到训练好的网络模型中,得到待识别文本中的军事命名实体。
[0055]
本发明还提供了一种基于词汇增强的军事命名实体识别装置,包括以下步骤:
[0056]
训练数据集预处理模块:用于获取已经标注的训练数据集,对所述训练数据集中的每一条数据进行预处理,得到该条数据的字符序列s=c1,c2,

,cj,

,cm及每个字符的位置信息,其中cj代表该条数据中第j个字符,m表示字符序列的长度;引入军事领域专用词典,结合分词算法对经过预处理后的每一条数据进行分词,得到该条数据的词汇序列s=w1,w2,

,wi,

,wn以及每个词汇的词性,其中wi代表句子中第i个词汇,n为词汇序列的长
度;
[0057]
训练样本构造模块:用于将经过分词处理的的每一条数据构造输入数据作为训练样本,构造方法为,在经过分词处理的的每一条数据添加开头标识符“[cls]”和结尾标识符“[sep]”,对每一条数据中的每个词汇结合该词汇的词性设置边界标识符,并按照每个词汇在该条数据中出现的顺序将该词汇的边界标识符放入到该条语句的结尾标识符“[sep]”之后,在最后一个词汇标识符之后额外加入一个结尾标识符“[sep]”;
[0058]
网络模型训练模块:用于将训练样本构造模块所构造的各所述训练样本输入到bert模型进行编码,得到各训练样本包含上下文语义信息的向量表示;将所述语义信息向量输入到crf层中,crf层根据所述语义信息向量捕获相邻标签之间的依赖关系,并通过所述相邻标签之间的依赖关系确定每一条数据的标签序列,根据所述标签序列得到每一条训练样本中的军事命名实体;重复执行,直到模型训练误差达到预设的阈值,得到训练好的网络模型;
[0059]
识别模块:用于获取待识别文本,将所述待识别文本输入到训练好的网络模型中,得到待识别文本中的军事命名实体。
[0060]
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1