首页> 中国专利> 一种基于规则和改进预训练模型的命名实体识别方法

一种基于规则和改进预训练模型的命名实体识别方法

摘要

本发明公开了一种基于规则和改进预训练模型的命名实体识别方法。本发明在BERT预训练的基础之上,增加与下游任务相同的领域数据继续预训练,再在命名实体识别任务上进行微调;同时,考虑到词性能够表达重要词语的属性信息,还在BERT模型内部结构中添加额外特征信息来增强系统的识别性能;在深度学习模型构建方面,提出集成卷积神经网络和双向循环神经网络对文本进行句子级别的特征提取,最后结合规则对模型识别出的实体结果进行校正,判断实体长度是否小于一定值,且前面是形容词,则拼接成一个新的实体作为最后的实体词;能提高命名实体识别的准确率,有效地提取出纺织面料领域的专有名词,相较于现有的方法在准确率、召回率、F1值上有很大的提升。

著录项

  • 公开/公告号CN112818694A

    专利类型发明专利

  • 公开/公告日2021-05-18

    原文格式PDF

  • 申请/专利权人 浙江工业大学;

    申请/专利号CN202110229580.1

  • 发明设计人 杨良怀;裴慧;

    申请日2021-03-02

  • 分类号G06F40/295(20200101);G06F40/211(20200101);G06F40/44(20200101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构33213 杭州浙科专利事务所(普通合伙);

  • 代理人周红芳

  • 地址 310006 浙江省杭州市下城区朝晖六区潮王路18号

  • 入库时间 2023-06-19 11:02:01

说明书

技术领域

本发明涉及一种基于规则和改进预训练模型的命名实体识别方法,特别是针对纺织面料领域数据中的专有名词识别。本发明通过在BERT预训练的基础之上,增加与下游任务相同的领域数据继续预训练,然后在命名实体识别模型上进行训练;同时,考虑到词性能够表达重要词语的属性信息,本文还在BERT模型内部结构中添加额外特征信息来增强系统的识别性能。在深度学习模型方面,还提出集成卷积神经网络(CNN)和双向循环神经网络(BiLSTM)的方法对文本进行句子级别的特征提取。最后,结合基于规则的方法对命名实体识别模型识别出的实体词进行验证,依据实体词长度、词性等语义层面的信息对识别错误的实体词进行纠正,从而提高命名实体识别的准确率。

背景技术

在跨模态检索任务中,用户可通过输入的任意类型的查询数据,检索出所有类型语义相关的数据集,如2019年中国绍兴柯桥国际纺织品面辅料博览会展出了45万款面料,需要从大量面料图样和丰富的图样文本描述中有效筛选出客户要求的结果。用户可利用文字信息来搜索图像信息,如何将用户输入的文本信息抽取出专有领域相关的词,再从数据库中进行匹配搜索返回给用户请求,这是命名实体识别任务的典型应用。

从命名实体识别方法来说大致有三种:第一种是基于规则匹配的实体识别方法,主要依赖于人工构造大量规则来匹配文本的实体词,但是该方法十分依赖于领域专家对知识的理解。第二种是基于机器学习的实体识别方法,即就是将实体识别任务转成分类问题来解决,并不需要人工制定规则,而是利用人工标注好的语料训练出一个模型,再使用训练好的模型对测试语料进行序列解码得到实体名称。第三种是基于深度学习的实体识别方法,随着硬件设备性能的提升,这类命名实体识别算法逐渐占据主流,不需要人为设计特征,只需要将输入文本处理成计算机所能识别的特征向量,模型就能自动挖掘出更深层的语义特征,且具有良好的泛化能力。

当前,关于纺织领域里的专有名词抽取的研究甚少,主要是因为缺乏高质量的训练数据,同时该领域的文本具有很强的专业性,例如,“化学纤维”、“人造丝”这类带有修饰词的实体,是无法从通用领域的实体识别任务中进行迁移的,使得对这类实体的识别工作比通用实体识别任务更具挑战性。为了能提高跨模态检索任务的有效性和精确性,提升专有名词的识别率是非常必要的,尽管在工业界已有很多人提出传统方法即很好完成领域词的识别,但是传统方法的时间代价和人力代价十分大的,所以自动化的实体识别算法研究在纺织领域领域有很好的应用前景。

因此,如何有效的提取纺织面料领域文本中的专有名词,快速、准确的实现跨模态检索任务变得举足轻重,也成为技术人员迫切解决的问题。

发明内容

考虑到大部分语言模型是在大型通用的语料库中预训练得出,且在领域化的特定场景会受到限制的问题,本发明提出一种基于规则和改进预训练模型的命名实体识别方法,它是一种新型的预训练语言模型方法(ConBERT),将预训练模型引入到纺织领域的命名实体识别任务中,同时还考虑到词性更能够表达专有名词的重要属性信息,本发明还提出一个创新的想法,在BERT结构中添加词性特征,将字特征和词性特征相结合,增强系统的识别率。最后使用双向循环神经网络(BiLSTM)和条件随机场(CRF)作为命名实体识别模型,可以有效地提取出纺织面料领域的专有名词,相较于现有的方法在准确率、召回率、F1值上有很大的提升。

本发明提供的技术方案为:

所述的一种基于规则和改进预训练模型的命名实体识别方法,以BERT预训练模型为基础,增加与下游任务相同的领域数据继续预训练,接着在命名实体识别模型上进行训练,最后使用规则匹配算法对识别精度进行优化的过程,其特征在于具体包括以下步骤:

步骤1:在BERT预训练的基础之上,增加与下游任务相同的领域数据继续预训练,得出新的中文BERT预训练模型;

步骤2:基于词性更能够表达重要词语的属性信息,在步骤1)的中文BERT预训练模型内部结构中添加词性特征得到新的字向量,作为卷积神经网络CNN模型的输入特征,以增强系统的识别性能;

步骤3:使用卷积神经网络CNN模型对步骤2)得出的新的字向量进行卷积操作、用使用双向循环神经网络BiLSTM模型进行命名实体识别任务,最后引入CRF模型通过概率统计对BiLSTM的输出进行解码,获得序列标注预测结果;

步骤4:使用基于规则的方法对模型识别出的实体结果进行校正,对实体词长度小于阈值且依据该实体词的前一个词的词性来判断是否进行实体词的扩充,避免识别错误、漏识别等问题。

具体地,本发明的一种基于规则和改进预训练模型的命名实体识别方法,其特征在于具体过程为包括以下步骤:

步骤1:构造领域词典:从纺织领域网站、搜狗词典库等网站上搜集纺织面料关键词,并将收集到的这些关键词作为领域词典;

步骤2:以领域词典为目标词,解析百度百科的html文件,提取出网页中相关文本数据;

步骤3:对提取出的文本数据进行清洗和预处理,将关键词、摘要和内容信息合并成一个短文本,并去除文本中无用词和特殊符号,保留领域相关的文本数据,同时将所有的文本数据整理成一行一个句子的形式。

步骤4:依据领域词典对步骤2)中保留的领域相关的文本数据先进行一轮数据预标注,再使用Brat标注工具对保留的纺织领域相关的文本数据中的专有名词进行第二轮人工标注,利用分词工具对文本进行切词、词性标注;最后将保留的纺织领域相关的文本数据处理成命名实体识别任务能处理的数据形式BIO,其中B表示实体词的开头,I表示实体词的其他位置,O表示不属于任何类型;

步骤5:按照7:2:1的比例将文本数据划分成为训练数据、验证数据和测试数据,首先用训练集训练得出一个模型,然后用验证集验证模型,选出其中最好的模型,也就是验证集用来指导我们选出最好的模型,最后使用测试集评估最终的模型,至此数据准备完成;

步骤6:为了提升模型的识别率,从多个纺织领域网站上抓取不断预训练的纺织领域文本数据,并对所述文本数据进行清洗和预处理,剔除与领域不相关的文本数据,将剩余的文本数据作为不断预训练的语料;

步骤7:在BERT模型基础上再次预训练,得到最终领域强相关的中文预训练模,即为新的中文BERT预训练模型;

步骤8:在BERT结构中添加词性特征,可将字特征和词性特征相结合,具体为词性特征为一句话中每个字的词性信息,将词性特征引入步骤1的新的中文BERT预训练模型中,即在BERT结构中添加词性特征,将新的BERT预训练模型中的字特征和词性特征相结合,得到新特征X

X

X∈R

其中,batch_size为每次送入网络中训练的一批次句子的个数;seq_len为一个句子的长度;embed_dim是新的BERT预训练模型中的字特征的维度;EmbeddingLookup(X)是查找字向量X的嵌入表示;PositionEncoding来区分句子中词的位置信息,在表示字向量时引入的位置编码;PosEncoding为词性编码,将句子中的词性信息转换成特征向量;

步骤9:将以上得出的新特征X

步骤10:在BERT输出后面添加CNN模块,对BERT层输出的每个字符向量进行卷积操作,获得新的字符特征,具体为:

输入层,该层用来接收BERT预训练模型得出的新特征X

X=x

X∈R

其中,x

卷积层:使用卷积操作进行特征提取,使用多个不同尺寸大小的卷积核进行卷积操作,每个卷积核都有一个权重矩阵W,通过设置不同窗口值的卷积核,来提取词语之间的局部特征,为卷积后得到的特征矩阵,公式为:

c

C=[c

其中,W是CNN网络的参数,为权重矩阵,其中每个卷积核的宽度是是嵌入矩阵宽度,卷积核的高度是句子的长度,即窗口值,W的初始值随机产生,并伴随训练而变化;i是句子中的字符个数,h是窗口值,x

步骤11:将将CNN的输出字符向量(c

步骤12:CRF层将BiLSTM计算出来的概率值作为自己的输入,输出符合标注转移约束条件的、最佳的预测标注序列,用X=(x

步骤13:利用基于规则的方法对模型识别出的实体结果进行校正,方法是判断实体长度是否小于长度阈值,若在设定的长度阈值范围之内,再判断该实体词的前面是否是形容词,若是形容词,则拼接成一个新的实体作为最后的实体词,提升跨模态检索的精确率,若不是形容词,说明是一个完整的词语,则不考虑进行实体词扩充,本发明的长度阈值设为5。

与现有技术相比,本发明的优点在于:

1)本发明考虑到大多数语言模型是在大型通用的语料库中预训练得出,在领域化的特定场景会受到限制,因此将已经在大量且丰富的多领域文本预训练过的模型上进行再次预训练,大大提高模型的性能;

2)本发明考虑到词性更能够表达专有名词的重要属性信息,在BERT结构中添加词性特征,可将字特征和词性特征相结合,增强系统的识别率;

3)本发明利用卷积神经网络中的卷积层来提取出文本数据中的隐藏特征,例如词的前后缀等特征,同时使用多个卷积核从不同角度提取特征,可以有效地避免只使用一个卷积核提取特征的单一性问题;

4)本发明针对CNN虽然可以深层次地提取到字符中的隐藏特征,但是缺乏对句子体系特征的表示等问题,采用了双向循环神经网络进行语义层面的特征提取,集成CNN和BiLSTM的模型可以有效地提取出丰富的语义特征;

5)本发明通过实体词扩充,将该算法更好地应用到实际的应用场景下,结合使用利用词性和实体词长度来对实体词进行二次验证,提高命名实体识别的准确率,可以有效地提取出纺织面料领域的专有名词,相较于现有的方法在准确率、召回率、F1值上有很大的提升。

附图说明

图1为本发明的模型框架示意图;

图2为本发明的改进的预训练模型示意图;

图3为本发明的CNN特征提取示意图。

具体实施方式

下面结合说明书附图及实施例,对本发明作进一步详细说明。

参照图1~图3,本发明的一种基于规则和改进预训练模型的命名实体识别方法,包括以下步骤:

步骤1:在BERT预训练的基础之上,增加与下游任务相同的领域数据继续预训练,得出新的中文BERT预训练模型,以便在命名实体识别任务上进行微调,具体过程如下:

步骤1.1:构造领域词典:从纺织领域网站、搜狗词典库等网站上搜集纺织面料关键词,并将收集到的关键词作为领域词典;

步骤1.2:数据集准备:从百度百科上获取领域关建词条的结构化和非结构化文本信息,解析html文件,主要提取网页中关键词、摘要、内容等信息;

步骤1.3:对提取的文本进行处理,关键词和摘要、内容信息合并成一个短文本,除去文本中的特殊符号,对文本进行分句处理,保留领域相关的文本数据,同时将所有的文本数据整理成一行一个句子的形式;

步骤1.4:数据标注:依据领域词典对步骤1.3)中保留的领域相关的文本数据先进行一轮数据预标注,再使用Brat标注工具对保留的纺织领域相关的文本数据中的专有名词进行第二轮人工标注;

步骤1.5:数据划分:利用分词工具和词性标注对文本进行切词、词性标注,转化为命名实体识别模型可使用的语义特征,得到命名实体识别模型训练是用到的数据;

步骤1.6:数据划分:将以上所有的数据处理成命名实体识别任务能处理的数据形式BIO,其中B表示实体词的开头,I表示实体词的其他位置,O表示不属于任何类型,最后按照7:2:1的比例将文本数据划分成为训练数据、验证数据和测试数据,首先用训练集训练得出一个模型,然后用验证集验证模型,选出其中最好的模型,也就是验证集用来指导我们选出最好的模型,最后使用测试集评估最终的模型,至此数据准备完成;

步骤1.7:BERT不断预训练的数据准备:为了提升模型的识别率,同时从多个纺织领域网站上抓取了不断预训练的实验数据,并对文本数据进行清洗和预处理,还剔除了与领域不相关的文本,选取剩余句子作为不断预训练的语料,即为目标领域的数据。总的来说,最终不断预训练的实验数据是目标领域数据和原始预训练的数据的交集,具体如图2所示;接着在BERT模型基础上再次预训练,得到最终领域强相关的中文预训练模模型,为新的中文BERT预训练模型。至此,基于纺织面料领域的中文预训练模型训练完毕;

步骤2:基于词性更能够表达重要词语的属性信息,在步骤1)的中文BERT预训练模型内部结构中添加词性特征得到新的字向量,作为卷积神经网络CNN模型的输入特征,以增强系统的识别性能,所述词性特征为一句话中每个字的词性信息,具体为:

将词性特征转化为数字向量,与BERT模型已有的内部特征进行拼接作为模型的新特征,将词性特征引入步骤1的新的中文BERT预训练模型中,即在BERT结构中添加词性特征,将新的BERT预训练模型中的字特征和词性特征相结合,得到新特征X

X

X∈R

其中,batch_size为每次送入网络中训练的一批次句子的个数;seq_len为一个句子的长度;embed_dim是新的BERT预训练模型中的字特征的维度;EmbeddingLookup(X)是查找字向量X的嵌入表示;PositionEncoding来区分句子中词的位置信息,在表示字向量时引入的位置编码;PosEncoding为词性编码,将句子中的词性信息转换成特征向量,得出的新特征X

步骤3:使用卷积神经网络CNN模型对步骤2)得出的新的字向量进行卷积操作、用使用双向循环神经网络BiLSTM模型进行命名实体识别任务,最后引入CRF模型通过概率统计对BiLSTM的输出进行解码,获得序列标注预测结果,具体为:

步骤3.1:输入层,该层用来接收BERT预训练模型得出的新特征X

X=x

X∈R

其中,x

步骤3.2:卷积层:使用卷积操作进行特征提取,使用多个不同尺寸大小的卷积核进行卷积操作,每个卷积核都有一个权重矩阵W,通过设置不同窗口值的卷积核,来提取词语之间的局部特征,为卷积后得到的特征矩阵,公式为:

c

C=[c

其中,W是CNN网络的参数,为权重矩阵,其中每个卷积核的宽度是是嵌入矩阵宽度,卷积核的高度是句子的长度,即窗口值,W的初始值随机产生,并伴随训练而变化;i是句子中的字符个数,h是窗口值,x

步骤3.3:将CNN的输出字符向量(c

步骤3.4:再使用CRF层将BiLSTM预测出的每个字属于哪种标签预测值作为自己的输入,输出符合标注转移约束条件的、最大可能的预测标注序列,用X=(x

步骤4:使用基于规则的方法对模型识别出的实体结果进行校正,对实体词长度小于阈值且依据该实体词的前一个词的词性来判断是否进行实体词的扩充,避免识别错误、漏识别等问题方法,具体为:判断实体长度是否小于长度阈值,本发明实施例中,长度阈值为5,若在设定的长度阈值范围之内,再判断该实体词的前面是否是形容词,若是形容词,则拼接成一个新的实体作为最后的实体词,提升跨模态检索的精确率,若不是形容词,说明是一个完整的词语,则不考虑进行实体词扩充。

实施例1:

如图3所示,基于规则和改进预训练模型的命名实体识别方法具体为:

步骤1:从百度百科上获取“长绒棉”的结构化和非结构化文本信息。解析html文件,主要提取网页中关键词、摘要、内容等信息;

步骤2:对提取的文本进行处理,除去文本中的“引号、感叹号、波浪号,省略号”等特殊符号,接着将关键词条和文本信息合并成文本形式,利用句子分隔符好对文本进行分句;

步骤3:领域词典库是从各大专业权威网站及搜狗等词典库抓取到的领域词汇,将搜集到的词语作为纺织领域专有的词典库,先从纺织领域词典库对所有的文本数据进行第一轮标注;再使用Brat标注工具对保留的纺织领域相关的文本数据中的专有名词进行第二轮人工标注;

步骤4:利用分词工具和词性标注对文本进行切词、词性标注,转化为命名实体识别模型可使用的语义特征;

步骤5:将以上所有的数据处理成命名实体识别任务需要的数据格式。在命名实体识别任务中需要将每个字标注为一定的格式:B表示实体词的开头,I表示实体词的其他位置,O表示不属于任何类型。对于每个字的词性也标注成一定的格式:n表示的是名词、v表示的是动词、m表示的是数词。同时将所有的文本按照一定的比例7:2:1分成训练数据和验证数据、测试数据;命名实体识别任务需要的数据格式参考表1:

表1

步骤6:从多个纺织领域网站上抓取了不断预训练的实验数据,并对文本数据进行清洗和预处理,还剔除了与领域不相关的文本,最终选取与领域相关的句子作为不断预训练的语料,其中不同实体段落描述用空行隔开,每一行是一句话。不断预训练的数据格式如表2所示:

表2

步骤7:使用自己的领域数据在BERT模型基础之上再次预训练,得到最终领域强相关的中文预训练模型。继续预训练的算法思路如下表3所示:

表3

步骤8:在使用字向量基础之上引入词性特征,词性表示代表的是一句话中每个字的词性信息,其表示格式如表1所示。通过使用字词联合的方法,两种方法可以进行互补,提升命名实体识别任务的识别率。加入词性特征的输入嵌入表示,如公式(1)所示:

X

X∈R

其中,batch_size为每次送入网络中训练的一批次句子的个数;seq_len为一个句子的长度;embed_dim是新的BERT预训练模型中的字特征的维度;EmbeddingLookup(X)是查找字向量X的嵌入表示;PositionEncoding来区分句子中词的位置信息,在表示字向量时引入的位置编码;PosEncoding为词性编码,将句子中的词性信息转换成特征向量;

步骤9:输入层,该层用来接收BERT预训练模型得出的新特征X

X=x

X∈R

其中,x

卷积层:使用卷积操作进行特征提取,使用多个不同尺寸大小的卷积核进行卷积操作,每个卷积核都有一个权重矩阵W,通过设置不同窗口值的卷积核,来提取词语之间的局部特征,为卷积后得到的特征矩阵,公式为:

c

C=[c

其中,W是CNN网络的参数,为权重矩阵,其中每个卷积核的宽度是是嵌入矩阵宽度,卷积核的高度是句子的长度,即窗口值,W的初始值随机产生,并伴随训练而变化;i是句子中的字符个数,h是窗口值,x

步骤10:将CNN的输出字符向量(c

步骤11:再使用CRF层将BiLSTM计算出来的概率值作为自己的输入,输出符合标注转移约束条件的、最大可能的预测标注序列:

(1)CRF层将BiLSTM预测出的每个字属于哪种标签预测值作为自己的输入,输出符合标注转移约束条件的、最佳的预测标注序列,输出符合标注转移约束条件的、最佳的预测标注序列,用X=(x

(2)对于纺织领域,每个训练句子X=(x

(3)在模型预测过程中,给定输入序列X,使用维特比算法来求解最优路径,即对观测序列进行标注,最高概率y如下所示,其中y’表示给定的条件特征,如式(7)所示:

y=argmaxscore(x,y′) (7)

步骤12:用基于规则的方法对模型识别出的实体结果进行校正,方法是判断实体长度是否小于长度阈值5,若在设定的长度阈值范围之内,再判断该实体词的前面是否是形容词,若是形容词,则拼接成一个新的实体作为最后的实体词,提升跨模态检索的精确率,若不是形容词,说明是一个完整的词语,则不考虑进行实体词扩充。例如,对于句子“马海毛原是指一种优质的山羊毛。”,命名实体识别模型学习出来的结果可能“羊毛”而不是“山羊毛”,因此,通过实体词扩充得到纺织实体词为“山羊毛”。

本发明综合考虑了纺织面料文本中词语的分词信息、词性信息等多种统计特征,首先将命名实体识别任务提取看作一个多分类问题,利用CNN-BiLSTM-CRF的方法预测每个词的分类结果,能够从更深的层次挖掘词语之间的内在联系。然后结合规则的方法对结果进行二次验证,进一步提升了结果的准确率。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号