基于神经网络的文本分类方法、系统、设备及存储介质与流程

文档序号:27550394发布日期:2021-11-24 22:19阅读:109来源:国知局
基于神经网络的文本分类方法、系统、设备及存储介质与流程

1.本发明涉及人工智能技术领域,尤其涉及一种基于神经网络的文本分类方法、系统、设备及存储介质。


背景技术:

2.在现有的问题分类方法中,通常采用判别式深度学习模型进行处理,随着训练技术的发展,通过将问题输入到预训练模型中,得到其表示后,再在预训练模型后额外新增一层全连接网络就可以对问题进行分类操作了。
3.预训练就是现在大量通用语料库上训练模型,学习到通用的语言知识,然后再针对性地对任务进行迁移训练。预训练模型是一种迁移学习的应用,利用几乎无限的文本,学习输入句子的每个成员的上下文关系表示,学习通用的语法语义知识;且可以从开放领域学到知识迁移到下游任务,以改善低资源任务,对低资源语言处理也非常有利;另外,预训练模型在几乎所有的自然语言处理(natural language processing,简称nlp)任务中都取得了目前最佳的成果。
4.但是,由于在预训练模型后面新增了一个全连接层,而全连接层是没有经过预训练的,该层的网络结构参数并不适合现有的分类功能,因此,需要重新利用大量样本对整个预训练模型和全连接层重新进行训练,这样导致无法充分利用预训练模型的能力,反而需要大量样本重新进行训练,丧失了小样本学习能力,从而增加了训练时间,降低了该方法的实时性和使用效率。


技术实现要素:

5.本发明提供一种基于神经网络的文本分类方法、系统、设备及存储介质,其主要目的在于利用预训练语言模型自身的特点,避免再额外构造一层神经网络,有效提高方法的使用效率。
6.第一方面,本发明实施例提供一种基于神经网络的文本分类方法,包括:
7.根据待分类文本和目标预训练模型,预测每一预设类别的字向量,所述待分类文本符合预设模板对应的文本格式;
8.根据每一预设类别的字向量和所述目标预训练模型中的参数,获取每一预设类别的概率;
9.根据每一预设类别的概率,确定所述待分类文本的最终类别。
10.优选地,所述根据每一预设类别的字向量和所述目标预训练模型中的参数,获取每一预设类别的概率,包括:
11.根据每一预设类别的字向量和所述目标预训练模型中的转换矩阵,获取每一预设类别的表示向量;
12.根据每一预设类别的表示向量,获取每一预设类别的概率。
13.优选地,所述目标预训练模型利用预设文本数据和预设文本标签对预训练模型训
练后得到,其中:
14.在各轮训练中,将所述预设文本数据输入至所述预训练模型中,控制所述预训练模型对所述预设文本数据进行处理,得到所述预设文本数据中各个文本对应的分类结果;
15.根据所述预设文本标签和所述分类结果,计算所述预训练模型的损失函数;
16.根据所述损失函数计算得到所述预训练模型中各功能分层对应的梯度;
17.采用所述预训练模型中各功能分层的梯度和学习率对应更新各功能分层,以对所述预训练模型进行更新;
18.经过各轮训练后,将最终更新后的预训练模型作为所述目标预训练模型。
19.优选地,所述目标预训练模型利用预设文本数据和预设文本标签对预训练模型训练后得到,具体通过如下步骤获得:
20.对所述预设文本数据进行有放回抽样,并合并相同的抽样样本,获取合并抽样样本;
21.将合并抽样样本、所述合并抽样样本对应的预设文本标签作为训练集;
22.将剩余抽样样本、所述剩余抽样样本对应的预设文本标签作为测试集,所述剩余抽样样本通过所述预设文本数据中除去合并抽样样本后得到;
23.根据所述训练集和所述测试集,对所述预训练模型进行训练。
24.优选地,所述目标预训练模型为预设语料库对预设预训练神经网络模型进行训练得到,所述预设预训练神经网络模型的训练过程中,所述预设预训练神经网络模型各个功能分层的学习率从输出层往输入层方向递减。
25.优选地,所述目标预训练模型为微调预训练模型,具体通过如下步骤获得:
26.利用预设文本数据和预设文本标签对预设预训练神经网络模型进行训练,得到参考预训练模型;
27.将所述参考预训练模型和预设语料库结合,得到所述微调预训练模型。
28.优选地,所述预训练模型包括bert、albert、xlnet。
29.优选地,所述损失函数的计算公式如下:
30.fl(pt)=(

a)
×
(1

pt)γ
×
log(pt),
31.其中,pt表示概率值,a表示平衡权重,fl(pt)表示损失值,γ表示聚焦参数。
32.第二方面,本发明实施例提供一种基于神经网络的文本分类系统,包括:
33.向量模型,用于根据待分类文本和目标预训练模型,预测每一预设类别的字向量,所述待分类文本符合预设模板对应的文本格式;
34.概率模型,用于根据每一预设类别的字向量和所述目标预训练模型中的参数,获取每一预设类别的概率;
35.分类模型,用于根据每一预设类别的概率,确定所述待分类文本的最终类别。
36.第三方面,本发明实施例提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现上述基于神经网络的文本分类方法的步骤。
37.第四方面,本发明实施例提供一种计算机存储介质,所述计算机存储介质存储有计算机程序,所述计算机程序被处理器执行时实现上述基于神经网络的文本分类方法的步骤。
38.本发明提出的一种基于神经网络的文本分类方法、系统、设备及存储介质,该方法利用预训练模型自身的特点,利用预训练模型自身参数代替传统方法中再预训练模型外面构造的一层神经网络,从而不需要重新利用大量的样本数据进行训练,因此节约了训练时间,提高了该方法的使用效率;并且在无训练样本数据或小样本数据的情况下也都能使用,具有比较广泛的应用场景。
附图说明
39.图1为本发明实施例提供的一种基于神经网络的文本分类方法的应用场景图;
40.图2为本发明实施例提供的一种基于神经网络的文本分类方法的流程图;
41.图3为本发明实施例提供的一种基于神经网络的文本分类系统的结构示意图;
42.图4为本发明实施例提供的一种计算机设备的结构示意图。
43.本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
44.应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
45.图1为本发明实施例提供的一种基于神经网络的文本分类方法的应用场景图,如图1所示,首先在客户端中确定待分类文本和目标预训练模型,并且将待分类文本和目标预训练模型发送给服务端,服务端接收该待分类文本和目标预训练模型后,执行该基于神经网络的文本分类方法,得到该待分类文本的最终类别。
46.需要说明的是,服务端可以用独立的服务器或者是多个服务器组成的服务器集群来实现。客户端可为智能手机、平板电脑、笔记本电脑、台式计算机等,但并不局限于此。客户端和服务端可以通过蓝牙、usb(universal serial bus,通用串行总线)或者其他通讯连接方式进行连接,本发明实施例在此不做限制。
47.本技术实施例可以基于人工智能技术对相关的数据进行获取和处理。其中,人工智能(artificial intelligence,ai)是利用数字计算机或者数字计算机控制的机器模拟、延伸和扩展人的智能,感知环境、获取知识并使用知识获得最佳结果的理论、方法、技术及应用系统。
48.人工智能基础技术一般包括如传感器、专用人工智能芯片、云计算、分布式存储、大数据处理技术、操作/交互系统、机电一体化等技术。人工智能软件技术主要包括计算机视觉技术、机器人技术、生物识别技术、语音处理技术、自然语言处理技术以及机器学习/深度学习等几大方向。
49.图2为本发明实施例提供的一种基于神经网络的文本分类方法的流程图,如图2所示,该方法包括:
50.s210,根据待分类文本和目标预训练模型,预测每一预设类别的字向量,所述待分类文本符合预设模板对应的文本格式;
51.获取待分类文本,该待分类文本的格式符合预设模板,举例地,如果该分类方法是对问题进行分类,即判断一句话是正确的还是错误的。
52.而,预训练模型的拟合目标是判断输入的一个句子是否符合正常语言序列,假如有句子:今天天气不错,我出门了。此时将句子的前半部分:今天天气不错,输入到预训练模
型中,希望模型通过生成的方式,准确的预测出句子的后半部分内容:我出门了。
53.基于这个原理,为了将预训练模型应用于分类中,需要对一般的输入文本进行构造,使得输入文本符合预训练模型的使用要求。假如有句子:今天天气不错,雨水把我的鞋子打湿了,将该句子输入到预训练模型中,该句子显然不符合正常的说话逻辑,该预训练模型准确的预测出句子的判断内容:错误。因此,为了将预训练模型应用到分类问题上,需要将原有的“今天天气不错,雨水把我的鞋子打湿了”构造成新句子“今天天气不错,雨水把我的鞋子打湿了,错误”。
54.具体地,如果该分类问题为二分类,且是为了判断输入句子是正确还是错误的,按照预设模板对输入文本进行文本构造,本发明实施例中,构造句子格式为“这是问题”+输入文本,对应的预设类别为“正确”或“错误”。假如有输入文本:“今天天气不错,我出门了”,为了判断这个输入文本是正确的还是错误的,将这个输入文本按照预设模板进行构造,得到待分类文本:“这是问题:今天天气不错,我出门了”;如果有输入文本“今天下雨了,我出门鞋子湿了”,按照预设模板进行构造,得到待分类文本“这是问题:今天下雨了,我出门鞋子湿了”,即该中情况下预设模板为原有输入文本加上“这是问题”。
55.上面是二分类问题,还可以是三分类、四分类等,按照对应的预设模板构建待分类文本,只不过此时预设类别有三个类别或者四个类别了。
56.需要说明的是,在相同预设模板下的格式是相同的,不同的预设模板格式是不同的,构造句子的过程可以是人工进行构造,也可以利用其它计算方法进行构造。
57.将待分类文本输入到目标预训练模型中,得到每个类别对应的字向量,以问题分类为例,每个类别的字向量即为正确类别对应的字向量和错误类别对应的字向量。字向量是通过语言模型的训练得到的一组参数阵,语言模型的训练有很多种,比如,通过预测前后两句话是否是连续,则模型通过onehot(独热编码)、全连接参数阵w、softmax函数,通过训练这样的一种任务来更新参数阵,最终,参数阵将会承受着表示字向量的任务。
58.需要说明的是,目前对文本进行分类的预训练模型通常是对于特定的业务场景定制化建立的,建立过程包括对文本进行分词、词嵌入、模型数据训练和在线服务部署等多个环节。其中,词嵌入环节是指将待分类文本转换为字向量的过程。因为在自然语言处理技术领域,要将自然语言交给机器学习中的算法来处理,首先需要将自然语言数学化,字向量就是将自然语言数学化表示的一种方式。
59.此外,早期将自然语言数学化的方式主要是基于浅层机器学习和统计学,并采用one

hot(也称one

of

v,v为词典的大小)或分配式的方式(如结合词频、共现信息、tf

idf或熵的词袋)来给出句子的数学表示。这种表示方法的主要缺点是无法表达句子中语言单元(如字、词或短语n

grams)本身的语义及它们间的关系(例如任意两个不同词的向量内积均为0),且容易出现高维稀疏问题。所以,目前通常是采用词嵌入,即通过神经网络来训练词的数学表示。
60.词嵌入的主要思想是将词映射成一个连续且带语义信息的d维实数向量。现有的研究已经证明词嵌入能够更好地刻画文本的语法和语义信息,而且能够与深度神经网络相结合并进一步提高模型分类的准确性。
61.s220,根据每一预设类别的字向量和所述目标预训练模型中的参数,获取每一预设类别的概率;
62.然后基于该预设类别的字向量和目标预训练模型中的自身参数,得到每个预设类别的概率。
63.现有技术中,通过将每个预设类别的字向量输入到全连接层网络中,以得到每个预设类别的概率,但是本发明实施例中经过研究发现,预训练模型中的自身参数可以替代现有技术中全连接层的功能,这样就不需要在预训练模型的后面再连接全连接层,不需要额外的接外接网络,这样就可以不对预训练模型重新进行训练,或者,不需要利用大量样本数据重新对预训练模型进行训练,从而降低了训练时间,提高了该方法的使用效率。
64.s230,根据每一预设类别的概率,确定所述待分类文本的最终类别。
65.根据每个预设类别的概率,比如比较正确类别的概率和错误类别的概率,将概率较大的类别作为该待分类文本的最终类别,如果正确类别的概率大于错误类别的概率,该待分类文本就是正确的,如果正确类别的概率小于错误类别的概率,该待分类文本就是错误的。
66.本发明实施例提供一种基于神经网络的文本分类方法,该方法利用预训练模型自身的特点,利用预训练模型自身参数代替传统方法中在预训练模型外面构造的一层神经网络的作用,确定待分类文本的最终类别,由于本发明实施例中预训练模型可以直接拿来使用,不需要重新利用大量的样本数据进行训练,因此本发明实施例省略了神经网络模型的训练过程,从而节约了训练时间,提高了该方法的使用效率。
67.在上述实施例的基础上,优选地,所述根据每一预设类别的字向量和所述目标预训练模型中的参数,获取每一预设类别的概率,包括:
68.根据每一预设类别的字向量和所述目标预训练模型中的转换矩阵,获取每一预设类别的表示向量;
69.根据每一预设类别的表示向量,获取每一预设类别的概率。
70.具体地,本发明实施例中目标预训练模型的自身参数为目标预训练模型中的转换矩阵,将每个预设类别的字向量和目标预训练模型中的转换矩阵相乘,可以得到每个预设类别的表示向量,然后根据每个预设类别的表示向量,得到每个预设类别的概率,将每一预设类别的表示向量输入到softmax函数中,得到每一预设类别的概率。
71.本发明实施例中,以bert为目标预训练模型为例进行说明,假如bert的词表大小vocab_size=32000,那么每个词可以表示成32000维的one

hot字向量,bert的最大长度max_length=512,也就是可以接收的最大输入句子的长度,那么每个单词的位置信息可以表示成512维的one

hot字向量,bert的训练数据接收的是句子对,那么就可以用2维的one

hot向量表示两个不同的句子。
72.利用bert进行文本分类的流程具体为:对输入的待分类文本进行分词,得到单个词;对每个词进行编码,得到字向量;通过多头注意力(multi

heads attention),将字向量分为多个头,分别表示查询输入、键输入和值输入,将其乘以各自的转换矩阵,得到查询矩阵、键矩阵和值矩阵;再将所有的查询矩阵、键矩阵和值矩阵拼接起来,乘以所有的转换矩阵,最后得到最终类别。
73.具体地,在多头注意力输入查询输入、键输入和值输入需要经过三个转换矩阵w
q
、w
k
、w
v
生成查询矩阵q、键矩阵k、值矩阵v,需要确定三个w矩阵的维度,其中:
74.x
×
w
q
=q,
75.x
×
w
k
=k,
76.x
×
w
v
=v。
77.w=[w
q
,w
k
,w
v
],即为本发明实施例中所指的转换矩阵。
[0078]
需要说明的是,如果每个预设类别的字向量维度为d,那么转换矩阵的维度为d*n,其中,n为目标预训练模型自字典的大小,即目标预训练模型可生产所有预设类别的数量。
[0079]
对字向量和转换矩阵做矩阵乘法,得到每个预设类别的表示向量,该表示向量的维度即为n,即字典中每个预设类别都对应表示向量中的一个值。
[0080]
将表示向量经过softmax函数,s=exp(n)/sum(exp(n)),得到每个预设类别对应的概率,概率的维度为n。
[0081]
在上述实施例的基础上,优选地,所述目标预训练模型利用预设文本数据和预设文本标签对预训练模型训练后得到,其中:
[0082]
在各轮训练中,将所述预设文本数据输入至所述预训练模型中,控制所述预训练模型对所述预设文本数据进行处理,得到所述预设文本数据中各个文本对应的分类结果;
[0083]
根据所述预设文本标签和所述分类结果,计算所述预训练模型的损失函数;
[0084]
根据所述损失函数计算得到所述预训练模型中各功能分层对应的梯度;
[0085]
采用所述预训练模型中各功能分层的梯度和学习率对应更新各功能分层,以对所述预训练模型进行更新;
[0086]
经过各轮训练后,将最终更新后的预训练模型作为所述目标预训练模型。
[0087]
具体地,本发明实施例中目标预训练模型可以利用预设文本数据和预设文本标签对预训练模型重新进行训练得到,而预训练模型是预先早就利用预设语料库对预设神经网络模型训练好了的。
[0088]
预训练模型可以是为了解决类似的分类或识别的问题所创造出来的模型,该预训练模型可能对应于本文本分类应用中,但并不是100%的对口本发明实施例中的文本分类场景,但是它可以为模型训练节省大量的时间。
[0089]
预设文本数据和预设文本标签可以是为了具体应用而采集并标记的数据,但其数据量相对有限,由于预训练模型是已经经过其它的大量类似构造的数据训练过的模型,因此,对预训练模型重新训练,进行适应性的局部参数优化,并不像训练一个全新模型那样,需要海量的训练数据,使用与具体相契合的有用预设文本数据,对预训练模型稍加调整,能够使模型应用于全新的领域,并解决新的分类问题。
[0090]
因此,为了使目标预训练模型中各层神经网络的权重参数更加贴合本发明实施例中的分类场景,可以重新对预训练模型进行训练,训练的样本数据可以使用少量样本数据即可,没必要使用大量的样本数据,从而对预训练模型重新进行训练后,使得目标预训练模型更加贴合实际使用场景,从而提高后面目标预训练模型的预测精度。
[0091]
具体地,在各轮训练中,将预设文本数据输入至预训练模型中,控制预训练模型对预设文本数据进行处理,得到预设文本数据中各个文本对应的分类结果;
[0092]
进一步地,对预训练模型可以进行多轮训练,在各轮训练中,将预设文本数据输入至预训练模型中,并控制预训练模型对预设文本数据进行处理,得到预设文本数据中各个文本对应的分类结果。需要说明的是,每一轮训练的基础是上一轮训练后的预训练模型。
[0093]
根据预设文本数据中各个文本对应的分类标签和分类结果,计算预训练模型的损
失函数。具体地,预训练模型的损失函数如下:
[0094]
fl(pt)=(

a)
×
(1

pt)γ
×
log(pt),
[0095]
其中,pt表示概率值,a表示平衡权重,fl(pt)表示损失值,γ表示聚焦参数。
[0096]
基于该损失函数计算得到预训练模型中各个功能分层对应的梯度。若预训练模型包括其他部分,如后接任务模型,则基于损失函数计算后接任务模型对应的梯度。具体地,各个功能分层对应的梯度是指各个功能分层中各个参数对应的梯度,后接任务模型对应的梯度也同样是后接任务模型中各个参数对应的梯度。
[0097]
采用预训练模型中各个功能分层的梯度和学习率,对应更新各功能分层。也即,对每个功能分层,采用该功能分层的梯度和学习率来更新该功能分层的参数。同样地,可采用后接任务模型的梯度和学习率来更新后接任务模型的参数。具体地,更新参数的梯度和学习率来更新参数的方式,可以参照现有机器学习模型的参数更新方式,在此不进行详细赘述。更新预训练模型中各个部分的模型参数后,至此完成一轮训练。
[0098]
在对预训练模型进行多轮训练后,将最终更新后的预训练模型作为目标预训练模型。其中,可以预先设置迭代训练的停止条件,例如,可以是设置当训练轮数达到一个预设的最大轮数时停止训练,也可以是当检测到预训练模型的损失函数收敛时停止训练,还可以是当训练时长达到一个预设的最大训练时长时停止信息。
[0099]
需要说明的是,该目标预训练模型属于神经网络中的一种,该目标预训练模型的训练过程可以分为三个步骤:定义目标预训练模型的结构和前向传播的输出结果;定义损失函数以及反向传播优化的算法;最后生成会话并在训练数据上反复运行反向传播优化算法。
[0100]
其中,神经元是构成神经网络的最小单位,一个神经元可以有多个输入和一个输出,每个神经元的输入既可以是其它神经元的输出,也可以是整个神经网络的输入。该神经网络的输出即是所有神经元的输入加权和,不同输入的权重就是神经元参数,神经网络的优化过程就是优化神经元参数取值的过程。
[0101]
神经网络的效果及优化的目标是通过损失函数来定义的,损失函数给出了神经网络的输出结果与真实标签之间差距的计算公式,监督学习为神经网络训练的一种方式,其思想就是在已知答案的标注数据集上,该神经网络给出的结果要尽量接近真实的答案(即标签)。通过调整神经网络中的参数对训练数据进行拟合,使得神经网络对未知的样本提供预测能力。
[0102]
反向传播算法实现了一个迭代的过程,每次迭代开始的时候,先取一部分训练数据,通过前向传播算法得到神经网络的预测结果。因为训练数据都有正确的答案,所以可以计算出预测结果和正确答案之间的差距。基于这个差距,反向传播算法会相应的更新神经网络参数的取值,使得和真实答案更加接近。
[0103]
需要说明的是,由于重新进行训练后,目标预训练模型的中各个神经元之间的权重参数与原始的预训练模型相比肯定会发生变化,因此,此种情况下目标预训练模型的自身参数为重新进行训练后的预训练模型的自身参数,即目标预训练模型的转换矩阵为重新进行训练后的预训练模型的转换矩阵。
[0104]
在上述实施例的基础上,优选地,所述目标预训练模型利用预设文本数据和预设文本标签对预训练模型训练后得到,具体通过如下步骤获得:
[0105]
对所述预设文本数据进行有放回抽样,并合并相同的抽样样本,获取合并抽样样本;
[0106]
将合并抽样样本、所述合并抽样样本对应的预设文本标签作为训练集;
[0107]
将剩余抽样样本、所述剩余抽样样本对应的预设文本标签作为测试集,所述剩余抽样样本通过所述预设文本数据中除去合并抽样样本后得到;
[0108]
根据所述训练集和所述测试集,对所述预训练模型进行训练。
[0109]
具体地,除了上述利用预设文本数据和预设文本标签对预训练模型进行训练的方法之外,本发明实施例还提供另外一种对预训练模型进行训练的方法。
[0110]
先将预设文本数据作为一个数据集,对该数据集中的数据进行有抽样放回,有放回抽样是简单随机抽样的操作方式之一。对于数据集中的抽样样本,每抽取一个样本后再将它放回数据集。对于任意一次抽样而言,由于总体容量不变,所以每个样本被抽中的机会均等。
[0111]
将抽取出来的抽样样本进行合并,合并是指将重复的抽样样本记为1个,其它的去掉,由此获得到合并抽样样本。然后将合并抽样样本、以及合并抽样样本对应的预设文本标签作为训练集,将数据集中除去合并抽样样本后的数据作为剩余抽样样本,剩余抽样样本以及剩余抽样样本对应的预设文本标签作为测试集。
[0112]
通过训练集,对预训练模型进行训练。并根据测试集测试该目标预训练模型,获取测试结果。
[0113]
利用训练集的数据,能够对预训练模型进行局部优化训练,调整预训练模型某些中间层的参数,使目标预训练模型适用于构造数据集中的数据类型,进而将目标预训练模型应用于对应数据类型的分类或识别等任务中。
[0114]
然后根据测试结果对该目标预训练模型进行评估,判断测试结果是否符合预设应用需求。当测试结果符合预设的应用需求时,直接输出该目标预训练模型;当测试结果不符合预设的应用需求时,重新对数据集中的预设文本数据进行有抽样放回,并合并抽样样本,得到新的训练集,利用新的训练集重新对预训练模型进行训练,重复该过程,直到最后得到的目标预训练模型的测试结果符合预设的应用需求。
[0115]
在一具体实施例中,测试结果可以是经过训练集训练后的目标预训练模型对测试集的分类正确率。当分类正确率大于或等于预设阈值,即测试结果符合预设的应用需求时,可以认为对预训练模型的局部优化已达到预期目的,该模型能够可靠应用于对应数据类型的分类或识别等任务中。
[0116]
当分类正确率小于预设阈值,即测试结果不符合预设的应用需求时,说明预训练模型仍然需要继续进行优化训练。通过重复执行上述步骤,能够实现不同的训练集及其测试集对预训练模型的反复训练和测试,从而不断优化预训练模型的局部参数,最终使测试结果符合预设的应用需求,从而保证本发明实施例最终输出的预训练模型能够可靠应用于对应数据类型的分类或识别任务中。
[0117]
通过抽样的方式将数据量有限的数据集划分为训练集和测试集,由于每次抽样所获得样本的不同,使得通过抽样能够在数据量有限的数据集上获得多组不同的训练集和对应的测试集,从而实现了有限的数据为基础的模型优化训练。
[0118]
在上述实施例的基础上,优选地,所述目标预训练模型为预设语料库对预设预训
练神经网络模型进行训练得到,所述预设预训练神经网络模型的训练过程中,所述预设预训练神经网络模型各个功能分层的学习率从输出层往输入层方向递减。
[0119]
具体地,获取预设预训练神经网络模型的整体学习率,根据整体学习率确定预设预训练神经网络模型中各个功能分层的学习率,步骤为:将整体学习率作为预设预训练神经网络模型与输出层距离最近的功能分层的学习率。以与输出层距离最近的功能分层的学习率为基准,以输出层方向为上方向,以输入层方向为下方向,将各功能分层对应的上一层功能分层的学习率除以预设值得到的结果,对应作为各功能分层的学习率,其中,所述预设值大于一。
[0120]
按照预设预训练神经网络模型各个功能分层的学习率对预设预训练神经网络模型进行训练,得到目标预训练模型。
[0121]
由于预训练模型是已经经过其它的大量类似构造的数据训练过的模型,虽然其网络中的权重参数并不是100%的适用于新的分类场景,但是直接拿来使用的话,仍然可以完成分类任务,但是分类准确率没有重新经过训练后的目标预训练模型高。在完成一些比较简单的文本分类任务时完全可以使用。
[0122]
因此,该目标预训练模型还可以为预设语料库直接对预训练神经网络模型进行训练后得到,一般地,当需要使用该目标预训练模型时,直接拿来使用即可,此种情况下,目标预训练模型的自身参数即为预训练模型经过预设语料库训练后的参数。
[0123]
本发明实施例中,即时在没有样本数据的情况下,也可以利用预训练模型本身的参数完成分类任务,即时在没有样本数据的情况下也能适用,具有较强的实用性。
[0124]
在上述实施例的基础上,优选地,所述目标预训练模型为微调预训练模型,具体通过如下步骤获得:
[0125]
利用预设文本数据和预设文本标签对预设预训练神经网络模型进行训练,得到参考预训练模型;
[0126]
将所述参考预训练模型和预设语料库结合,得到所述微调预训练模型。
[0127]
目标预训练模型既可是上述实施例中重新对预训练模型进行训练之后的模型,也可以是原始的预训练模型,还可以是本发明实施例中经过微调之后的预训练模型。
[0128]
具体地,先利用训练样本,对预训练神经网络模型进行训练,得到参考预训练模型,预设语料库为专用词典或识别规则,在后续使用参考预训练模型和预设语料库结合的微调预训练模型时,可以将标记文本数据输入预设语料库后,其会与预设语料库的专用词典进行匹配,并根据识别规则生成相应的特征向量。
[0129]
可以理解的是,预设语料库可以按照标记文本数据所属场景类型所需的业务要求而专门定制,即每一场景类型都对应一微调预训练模型,这些微调预训练模型包含的预设语料库都不同,但包含的预训练模型相同。
[0130]
在上述实施例的基础上,优选地,所述预训练模型包括bert、albert、xlnet。
[0131]
需要说明的是,bert(bidirectional encoder representation from transformers,简称双向传输的编码器),ert的模型架构基于多层双向转换解码,因为decoder是不能获要预测的信息的,模型的主要创新点都在预训练方法上,即用了masked lm和next sentence prediction两种方法分别捕捉词语和句子级别的表现。
[0132]
其中“双向”表示模型在处理某一个词时,它能同时利用前面的词和后面的词两部
分信息,这种“双向”的来源在于bert与传统语言模型不同,它不是在给你大牛股所有前面词的条件下预测最可能的当前词,而是随机遮掩一些词,并利用所有没被遮掩的词进行预测。
[0133]
albert是轻量级bert模型,其比bert模型参数小18倍,性能还超越了bert。
[0134]
xlnet,自bert预训练

微调模式开创以来,这个自然语言处理nlp中的又一重大进展。xlnet融合了自回归(ar,单向语言模型)、自编码(ae,双向语言模型)等语言模型特征,采用最先进的transformer特征提取器(transformer

xl,利用分割循环机制和相对位置编码进行高并发

超长文本处理),开创性地提出了排列语言模型(permutation language modeling)。
[0135]
综上,本发明实施例提供一种基于神经网络的文本分类方法,该方法利用预训练模型自身的特点,利用预训练模型自身参数代替传统方法中在预训练模型外面构造的一层神经网络的作用,确定待分类文本的最终类别,由于本发明实施例中预训练模型可以直接拿来使用,不需要重新利用大量的样本数据进行训练,因此本发明实施例省略了神经网络模型的训练过程,从而节约了训练时间,提高了该方法的使用效率。
[0136]
并且,由于预训练模型是已经经过其它的大量类似构造的数据训练过的模型,因此,对预训练模型重新训练进行适应性的局部参数优化,并不像训练一个全新模型那样,需要海量的训练数据,使用与具体相契合的有用预设文本数据,对预训练模型稍加调整,能够使模型应用于全新的领域,并解决新的分类问题。即使在需要重新进行训练的情况下,也不必要使用大量样本数据,因此训练时间也不会太长,并且可以提高待分类文本的分类精度。
[0137]
最后,即时在没有样本数据的情况下,也可以利用预训练模型本身的参数完成分类任务,即时在没有样本数据的情况下也能适用,具有较强的实用性。
[0138]
图3为本发明实施例提供的一种基于神经网络的文本分类系统的结构示意图,如图3所示,该系统包括:向量模型310、概率模型320和分类模型330,其中:
[0139]
向量模型310用于根据待分类文本和目标预训练模型,预测每一预设类别的字向量,所述待分类文本符合预设模板对应的文本格式;
[0140]
概率模型320用于根据每一预设类别的字向量和所述目标预训练模型中的参数,获取每一预设类别的概率;
[0141]
分类模型330用于根据每一预设类别的概率,确定所述待分类文本的最终类别。
[0142]
在上述实施例的基础上,优选地,所示概率模块包括转换单元和计算单元,其中:
[0143]
所示转换单元用于根据每一预设类别的字向量和所述目标预训练模型中的转换矩阵,获取每一预设类别的表示向量;
[0144]
所示计算单元用于根据每一预设类别的表示向量,获取每一预设类别的概率。
[0145]
在上述实施例的基础上,优选地,还包括第一训练模块,所述第一训练模块用于利用预设文本数据和预设文本标签对预训练模型进行训练,得到所述目标预训练模型。
[0146]
在上述实施例的基础上,优选地,所述第一训练模块包括抽样单元、训练集单元、测试集单元和训练单元,其中:
[0147]
所述抽样单元用于对所述预设文本数据进行有放回抽样,并合并相同的抽样样本,获取合并抽样样本;
[0148]
所述训练集单元用于将合并抽样样本、所述合并抽样样本对应的预设文本标签作
为训练集;
[0149]
所述测试集单元用于将剩余抽样样本、所述剩余抽样样本对应的预设文本标签作为测试集,所述剩余抽样样本通过所述预设文本数据中除去合并抽样样本后得到;
[0150]
所述训练单元用于根据所述训练集和所述测试集,对所述预训练模型进行训练。
[0151]
在上述实施例的基础上,优选地,还包括第二训练模块,所述第二训练模块用于通过预设语料库对预设预训练神经网络模型进行训练,得到所述目标预训练模型。
[0152]
在上述实施例的基础上,优选地,还包括第三训练模块,所述第三训练模块包括预训练单元和微调单元,其中:
[0153]
所述预训练单元用于利用预设文本数据和预设文本标签对预设预训练神经网络模型进行训练,得到目标预训练模型;
[0154]
所述微调单元用于将所述目标预训练模型和预设语料库结合,得到所述微调预训练模型。
[0155]
本实施例为与上述方法实施例对应的系统实施例,其具体执行过程与上述方法实施例相同,详情请参考上述方法实施例,本系统实施例在此不再赘述。
[0156]
上述基于神经网络的文本分类系统中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
[0157]
图4为本发明实施例提供的一种计算机设备的结构示意图,如图4所示,该计算机设备可以是服务器,该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括计算机存储介质、内存储器。该计算机存储介质存储有操作系统、计算机程序和数据库。该内存储器为计算机存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储执行基于神经网络的文本分类方法过程中生成或获取的数据,如流程节点编号、目标业务节点。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于神经网络的文本分类方法。
[0158]
在一个实施例中,提供了一种计算机设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,处理器执行计算机程序时实现上述实施例中的基于神经网络的文本分类方法的步骤。或者,处理器执行计算机程序时实现基于神经网络的文本分类系统这一实施例中的各模块/单元的功能。
[0159]
在一实施例中,提供一计算机存储介质,该计算机存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中基于神经网络的文本分类方法的步骤。或者,该计算机程序被处理器执行时实现上述基于神经网络的文本分类系统这一实施例中的各模块/单元的功能。
[0160]
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本技术所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(rom)、可编程rom
(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双数据率sdram(ddrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。
[0161]
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。
[0162]
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围,均应包含在本发明的保护范围之内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1