一种基于BERT和独立循环神经网络的问句分类方法技术

技术编号:27509830 阅读:12 留言:0更新日期:2021-03-02 18:39
本发明专利技术属于自然语言处理领域,具体涉及一种基于BERT和独立循环神经网络(IndRNN)的问句分类方法,包括:实时获取待分类的问句数据,将待分类的问句数据输入到训练好的问句分类模型中,得到分类后的数据;问句分类模型包括BERT模型和基于注意力机制的IndRNN模型;本发明专利技术利用BERT模型,得到的向量序列能捕捉更多的内在信息,相对RNN更加高效、能捕捉更长距离的依赖,提高预测精度。提高预测精度。提高预测精度。

【技术实现步骤摘要】
一种基于BERT和独立循环神经网络的问句分类方法


[0001]本专利技术属于自然语言处理领域,具体涉及一种基于BERT和独立循环神经网络(IndRNN)的问句分类方法。

技术介绍

[0002]自然语言处理(NaturalLanguageProcessing,NLP)也称自然语言理解(NaturalLanguageUnderstanding,NLU),是利用计算机为工具对人类特有的书面形式和口头形式的自然语言的信息进行各种类型处理和加工的技术,问答系统是自然语言处理的一个研究方向,即通过计算机系统对用户提出的问题的理解,利用自动推理等手段,在有关知识资源中自动求解答案并作出相应的回答,主要包含文本理解、信息检索和答案抽取三部分。对于社区问答来说,用户使用自然语言的表达方式提出问题,而其他用户通过用户的问题贡献自己的答案。用户通过社区问答搜索到自己想要的问题和答案。问句理解是对问题的类别进行确认,从而为社区问答系统的信息检索过程缩小问题和答案的搜索范围,提高准确性,所以提高社区问答问句分类准确性,是提高社区问答系统整体可用性可靠性的必要条件。
[0003]在问句分类之前需要对问句类别进行确定。目前对于中文问句的分类并没有一个统一的标准,在国际中比较的权威的分类体系是UIUC问句分类体系,这是一个基于答案类型的层次分类体系。但是UIUC分类体系是针对英文类别的,在中文问句分类体系方面,哈工大在UIUC的分类系统的基础上根据汉语固有的特点定义了一套中文分类体系,主要包含七个大类:人物、地点、数字、时间、实体、描述、未知;每一个大类下面又细分了一些小类,总共60个,而对于现如今比较流行的问答社区来说,都有自己的一套分类规则,例如百度知道和知乎,问题根据类型分为“体育”、“电脑”、“经济”等。
[0004]目前问句分类主要分为两个大的方向,首先是基于统计机器学习的分类方法,其次是基于深度学习的方法,主要是使用各类神经网络模型。Hui等人在进行问句分类时考虑到问题文本中词序和词间距的因素,提出了一种扩展类规则模型,但该方法需要定义大量的扩展类规则;Mishra等人根据从问题文本中抽取的词特征、语义特征和句法特征来训练不同的分类器(朴素贝叶斯、最近邻、支持向量机)进行问题的分类,该方法面对海量数据处理时性能较差;Liu等人在SVM的基础上提出了一种依赖句法关系和词性特征的核函数方法,但是该方法不能充分捕捉语义信息;杨思春等人为了解决问句分类研究中特征提取开销过大的问题,提出了一种包含基本特征和词袋绑定特征的问句特征模型,以此来获取更加有效的问句特征集。由于上述方法中不能处理大量的文本,其数据分类的准确性较低,急需一种能快速准确的对问句数据进行分类的方法。

技术实现思路

[0005]为解决以上现有技术存在的问题,本专利技术提出了一种基于BERT和独立循环神经网络的问句分类方法,该方法包括:实时获取待分类的问句数据,将待分类的问句数据输入到
训练好的问句分类模型中,得到分类后的数据;问句分类模型包括BERT模型和基于注意力机制的独立循环神经网络IndRNN模型;对问句分类模型进行训练的过程包括:
[0006]S1:获取社区问答问句原始数据集,对社区问答问句原始数据集进行预处理,得到训练集、验证集和测试集;
[0007]S2:将训练集中的数据输入到BERT模型中提取特征,得到含有语义特征的序列向量;
[0008]S3:将含有语义特征的序列向量输入到基于注意力机制的IndRNN模型中,得到独立循环神经网络的隐藏状态;
[0009]S4:将独立循环神经网络的隐藏状态进行叠加,在进行叠加过程中采用注意力机制捕获上下文的相关信息,得到神经网络输出结果;
[0010]S5:将神经网络的输出结果输入到softmax层,得到分类结果;
[0011]S6:根据分类结果计算基于注意力机制的IndRNN模型的损失函数;
[0012]S7:采用Adam算法对损失函数进行优化,对基于注意力机制的IndRNN模型反向传播训练,不断修改、更新各层神经元的参数值以及连接权重;
[0013]S8:将验证集中的数据输入到问句分类模型中,确定模型参数的最佳值,使误差值达到最小,完成问句分类模型的训练;
[0014]S9:将测试集中的数据输入到训练好的问句分类模型中,得到预测结果。
[0015]优选的,对社区问答句原始数据集进行预处理的过程包括:对数据集进行清洗,去除数据集中重复和残缺的问答语句;将清洗后的数据集按70%:15%:15%的比例划分为训练集、验证集和测试集。
[0016]优选的,得到含有语义特征的序列向量的过程包括:
[0017]S21:将训练集中的数据划分为标签和内容,再将划分后的数据进行分词处理,得到分词文本序列;
[0018]S22:对分词文本序列进行全词掩码处理,对处理好后序列的头部添加一个特殊标记[CLS],每个句子采用标记[SEP]分隔;
[0019]S23:将标记后的序列向量输入到双向Transformer编码器中提取特征向量;
[0020]S24:采用多头注意力机制对提取的特征向量进行拼接,得到含有语义特征的序列向量。
[0021]进一步的,采用多头注意力机制对提取的特征向量进行拼接的公式为:
[0022]MultiHead(Q,K,V)=Concat(head1,...,head
n
)W
O
[0023][0024][0025]优选的,得到循环神经网络隐藏状态的过程为:
[0026]S31:神经元cell获取语义特征的序列向量x
t
和一个神经元输出的循环神经网络隐藏状态h
t-1

[0027]S32:将参数矩阵u和上一个神经元的输出h
t-1
进行点乘运算,将参数矩阵w与语
义特征的序列向量x
t
相乘,将上述点乘运算结果与乘法运算结果相加,并加上偏置项b,得到待激活序列向量;
[0028]S33:将待激活序列向量传给激活函数σ得到循环神经网络隐藏状态h
t

[0029]S34:输出循环神经网络的隐藏状态h
t
并将其传给下一个神经元cell;
[0030]计算独立循环神经网络隐藏状态的公式为:
[0031][0032]优选的,得到隐藏状态的过程包括:
[0033]S41:将独立循环神经网络的隐藏状态进行双向叠加:
[0034][0035][0036][0037]其中,和表示前向和后向IndRNN隐藏状态;T
i
表示i位置单词经过BERT层输出的向量;n表示单词个数;h
i
表示当前隐藏层状态;
[0038]S42:根据当前隐藏层状态h
i
和单词上下文向量u
w
计算当前单词注意力权重a
i
,计算公式为:...

【技术保护点】

【技术特征摘要】
1.一种基于BERT和独立循环神经网络的问句分类方法,其特征在于,包括:实时获取待分类的问句数据,将待分类的问句数据输入到训练好的问句分类模型中,得到分类后的数据;问句分类模型包括BERT模型和基于注意力机制的独立循环神经网络IndRNN模型;对问句分类模型进行训练的过程包括:S1:获取社区问答问句原始数据集,对社区问答问句原始数据集进行预处理,得到训练集、验证集和测试集;S2:将训练集中的数据输入到BERT模型中提取特征,得到含有语义特征的序列向量;S3:将含有语义特征的序列向量输入到基于注意力机制的IndRNN模型中,得到独立循环神经网络隐藏状态;S4:将独立循环神经网络的隐藏状态进行叠加,在进行叠加过程中采用注意力机制捕获上下文的相关信息,得到神经网络输出结果;S5:将神经网络的输出结果输入到softmax层,得到分类结果;S6:根据分类结果计算基于注意力机制的IndRNN模型的损失函数;S7:采用Adam算法对损失函数进行优化,对基于注意力机制的IndRNN模型反向传播训练,不断修改、更新各层神经元的参数值以及连接权重;S8:将验证集中的数据输入到问句分类模型中,确定模型参数的最佳值,使误差值达到最小,完成问句分类模型的训练;S9:将测试集中的数据输入到训练好的问句分类模型中,得到预测结果。2.根据权利要求1所述的一种基于BERT和独立循环神经网络的问句分类方法,其特征在于,对社区问答问句原始数据集进行预处理的过程包括:对数据集进行清洗,去除数据集中重复和残缺的问句语句;将清洗后的数据集按70%:15%:15%的比例划分为训练集、验证集和测试集。3.根据权利要求1所述的一种基于BERT和独立循环神经网络的问句分类方法,其特征在于,得到含有语义特征的序列向量的过程包括:S21:将训练集中的数据划分为标签和内容,再将划分后的内容数据进行分词处理,得到分词文本序列;S22:对分词文本序列进行全词掩码处理,对处理好后序列的头部添加一个特殊标记[CLS],每个句子采用标记[SEP]分隔;S23:将标记后的序列向量输入到双向Transformer编码器中提取特征向量;S24:采用多头注意力机制对提取的特征向量进行拼接,得到含有语义特征的序列向量。4.根据权利要求3所述的一种基于BERT和独立循环神经网络的问句分类方法,其特征在于,采用多头注意力机制对提取的特征向量进行拼接的公式为:MultiHead(Q,K,V)=Concat(head1,...,head
n
)W
O
head
i
=Attention(QW
iQ
,KW
iK
,VW
iV
)其中,MultiHead(.)表示多头注意力head数;Q表示查询向量,K表示键向量、V表示值向
量;Concat(.)表示拼接不同的注意力;head
i
表示不同的注意力;W
O
表示MultiHead线性变换的参数。5.根据权利要求1所述的一种基于BERT和独立循环神经网络的问句分类方法,其特征在于,得到独立循环神经网络隐藏状态的过程为:S31:神经元cell获取语义特征的序列向量x
t
和上一个神经元输出的循环神经网络隐藏状态h
t-1
;S32:将参数矩阵u和上一个神经元的输出h
t-1
进行点乘运算,将参数矩阵w与语义特征的序列向量x
t
相乘,将上述点乘运算结果与乘法运算结果相加,并加上偏置项b,得到待激活序列向量;S33:将待激活序列向量传给激活函数σ得到循环神经网络隐藏状态h
t
;S34:输出独立循环神经网络的隐藏状态h
t
并将其传给下一个神经元cell;计算独立循环神经网络隐藏状态的公式为:h
it...

【专利技术属性】
技术研发人员:张璞陈鹏王重阳熊安萍
申请(专利权)人:重庆邮电大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1