1.本技术涉及人工智能领域,尤其涉及一种文本分类方法、装置、设备及存储介质。
背景技术:2.目前,随着互联网行业的发展与科技的进步,各行各业的信息知识呈爆炸性增长,为了满足海量信息背景下用户的多样化需求,迫切需要对文本信息进行有效的管理,因此各种文本分类技术得到了快速发展,成为了数据挖掘与数据检索等领域的研究热点和核心技术,并对企业和社会信息技术发展有着重大作用。现有技术中,常采用逻辑回归、朴素贝叶斯或随机森林等机器学习的方式进行文本分类,或者利用传统的文本分类手段,例如tf
‑
idf,向量空间模型等,现有技术中的手段,都是基于现有标签的基础上进行分类的,没有生成新标签的能力,即在文本分类时存在仅能根据现有标签对文本进行分类的问题。
技术实现要素:3.本技术提供了一种文本分类方法、装置、设备及存储介质,以解决现有技术中对文本进行分类时,仅能利用现有标签对文本进行分类的问题。
4.为解决上述问题,本技术提供了一种文本分类方法,包括:
5.获取待分类文本数据;
6.将所述待分类文本数据进行关键词抽取,以得到字词信息,根据字词信息进行编码,得到对应的位置信息;
7.将所述字词信息和位置信息分别进行嵌入处理,并将经所述嵌入处理后得到的向量进行合并,得到文本矩阵;
8.所述文本矩阵经预训练的分类模型处理,得到第一标签概率分布和第二标签概率分布,所述预训练的分类模型中包括掩码多头注意力结构;
9.基于所述第一标签概率分布和第二标签概率分布,确定所述待分类文本数据的所属类别。
10.进一步的,所述文本矩阵经预训练的分类模型处理包括:
11.通过所述预训练的分类模型中的归一化层,对所述文本矩阵进行归一化处理,得到第一矩阵;
12.所述第一矩阵通过所述预训练的分类模型中的掩码多头注意力结构进行信息提取处理,得到包含有待分类文本数据上下文信息的第二矩阵;
13.将所述文本矩阵和所述第二矩阵进行残差连接,得到第三矩阵,再通过所述预训练的分类模型中的归一化层,对所述第三矩阵进行归一化处理,得到第四矩阵;
14.通过所述预训练的分类模型中的前馈网络层对所述第四矩阵进行映射处理,得到第五矩阵;
15.所述第五矩阵通过所述预训练的分类模型中的激活函数层处理,得到第六矩阵,并将所述第六矩阵与所述第四矩阵进行残差连接,得到第七矩阵,通过所述预训练的分类
模型中的归一化层,对所述第七矩阵进行归一化处理,得到第八矩阵;
16.对所述第八矩阵分别进行两次线性变换,得到第一标签矩阵和第二标签矩阵;
17.通过所述分类模型中的softmax层,对所述第一标签矩阵和第二标签矩阵进行映射,得到所述第一标签概率分布和第二标签概率分布。
18.进一步的,所述第一矩阵通过所述预训练的分类模型中的掩码多头注意力结构进行信息提取处理,得到包含有待分类文本数据上下文信息的第二矩阵包括:
19.将所述第一矩阵分别与预训练后得到的多批次的参数矩阵相乘,得到多批次的q矩阵、k矩阵和v矩阵;
20.通过将每批的所述q矩阵与所述k矩阵进行点乘,将点乘得到的第一结果再除以所述q矩阵对应维度的开方,得到第二结果,将所述第二结果与掩码矩阵相加后再经softmax计算,得到权重矩阵,所述掩码矩阵基于所述字词信息构建得到;
21.将所述权重矩阵与对应批次的所述v矩阵相乘,得到每批次第九矩阵;
22.通过将所有批次的第九矩阵进行拼接,并将拼接后的矩阵通过线性变换,得到所述第二矩阵。
23.进一步的,所述基于所述第一标签概率分布和第二标签概率分布,确定所述待分类文本数据的所属类别包括:
24.获取所述第一标签概率分布中概率最大值对应的标签,并判断所述概率最大值是否大于等于预设数值;
25.若所述概率最大值小于所述预设数值,则将所述第二标签概率分布中概率最大值对应的标签,作为所述待分类文本数据所属的类别,并将所述第二标签概率分布中概率最大值对应的标签保存至标签词表中;
26.若所述概率最大值大于等于所述预设数值,则将所述第一标签概率分布中概率最大值对应的标签,作为所述待分类文本数据所属的类别。
27.进一步的,所述将所述待分类文本数据进行关键词抽取包括:
28.利用结巴分词对所述待分类文本数据进行分词处理,得到对应的多个字词;
29.利用关键词抽取算法对多个所述字词进行关键词抽取,抽取预设比例的关键词,并用掩码代替所述多个字词中的所述关键词。
30.进一步的,所述将所述待分类文本数据进行关键词抽取,以得到字词信息,根据字词信息进行编码,得到对应的位置信息包括:
31.基于所述关键词抽取算法得到的所述关键词的权重,对所述关键词进行排序,且在每个所述关键词前设定标识符,得到关键词信息;
32.将包含所述掩码的多个字词组成的信息与关键词信息进行合并,得到字词信息;
33.根据所述字词信息,进行位置编码,得到对应的位置信息。
34.进一步的,所述掩码矩阵基于所述字词信息构建得到包括:
35.基于所述包含所述掩码的多个字词组成的信息,所述信息的各内容间相互关联,根据所述关联关系,构建第一数据;
36.基于关键词信息中的内容接受所述字词信息中前文传递的信息,构建第二数据;
37.将所述第一数据和第二数据进行拼接,并利用填充内容填充拼接后的空余位置,得到所述掩码矩阵。
38.为了解决上述问题,本技术还提供一种文本分类装置,所述装置包括:
39.获取模块,用于获取待分类文本数据;
40.信息提取模块,用于将所述待分类文本数据进行关键词抽取,以得到字词信息,根据字词信息进行编码,得到对应的位置信息;
41.向量化模块,用于将所述字词信息和位置信息分别进行嵌入处理,并将经所述嵌入处理后得到的向量进行合并,得到文本矩阵;
42.分类模块,用于所述文本矩阵经预训练的分类模型处理,得到第一标签概率分布和第二标签概率分布,所述预训练的分类模型中包括掩码多头注意力结构;
43.输出模块,用于基于所述第一标签概率分布和第二标签概率分布,确定所述待分类文本数据的所属类别。
44.为了解决上述问题,本技术还提供一种计算机设备,包括:
45.至少一个处理器;以及,
46.与所述至少一个处理器通信连接的存储器;其中,
47.所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的文本分类方法。
48.为了解决上述问题,本技术还提供一种非易失性的计算机可读存储介质,所述计算机可读存储介质上存储有计算机可读指令,所述计算机可读指令被处理器执行时实现如上所述的文本分类方法。
49.根据本技术实施例提供的一种文本分类方法、装置、设备及存储介质,与现有技术相比至少具有以下有益效果:
50.通过获取待分类文本数据,将待分类文本数据进行关键词抽取,得到字词信息,再根据所述字词信息进行位置编码,得到对应的位置信息,通过得到字词信息和位置信息,便于后续的分类模型能更好的理解待分类文本;通过将字词信息和位置信息分别进行嵌入处理,并将经所述嵌入处理后得到的向量,进行合并得到文本矩阵,将文本矩阵输入至经预训练的分类模型中进行处理,得到第一标签概率分布和第二标签概率分布,所述第一标签概率分布为现有标签的概率,第二标签概率为针对文本新生成的标签的概率;基于所述第一标签概率分布和第二标签概率分布,确定所述待分类文本数据的所属类别,能在提高分类准确率的情况下,不仅具有分类于指定标签的能力,还具有生成标签的能力,提高了打标签的容错性。
附图说明
51.为了更清楚地说明本技术中的方案,下面将对本技术实施例描述中所需要使用的附图做一个简单介绍,显而易见地,下面描述中的附图是本技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
52.图1为本技术一实施例提供的文本分类方法的流程示意图;
53.图2为本技术一实施例提供的整体网络结构示意图;
54.图3为本技术一实施例提供的掩码矩阵示意图;
55.图4为本技术一实施例提供的文本分类装置的模块示意图;
56.图5为本技术一实施例的计算机设备的结构示意图。
具体实施方式
57.除非另有定义,本文所使用的所有的技术和科学术语与属于本技术的技术领域的技术人员通常理解的含义相同;本文中在申请的说明书中所使用的术语只是为了描述具体的实施例的目的,不是旨在于限制本技术;本技术的说明书和权利要求书及上述附图说明中的术语“包括”和“具有”以及它们的任何变形,意图在于覆盖不排他的包含。本技术的说明书和权利要求书或上述附图中的术语“第一”“第二”等是用于区别不同对象,而不是用于描述特定顺序。
58.在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本技术的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是是相同的实施例,也不是与其它实施例相互排斥的独立的或备选的实施例。本领域技术人员显式地或隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
59.本技术提供一种文本分类方法。参照图1和图2所示,图1为本技术一实施例提供的文本分类方法的流程示意图,图2为本技术一实施例提供的整体网络结构示意图。
60.在本实施例中,文本分类方法包括:
61.s1、获取待分类文本数据;
62.具体的,通过从数据库中获取待分类文本数据,或者直接接收由用户输入的待分类文本数据。
63.当所述从数据库中获取待分类文本数据时,需向数据库发送调用请求,所述调用请求携带验签令牌;接收所述数据库返回的验签结果,并在验签结果为通过时,调用所述数据库中的待分类文本数据。
64.并且还获取现有的标签。
65.通过对数据库进行加密,并且在提取数据库中的待分类文本数据时需要进行验签,保证了数据的安全。
66.s2、将所述待分类文本数据进行关键词抽取,以得到字词信息,根据字词信息进行编码,得到对应的位置信息;
67.具体的,通过利用关键词抽取算法来抽取关键词,并用掩码替换所述待分类文本中的关键词,以及将抽取出的关键词组合成关键词信息,将所述包含掩码的待分类文本与关键词信息进行合并拼接得到字词信息;再对字词信息进行编码得到对应的位置信息。
68.进一步的,所述将所述待分类文本数据进行关键词抽取包括:
69.利用结巴分词对所述待分类文本数据进行分词处理,得到对应的多个字词;
70.利用关键词抽取算法对多个所述字词进行关键词抽取,抽取预设比例的关键词,并用掩码代替所述多个字词中的所述关键词。
71.具体的,首先通过结巴分词对待处理文本数据进行分词处理,将待处理文本数据分为单独的字,从而得到多个字词;随后利用关键词抽取算法对所述多个字词进行关键词抽取,在本技术中,所述关键词抽取算法为tf
‑
idf算法;通过tf
‑
idf算法抽取文本中的核心关键词,且预设比例为10%
‑
15%,即根据关键词所占权重进行排序,抽取权重高的前10%
‑
15%,在抽取完成后在关键词原位置处,用掩码来代替,从而得到包含掩码的多个字词和抽取得到的关键词。
72.例如有w1,w2,w3,w4,w5,w6,w7……
w
t
多个字,其中抽取到w2,w3以及w6,w7组成的两个
关键词,得到包含掩码的多个字词w1,[mask],w4,w5,[mask]
……
w
t
和抽取到的关键词w2,w3以及w6,w7。
[0073]
通过对待分类文本数据进行关键词提取的预处理,便于后续得到字词信息和位置信息。
[0074]
进一步的,所述将所述待分类文本数据进行关键词抽取,以得到字词信息,根据字词信息进行编码,得到对应的位置信息包括:
[0075]
基于所述关键词抽取算法得到的所述关键词的权重,对所述关键词进行排序,且在每个所述关键词前设定标识符,得到关键词信息;
[0076]
将包含所述掩码的多个字词组成的信息与关键词信息进行合并,得到字词信息;
[0077]
根据所述字词信息,进行位置编码,得到对应的位置信息。
[0078]
具体的,在抽取到关键词后,根据关键词的权重进行排序,并在每个关键词前设定标识符[start],例如两组关键词w2,w3以及w6,w7,按照权重进行排序,分别为2,1;再加上标识符[start],即得到关键词信息[start],w6,w7,[start],w2,w3;
[0079]
将包含所述掩码的多个字词组成的信息与关键词信息进行合并,得到字词信息w1,[mask],w4,w5,[mask]
……
w
t
,[start],w6,w7,[start],w2,w3,并基于字词信息进行位置编码得到两组编码,第一组即根据真实位置进行编码得到1,2,3,4,5
……
t,5,5,5,2,2,2;对于关键词的编码,其编码与关键词在多个字词所处位置的掩码编码一致,即w6,w7对应的是第二个掩码的编码,即5;w2,w3对应的是第一个掩码的编码,即2。第二组即根据标识符开始进行编码,得到0,0,0,0,0
……
0,1,2,3,1,2,3。
[0080]
通过对信息进行拼接得到字词信息并根据字词信息得到位置信息,通过引入位置信息便于后续分类模型对位置的识别,还便于后续根据字词信息得到掩码矩阵。
[0081]
s3、将所述字词信息和位置信息分别进行嵌入处理,并将经所述嵌入处理后得到的向量进行合并,得到文本矩阵;
[0082]
具体的,通过向量转化模型对字词信息和位置信息分别进行处理,例如采用预训练的语言模型bert,将字词信息进行embedding得到向量x1,维度为[l,d],其中l为输入数据的长度,d为embedding后向量的维度。将位置信息也进行embedding,分别得到x2,x3,维度与x1一致为[l,d]。将x1、x2和x3进行合并得到文本矩阵。
[0083]
s4、所述文本矩阵经预训练的分类模型处理,得到第一标签概率分布和第二标签概率分布,所述预训练的分类模型中包括掩码多头注意力结构;
[0084]
具体的,通过在分类模型中引入掩码多头注意力结构来提取文本的上下文信息,文本矩阵经预训练的分类模型处理,得到第一标签概率分布和第二标签概率分布,所述第一标签概率分布为针对现有标签得到的概率,所述第二标签概率问贴近文本矩阵得到的新生成标签的概率。
[0085]
进一步的,所述文本矩阵经预训练的分类模型处理包括:
[0086]
通过所述预训练的分类模型中的归一化层,对所述文本矩阵进行归一化处理,得到第一矩阵;
[0087]
所述第一矩阵通过所述预训练的分类模型中的掩码多头注意力结构进行信息提取处理,得到包含有待分类文本数据上下文信息的第二矩阵;
[0088]
将所述文本矩阵和所述第二矩阵进行残差连接,得到第三矩阵,再通过所述预训
练的分类模型中的归一化层,对所述第三矩阵进行归一化处理,得到第四矩阵;
[0089]
通过所述预训练的分类模型中的前馈网络层对所述第四矩阵进行映射处理,得到第五矩阵;
[0090]
所述第五矩阵通过所述预训练的分类模型中的激活函数层处理,得到第六矩阵,并将所述第六矩阵与所述第四矩阵进行残差连接,得到第七矩阵,通过所述预训练的分类模型中的归一化层,对所述第七矩阵进行归一化处理,得到第八矩阵;
[0091]
对所述第八矩阵分别进行两次线性变换,得到第一标签矩阵和第二标签矩阵;
[0092]
通过所述分类模型中的softmax层,对所述第一标签矩阵和第二标签矩阵进行映射,得到所述第一标签概率分布和第二标签概率分布。
[0093]
具体的,首先文本矩阵通过归一化层,即norm(normalization)层对所述文本矩阵进行归一化处理,可在一定程度上提升模型的收敛速度和精度,得到第一矩阵x4,具体的
[0094]
其中μ表示文本矩阵的均值,σ表示文本矩阵的标准差。
[0095]
所述第一矩阵通过所述预训练的分类模型中的掩码多头注意力结构进行信息提取处理,得到包含有待分类文本数据上下文信息的第二矩阵x5,所述掩码多头注意力结构跟bert的encoder部分结构基本相同,如图3所示,区别在于增加了一个掩码矩阵,目的在于将未来信息给遮盖掉,即只能接收前文传递的信息,从而将单一的编码器/解码器转化为生成模型。
[0096]
在本技术中,得到第二矩阵x5后,还可进行dropout处理,以有效抑制过拟合。
[0097]
将所述文本矩阵和经dropout处理后的所述第二矩阵x5进行残差连接,得到第三矩阵,再通过所述预训练的分类模型中的norm层,对所述第三矩阵进行归一化处理,得到第四矩阵x6,具体的
[0098]
其中μ
′
表示进行第一残差连接后的均值,σ
′
表示进行第一残差连接后的标准差,通过add&norm:残差连接改善梯度消失问题。
[0099]
将归一化后的第四矩阵x6输入到分类模型中的前馈网络,即fnn(feedforward neural network)网络中,得到第五矩阵x7。fnn网络是一个经过两层线性映射的神经网络,具体计算公式为:x7=f(w2·
f(w1·
x6+b1)+b2),其中w1,w2,b1,b2为训练参数,所述训练参数为对分类模型预训练后,已经收敛的参数。
[0100]
所述第五矩阵x7通过所述预训练的分类模型中的激活函数层处理,得到第六矩阵,并将所述第六矩阵与所述第四矩阵x6进行残差连接,得到第七矩阵,通过所述预训练的分类模型中的norm层,对所述第七矩阵进行归一化处理,得到第八矩阵x8;具体算法为其中μ
″
表示进行第二残差连接后的均值,σ
″
表示进行第二残差连接后的标准差,且第八矩阵x8其维度为[l1,d],l1表示要生成字的数量。
[0101]
对所述第八矩阵x8分别进行两次线性变换,得到第一标签矩阵x9和第二标签矩阵x
10
;第一标签矩阵x9的维度为[l2,d1],其中l2表示生成词数量,d1表示标签的数量。第二标
签矩阵x
10
的维度为[l3,d2],其中l3表示生成字的数量,d2表示词表的数量。
[0102]
通过所述分类模型中的softmax层,对所述第一标签矩阵和第二标签矩阵进行映射,得到所述第一标签概率分布和第二标签概率分布,所述第一标签概率分布和第二标签概率分布的维度分别与第一标签矩阵x9和第二标签矩阵x
10
一致。
[0103]
所述预训练的分类模型中的norm层、掩码多头注意力结构、第一add&norm层、fnn层、gelu层和第二add&norm层可看作一组,在本技术其他实施例中,可在分类模型中设置多组,以得到更好的效果,即如图2所示,其中的model layer可设置多个。
[0104]
通过分类模型中的各层对数据进行处理,以得到第一标签矩阵x9和第二标签矩阵x
10
,实现对待分类数据的准确分类,以及对待分类数据的分类不仅仅局限于现有标签,还可生成新标签。
[0105]
再进一步的,所述第一矩阵通过所述预训练的分类模型中的掩码多头注意力结构进行信息提取处理,得到包含有待分类文本数据上下文信息的第二矩阵包括:
[0106]
将所述第一矩阵分别与预训练后得到的多批次的参数矩阵相乘,得到多批次的q矩阵、k矩阵和v矩阵;
[0107]
通过将每批的所述q矩阵与所述k矩阵进行点乘,将点乘得到的第一结果再除以所述q矩阵对应维度的开方,得到第二结果,将所述第二结果与掩码矩阵相加后再经softmax计算,得到权重矩阵,所述掩码矩阵基于所述字词信息构建得到;
[0108]
将所述权重矩阵与对应批次的所述v矩阵相乘,得到每批次第九矩阵;
[0109]
通过将所有批次的第九矩阵进行拼接,并将拼接后的矩阵通过线性变换,得到所述第二矩阵。
[0110]
具体的,对于多批次的参数矩阵在对分类模型进行第一次训练前,多批次的参数矩阵为随机生成的,也可以根据正态分布或均匀分布等随机生成,在分类模型不断训练过程中,多批次的参数矩阵不断变化收敛,直至分类模型训练完毕,多批次的参数矩阵趋于稳定。在后续利用训练好的分类模型中,直接利用稳定的多批次的参数矩阵即可。
[0111]
通过利用第一矩阵x4分别乘以多批次的参数矩阵,得到多批次的q,k,v三个矩阵,其公式为q=x4·
w
q
,k=x4·
w
k
,v=x4·
w
v
,其中w
q
,w
k
,w
v
即为参数矩阵,再利用q,k,v三个矩阵,计算输入文本中各个词所占比重,其中针对只接收上文信息的单词权重为0,具体计算公式为
[0112]
其中a表示权重矩阵,d
k
表示q,k或v矩阵维度,再将权重矩阵与对应批次的v矩阵相乘,得到每批次的第九矩阵,将所有批次的第九矩阵进行拼接,并将拼接后的矩阵再进行线性变换,得到第二矩阵x5。
[0113]
通过引入掩码多头注意力结构,即masked multi
‑
head attention,实现了提取文本的上下文信息,并且加入了掩码来将未来信息给遮盖,可以实现对文本更好的分类,提高文本分类的准确性。
[0114]
再进一步的,所述对所述第八矩阵分别进行两次线性变换,得到第一标签矩阵和第二标签矩阵包括:
[0115]
对所述第八矩阵中每个字向量求平均后,再进行线性变换,得到所述第一标签矩
阵;
[0116]
对所述第八矩阵中每个字向量进行线性变换,得到所述第二标签矩阵。
[0117]
具体的,由于每个标签词都由多个字组成,所以对标识符[start]前的每个字的向量求平均,再进行线性变换,得到第一标签矩阵x9;另一个仅进行线性变换处理,则直接对第八矩阵中的每个字向量进行线性变换,得到第二标签矩阵x
10
。
[0118]
通过进行两种不同的线性变换手段,进而得到两个不同的标签矩阵,实现对现有标签和新生成标签的分类。
[0119]
再进一步的,在所述将所述文本矩阵和第二矩阵进行残差连接之前,还包括:
[0120]
将所述第二矩阵通过所述分类模型中的dropout层处理,以抑制所述分类模型过拟合。
[0121]
具体的,通过在残差连接前插入dropout层,来有效抑制分类模型的过拟合。
[0122]
又进一步的,所述掩码矩阵基于所述字词信息构建得到包括:
[0123]
基于所述包含所述掩码的多个字词组成的信息,所述信息的各内容间相互关联,根据所述关联关系,构建第一数据;
[0124]
基于关键词信息中的内容接受所述字词信息中前文传递的信息,构建第二数据;
[0125]
将所述第一数据和第二数据进行拼接,并利用填充内容填充拼接后的空余位置,得到所述掩码矩阵。
[0126]
具体的,如图3所示,由于字词信息中分为两部分,一部分即包含掩码的多个字词部分,另一部分即关键词信息部分,对于包含掩码的多个字词部分,相互之间可以关联,即可以提取上下文信息,根据关联信息,来构建第一数据;对于关键词信息部分,需要对未来信息加以遮掩,即关键词信息部分信息单向传递,只接收前文传递的信息,所以以此构建第二数据,将所述第一数据和第二数据进行拼接,并利用填充内容填充拼接后的空余位置,来得到掩码矩阵。进一步的,对于第一数据和第二数据部分直接以0表示,对于填充内容部分以服务器标签,即
‑
∞。
[0127]
通过构建掩码矩阵,来将未来信息给遮盖掉,将单一的编码器/解码器转化为生成模型。
[0128]
s5、基于所述第一标签概率分布和第二标签概率分布,确定所述待分类文本数据的所属类别。
[0129]
具体的,由于第一标签概率分布为基于现有标签得到的概率分布,而第二标签概率分布为新生成标签的概率分布,综合第一标签概率分布和第二标签概率分布进行标签的选取,当第一标签概率分布不满足要求时,根据第二标签概率分布来进行标签的选取。
[0130]
进一步的,所述基于所述第一标签概率分布和第二标签概率分布,确定所述待分类文本数据的所属类别包括:
[0131]
获取所述第一标签概率分布中概率最大值对应的标签,并判断所述概率最大值是否大于等于预设数值;
[0132]
若所述概率最大值小于所述预设数值,则将所述第二标签概率分布中概率最大值对应的标签,作为所述待分类文本数据所属的类别,并将所述第二标签概率分布中概率最大值对应的标签保存至标签词表中;
[0133]
若所述概率最大值大于等于所述预设数值,则将所述第一标签概率分布中概率最
大值对应的标签,作为所述待分类文本数据所属的类别。
[0134]
具体的,由于第一标签概率分布为基于现有标签得到的概率分布,判断第一标签概率分布中的概率最大值是否大于等于预设数值,若大于等于预设数值,则直接将第一标签概率分布中概率最大值对应的标签,作为待分类文本数据所属的类别。若小于预设数值,则直接提取第二标签概率分布中的概率最大值对应的标签,作为待分类文本数据对应所述的类别,并将该标签保存至标签词表。再本技术中所述预设数值为0.5。
[0135]
通过将第一标签概率分布与预设数值进行比较,根据比较结果得到不同的标签,确保选取到与待分类文本数据最接近的标签,提高文本分类的有效性。
[0136]
需要强调的是,为了进一步保证数据的私密性和安全性,所述待分类文本数据的所述类别的所有数据还可以存储于一区块链的节点中。
[0137]
本技术所指区块链是分布式数据存储、点对点传输、共识机制、加密算法等计算机技术的新型应用模式。区块链(blockchain),本质上是一个去中心化的数据库,是一串使用密码学方法相关联产生的数据块,每一个数据块中包含了一批次网络交易的信息,用于验证其信息的有效性(防伪)和生成下一个区块。区块链可以包括区块链底层平台、平台产品服务层以及应用服务层等。
[0138]
本实施例的文本分类方法通过获取待分类文本数据,将待分类文本数据进行关键词抽取,得到字词信息,再根据所述字词信息进行位置编码,得到对应的位置信息,通过得到字词信息和位置信息,便于后续的分类模型能更好的理解待分类文本;通过将字词信息和位置信息分别进行嵌入处理,并将经所述嵌入处理后得到的向量,进行合并得到文本矩阵,将文本矩阵输入至经预训练的分类模型中进行处理,得到第一标签概率分布和第二标签概率分布,所述第一标签概率分布为现有标签的概率,第二标签概率为针对文本新生成的标签的概率;基于所述第一标签概率分布和第二标签概率分布,确定所述待分类文本数据的所属类别,在保证分类准确率的情况下,不仅具有分类于指定标签的功能,还具有生成标签的能力,提高了打标签的容错性。
[0139]
本实施例还提供一种文本分类装置,如图4所示,是本技术文本分类装置的功能模块图。
[0140]
本技术所述文本分类装置100可以安装于电子设备中。根据实现的功能,所述文本分类装置100可以包括获取模块101、信息提取模块102、向量化模块103、分类模块104和输出模块105。本技术所述模块也可以称之为单元,是指一种能够被电子设备处理器所执行,并且能够完成固定功能的一系列计算机程序段,其存储在电子设备的存储器中。
[0141]
在本实施例中,关于各模块/单元的功能如下:
[0142]
获取模块101,用于获取待分类文本数据;
[0143]
具体的,获取模块101通过从数据库中获取待分类文本数据,或者直接接收由用户输入的待分类文本数据。
[0144]
信息提取模块102,用于将所述待分类文本数据进行关键词抽取,以得到字词信息,根据字词信息进行编码,得到对应的位置信息;
[0145]
具体的,信息提取模块102通过利用关键词抽取算法来抽取关键词,并用掩码替换所述待分类文本中的关键词,以及将抽取出的关键词组合成关键词信息,将所述包含掩码的待分类文本与关键词信息进行合并拼接得到字词信息;再对字词信息进行编码得到对应
的位置信息。
[0146]
进一步的,所述信息提取模块102包括分词子模块和抽取替换子模块;
[0147]
所述分词子模块,用于利用结巴分词对所述待分类文本数据进行分词处理,得到对应的多个字词;
[0148]
所述抽取替换子模块,用于利用关键词抽取算法对多个所述字词进行关键词抽取,抽取预设比例的关键词,并用掩码代替所述多个字词中的所述关键词。
[0149]
具体的,首先分词子模块通过结巴分词对待处理文本数据进行分词处理,将待处理文本数据分为单独的字,从而得到多个字词;随后所述抽取替换子模块利用关键词抽取算法对所述多个字词进行关键词抽取,在本技术中,所述关键词抽取算法为tf
‑
idf算法;所述抽取替换子模块通过tf
‑
idf算法抽取文本中的核心关键词,且预设比例为10%
‑
15%,即根据关键词所占权重进行排序,抽取权重高的前10%
‑
15%,在抽取完成后在关键词原位置处,用掩码来代替,从而得到包含掩码的多个字词和抽取得到的关键词。
[0150]
通过分词子模块和抽取替换子模块的配合对待分类文本数据进行关键词提取的预处理,便于后续得到字词信息和位置信息。
[0151]
进一步的,所述信息提取模块102包括关键信息子模块、字词信息子模块和编码子模块;
[0152]
所述关键信息子模块,用于基于所述关键词抽取算法得到的所述关键词的权重,对所述关键词进行排序,且在每个所述关键词前设定标识符,得到关键词信息;
[0153]
所述字词信息子模块,用于将包含所述掩码的多个字词组成的信息与关键词信息进行合并,得到字词信息;
[0154]
所述编码子模块,用于根据所述字词信息,进行位置编码,得到对应的位置信息。
[0155]
具体的,所述关键信息子模块在抽取到关键词后,根据关键词的权重进行排序,并在每个关键词前设定标识符[start];所述字词信息子模块将包含所述掩码的多个字词组成的信息与关键词信息进行合并,得到字词信息;所述编码子模块基于字词信息进行位置编码得到两组编码,第一组即根据真实位置进行编码得到,第二组即根据标识符开始进行编码。
[0156]
通过关键信息子模块、字词信息子模块和编码子模块的配合对信息进行拼接得到字词信息并根据字词信息得到位置信息,通过引入位置信息便于后续分类模型对位置的识别,还便于后续根据字词信息得到掩码矩阵。
[0157]
向量化模块103,用于将所述字词信息和位置信息分别进行嵌入处理,并将经所述嵌入处理后得到的向量进行合并,得到文本矩阵;
[0158]
具体的,向量化模块103通过向量转化模型对字词信息和位置信息分别进行处理,例如采用预训练的语言模型bert,将字词信息进行embedding得到向量x1,维度为[l,d],其中l为输入数据的长度,d为embedding后向量的维度。将位置信息也进行embedding,分别得到x2,x3,维度与x1一致为[l,d]。将x1、x2和x3进行合并得到文本矩阵。
[0159]
分类模块104,用于所述文本矩阵经预训练的分类模型处理,得到第一标签概率分布和第二标签概率分布,所述预训练的分类模型中包括掩码多头注意力结构;
[0160]
具体的,分类模块104通过在分类模型中引入掩码多头注意力结构来提取文本的上下文信息,文本矩阵经预训练的分类模型处理,得到第一标签概率分布和第二标签概率
分布,所述第一标签概率分布为针对现有标签得到的概率,所述第二标签概率问贴近文本矩阵得到的新生成标签的概率。
[0161]
进一步的,所述分类模块104包括归一化子模块、信息提取子模块、第一连接子模块、映射子模块、第二连接子模块、线性变换子模块和激活子模块;
[0162]
所述归一化子模块,用于通过所述预训练的分类模型中的归一化层,对所述文本矩阵进行归一化处理,得到第一矩阵;
[0163]
所述信息提取子模块,用于所述第一矩阵通过所述预训练的分类模型中的掩码多头注意力结构进行信息提取处理,得到包含有待分类文本数据上下文信息的第二矩阵;
[0164]
所述第一连接子模块,用于将所述文本矩阵和所述第二矩阵进行残差连接,得到第三矩阵,再通过所述分类模型中的归一化层,对所述第三矩阵进行归一化处理,得到第四矩阵;
[0165]
所述映射子模块,用于通过所述预训练的分类模型中的前馈网络层对所述第四矩阵进行映射处理,得到第五矩阵;
[0166]
所述第二连接子模块,用于所述第五矩阵通过所述预训练的分类模型中的激活函数层处理,得到第六矩阵,并将所述第六矩阵与所述第四矩阵进行残差连接,得到第七矩阵,通过所述预训练的分类模型中的归一化层,对所述第七矩阵进行归一化处理,得到第八矩阵;
[0167]
所述线性变换子模块,用于对所述第八矩阵分别进行两次线性变换,得到第一标签矩阵和第二标签矩阵;
[0168]
所述激活子模块,用于通过所述分类模型中的softmax层,对所述第一标签矩阵和第二标签矩阵进行映射,得到所述第一标签概率分布和第二标签概率分布。
[0169]
具体的,首先文本矩阵通过归一化子模块的归一化层,即norm(normalization)层对所述文本矩阵进行归一化处理,可在一定程度上提升模型的收敛速度和精度,得到第一矩阵x4,具体的
[0170]
其中μ表示文本矩阵的均值,σ表示文本矩阵的标准差。
[0171]
所述信息提取子模块将所述第一矩阵通过所述预训练的分类模型中的掩码多头注意力结构进行信息提取处理,得到包含有待分类文本数据上下文信息的第二矩阵x5,所述掩码多头注意力结构跟bert的encoder部分结构基本相同,区别在于增加了一个掩码矩阵,目的在于将未来信息给遮盖掉,即只能接收前文传递的信息,从而将单一的编码器/解码器转化为生成模型。
[0172]
在本技术中,得到第二矩阵x5后,还可进行dropout处理,以有效抑制过拟合。
[0173]
所述第一连接子模块将所述文本矩阵和经dropout处理后的所述第二矩阵x5进行残差连接,得到第三矩阵,再通过所述预训练的分类模型中的norm层,对所述第三矩阵进行归一化处理,得到第四矩阵x6,具体的其中μ
′
表示进行第一残差连接后的均值,σ
′
表示进行第一残差连接后的标准差,通过add&norm:残差连接改善梯度消失问题。
[0174]
所述映射子模块将归一化后的第四矩阵x6输入到分类模型中的前馈网络,即fnn(feedforward neural network)网络中,得到第五矩阵x7。fnn网络是一个经过两层线性映射的神经网络,具体计算公式为:
[0175]
x7=f(w2·
f(w1·
x6+b1)+b2)
[0176]
其中w1,w2,b1,b2为训练参数,所述训练参数为对分类模型预训练后,已经收敛的参数。
[0177]
所述第二连接子模块所述第五矩阵x7通过所述预训练的分类模型中的激活函数层处理,得到第六矩阵,并将所述第六矩阵与所述第四矩阵x6进行残差连接,得到第七矩阵,通过所述预训练的分类模型中的norm层,对所述第七矩阵进行归一化处理,得到第八矩阵x8;具体算法为
[0178]
其中μ
″
表示进行第二残差连接后的均值,σ
″
表示进行第二残差连接后的标准差,且第八矩阵x8其维度为[l1,d],l1表示要生成字的数量。
[0179]
所述线性变换子模块对所述第八矩阵x8分别进行两次线性变换,得到第一标签矩阵x9和第二标签矩阵x
10
;第一标签矩阵x9的维度为[l2,d1],其中l2表示生成词数量,d1表示标签的数量。第二标签矩阵x
10
的维度为[l3,d2],其中l3表示生成字的数量,d2表示词表的数量。
[0180]
所述激活子模块通过所述分类模型中的softmax层,对所述第一标签矩阵和第二标签矩阵进行映射,得到所述第一标签概率分布和第二标签概率分布,所述第一标签概率分布和第二标签概率分布的维度分别与第一标签矩阵x9和第二标签矩阵x
10
一致。
[0181]
通过归一化子模块、信息提取子模块、第一连接子模块、映射子模块、第二连接子模块、线性变换子模块和激活子模块的配合,以得到第一标签矩阵x9和第二标签矩阵x
10
,实现对待分类数据的准确分类,以及对待分类数据的分类不仅仅局限于现有标签,还可生成新标签。
[0182]
再进一步的,所述信息提取子模块包括第一矩阵相乘单元、计算单元、第二矩阵相乘单元和拼接变换单元;
[0183]
所述第一矩阵相乘单元,用于将所述第一矩阵分别与预训练后得到的多批次的参数矩阵相乘,得到多批次的q矩阵、k矩阵和v矩阵;
[0184]
所述计算单元,用于通过将每批的所述q矩阵与所述k矩阵进行点乘,将点乘得到的第一结果再除以所述q矩阵对应维度的开方,得到第二结果,将所述第二结果与掩码矩阵相加后再经softmax计算,得到权重矩阵,所述掩码矩阵基于所述字词信息构建得到;
[0185]
所述第二矩阵相乘单元,用于将所述权重矩阵与对应批次的所述v矩阵相乘,得到每批次第九矩阵;
[0186]
所述拼接变换单元,用于通过将所有批次的第九矩阵进行拼接,并将拼接后的矩阵通过线性变换,得到所述第二矩阵。
[0187]
具体的,所述第一矩阵相乘单元通过利用第一矩阵x4分别乘以多批次的参数矩阵,得到多批次的q,k,v三个矩阵,其公式为q=x4·
w
q
,k=x4·
w
k
,v=x4·
w
v
,其中w
q
,w
k
,w
v
即为参数矩阵,所述计算单元再利用q,k,v三个矩阵,计算输入文本中各个词所占比重,其
中针对只接收上文信息的单词权重为0,具体计算公式为
[0188]
其中a表示权重矩阵,d
k
表示q,k或v矩阵维度,所述第二矩阵相乘单元再将权重矩阵与对应批次的v矩阵相乘,得到每批次的第九矩阵,将所有批次的第九矩阵进行拼接,所述拼接变换单元将拼接后的矩阵再进行线性变换,得到第二矩阵x5。
[0189]
通过第一矩阵相乘单元、计算单元、第二矩阵相乘单元和拼接变换单元的配合,引入掩码多头注意力结构,即masked multi
‑
head attention,实现了提取文本的上下文信息,并且加入了掩码来将未来信息给遮盖,可以实现对文本更好的分类,提高文本分类的准确性。
[0190]
再进一步的,所述线性变换子模块包括第一线性变化单元和第二线性变化单元;
[0191]
所述第一线性变化单元,用于对所述第八矩阵中每个字向量求平均后,再进行线性变换,得到所述第一标签矩阵;
[0192]
所述第二线性变化单元,用于对所述第八矩阵中每个字向量进行线性变换,得到所述第二标签矩阵。
[0193]
具体的,第一线性变化单元,由于每个标签词都由多个字组成,所以对标识符[start]前的每个字的向量求平均,再进行线性变换,得到第一标签矩阵x9;所述第二线性变化单元仅进行线性变换处理,则直接对第八矩阵中的每个字向量进行线性变换,得到第二标签矩阵x
10
。
[0194]
通过第一线性变化单元和第二线性变化单元进行两种不同的线性变换手段,进而得到两个不同的标签矩阵,实现对现有标签和新生成标签的分类。
[0195]
再进一步的,所述分类模块104还包括dropout子模块;
[0196]
所述dropout子模块,用于将所述第二矩阵通过所述分类模型中的dropout层处理,以抑制所述分类模型过拟合。
[0197]
通过所述dropout子模块来有效抑制分类模型过拟合。
[0198]
又进一步的,所述计算单元包括第一数据构建子单元、第二数据构建子单元和拼接子单元;
[0199]
所述第一数据构建子单元,用于基于所述包含所述掩码的多个字词组成的信息,所述信息的各内容间相互关联,根据所述关联关系,构建第一数据;
[0200]
所述第二数据构建子单元,用于基于关键词信息中的内容接受所述字词信息中前文传递的信息,构建第二数据;
[0201]
所述拼接子单元,用于将所述第一数据和第二数据进行拼接,并利用填充内容填充拼接后的空余位置,得到所述掩码矩阵。
[0202]
具体的,由于字词信息中分为两部分,一部分即包含掩码的多个字词部分,另一部分即关键词信息部分,所述第一数据构建子单元对于包含掩码的多个字词部分,相互之间可以关联,即可以提取上下文信息,根据关联信息,来构建第一数据;所述第二数据构建子单元对于关键词信息部分,需要对未来信息加以遮掩,即关键词信息部分信息单向传递,只接收前文传递的信息,所以以此构建第二数据,所述拼接子单元将所述第一数据和第二数据进行拼接,并利用填充内容填充拼接后的空余位置,来得到掩码矩阵。进一步的,对于第
一数据和第二数据部分直接以0表示,对于填充内容部分以服务器标签,即
‑
∞。
[0203]
通过第一数据构建子单元、第二数据构建子单元和拼接子单元的配合构建掩码矩阵,来将未来信息给遮盖掉,将单一的编码器/解码器转化为生成模型。
[0204]
输出模块105,用于基于所述第一标签概率分布和第二标签概率分布,确定所述待分类文本数据的所属类别。
[0205]
具体的,输出模块105由于第一标签概率分布为基于现有标签得到的概率分布,而第二标签概率分布为新生成标签的概率分布,综合第一标签概率分布和第二标签概率分布进行标签的选取,当第一标签概率分布不满足要求时,根据第二标签概率分布来进行标签的选取。
[0206]
进一步的,所述输出模块105包括标签判断子模块、提取保存子模块和标签提取子模块;
[0207]
所述标签判断子模块,用于获取所述第一标签概率分布中概率最大值对应的标签,并判断所述概率最大值是否大于等于预设数值;
[0208]
所述提取保存子模块,用于若所述概率最大值小于所述预设数值,则将所述第二标签概率分布中概率最大值对应的标签,作为所述待分类文本数据所属的类别,并将所述第二标签概率分布中概率最大值对应的标签保存至标签词表中;
[0209]
所述标签提取子模块,用于若所述概率最大值大于等于所述预设数值,则将所述第一标签概率分布中概率最大值对应的标签,作为所述待分类文本数据所属的类别。
[0210]
具体的,所述标签判断子模块由于第一标签概率分布为基于现有标签得到的概率分布,判断第一标签概率分布中的概率最大值是否大于等于预设数值,所述标签提取子模块在第一标签概率分布中的概率最大值大于等于预设数值时,则直接将第一标签概率分布中概率最大值对应的标签,作为待分类文本数据所属的类别。所述提取保存子模块在第一标签概率分布中的概率最大值小于预设数值时,则直接提取第二标签概率分布中的概率最大值对应的标签,作为待分类文本数据对应所述的类别,并将该标签保存至标签词表。
[0211]
通过标签判断子模块、提取保存子模块和标签提取子模块的配合,将第一标签概率分布与预设数值进行比较,根据比较结果得到不同的标签,确保选取到与待分类文本数据最接近的标签,提高文本分类的有效性。
[0212]
通过采用上述装置,所述文本分类装置100通过获取模块101、信息提取模块102、向量化模块103、分类模块104和输出模块105的配合使用,能在提高分类准确率的情况下,不仅具有分类于指定标签的能力,还具有生成标签的能力,提高了打标签的容错性。
[0213]
本技术实施例还提供一种计算机设备。具体请参阅图5,图5为本实施例计算机设备基本结构框图。
[0214]
所述计算机设备4包括通过系统总线相互通信连接存储器41、处理器42、网络接口43。需要指出的是,图中仅示出了具有组件41
‑
43的计算机设备4,但是应理解的是,并不要求实施所有示出的组件,可以替代的实施更多或者更少的组件。其中,本技术领域技术人员可以理解,这里的计算机设备是一种能够按照事先设定或存储的指令,自动进行数值计算和/或信息处理的设备,其硬件包括但不限于微处理器、专用集成电路(application specific integrated circuit,asic)、可编程门阵列(field-programmable gate array,fpga)、数字处理器(digital signal processor,dsp)、嵌入式设备等。
[0215]
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可以与用户通过键盘、鼠标、遥控器、触摸板或声控设备等方式进行人机交互。
[0216]
所述存储器41至少包括一种类型的可读存储介质,所述可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,所述存储器41可以是所述计算机设备4的内部存储单元,例如该计算机设备4的硬盘或内存。在另一些实施例中,所述存储器41也可以是所述计算机设备4的外部存储设备,例如该计算机设备4上配备的插接式硬盘,智能存储卡(smart media card,smc),安全数字(secure digital,sd)卡,闪存卡(flash card)等。当然,所述存储器41还可以既包括所述计算机设备4的内部存储单元也包括其外部存储设备。本实施例中,所述存储器41通常用于存储安装于所述计算机设备4的操作系统和各类应用软件,例如文本分类方法的计算机可读指令等。此外,所述存储器41还可以用于暂时地存储已经输出或者将要输出的各类数据。
[0217]
所述处理器42在一些实施例中可以是中央处理器(central processing unit,cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器42通常用于控制所述计算机设备4的总体操作。本实施例中,所述处理器42用于运行所述存储器41中存储的计算机可读指令或者处理数据,例如运行所述文本分类方法的计算机可读指令。
[0218]
所述网络接口43可包括无线网络接口或有线网络接口,该网络接口43通常用于在所述计算机设备4与其他电子设备之间建立通信连接。
[0219]
本实施例通过处理器执行存储在存储器的计算机可读指令时实现如上述实施例文本分类方法的步骤,通过获取待分类文本数据,将待分类文本数据进行关键词抽取,得到字词信息,再根据所述字词信息进行位置编码,得到对应的位置信息,通过得到字词信息和位置信息,便于后续的分类模型能更好的理解待分类文本;通过将字词信息和位置信息分别进行嵌入处理,并将经所述嵌入处理后得到的向量,进行合并得到文本矩阵,将文本矩阵输入至经预训练的分类模型中进行处理,得到第一标签概率分布和第二标签概率分布,所述第一标签概率分布为现有标签的概率,第二标签概率为针对文本新生成的标签的概率;基于所述第一标签概率分布和第二标签概率分布,确定所述待分类文本数据的所属类别,能在提高分类准确率的情况下,不仅具有分类于指定标签的能力,还具有生成标签的能力,提高了打标签的容错性。
[0220]
本技术实施例还提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机可读指令,所述计算机可读指令可被至少一个处理器执行,以使所述至少一个处理器执行如上述的文本分类方法的步骤,通过获取待分类文本数据,将待分类文本数据进行关键词抽取,得到字词信息,再根据所述字词信息进行位置编码,得到对应的位置信息,通过得到字词信息和位置信息,便于后续的分类模型能更好的理解待分类文本;通过将字词信息和位置信息分别进行嵌入处理,并将经所述嵌入处理后得到的向量,进行合并得到文本矩阵,将文本矩阵输入至经预训练的分类模型中进行处理,得到第一标签概率分布和第二标签概率分布,所述第一标签概率分布为现有标签的概率,第二标签概率为针对文本新生成的标签的概率;基于所述第一标签概率分布和第二标签概率分布,确定所述待分类文
本数据的所属类别,能在提高分类准确率的情况下,不仅具有分类于指定标签的能力,还具有生成标签的能力,提高了打标签的容错性。
[0221]
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本技术的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本技术各个实施例所述的方法。
[0222]
本技术上述实施例的文本分类装置、计算机设备、计算机可读存储介质具有与上述实施例的文本分类方法相同的技术效果,在此不作展开。
[0223]
显然,以上所描述的实施例仅仅是本技术一部分实施例,而不是全部的实施例,附图中给出了本技术的较佳实施例,但并不限制本技术的专利范围。本技术可以以许多不同的形式来实现,相反地,提供这些实施例的目的是使对本技术的公开内容的理解更加透彻全面。尽管参照前述实施例对本技术进行了详细的说明,对于本领域的技术人员来而言,其依然可以对前述各具体实施方式所记载的技术方案进行修改,或者对其中部分技术特征进行等效替换。凡是利用本技术说明书及附图内容所做的等效结构,直接或间接运用在其他相关的技术领域,均同理在本技术专利保护范围之内。