一种结合有监督和无监督方式的文本分类方法及相关装置与流程

未命名 09-11 阅读:109 评论:0


1.本发明属于文本分类技术领域,涉及一种结合有监督和无监督方式的文本分类方法及相关装置。


背景技术:

2.文本分类在文本处理中是很重要的一个模块,其应用非常广泛,比如:垃圾过滤,新闻分类,词性标注等等。它和其他的分类没有本质的区别,核心方法为首先提取分类数据的特征,将原始数据转换为由特征值构成的高维向量,然后选择合适的相似度度量方法,进行分类。但是文本也有自己的特点,根据文本的特点,文本分类的一般流程为:1.预处理;2.文本表示及特征选择;3.构造分类器;4.分类。通常来讲,文本分类任务是指在给定的分类体系中,将文本指定分到某个或某几个类别中。
3.近几年随着深度学习技术的快速发展,涌现出了大量基于字向量、词向量、句向量的文本分类方法。其中,以bert为一个最杰出的代表。其由google的研究人员于2018年开发,已被证明是各种自然语言处理任务(如文本分类、文本摘要、文本生成等)最先进的技术。
4.bert的优越性能,来自于其巨大的网络参数以及海量的训练数据。但这也给硬件条件或数据不足的公司或单位训练和优化bert造成了困难。


技术实现要素:

5.本发明的目的在于解决现有技术中由于硬件条件或数据不足导无法很好的致训练和优化bert的问题,提供一种结合有监督和无监督方式的文本分类方法及相关装置
6.为了实现上述目的,本发明采用以下技术方案予以实现:
7.第一方面,本发明提供一种结合有监督和无监督方式的文本分类方法,包括以下步骤;
8.将待分类的文本信息输入bert模型,得到若干分类结果;
9.提取bert模型输出层的句向量cls,得到若干句向量;或聚合bert模型输出层的所有字向量,得到若干句向量;
10.根据分类结果,对同一类别的句向量求均值,得到类别向量,将所有句向量与所有类别向量做关联,并对类别向量进行加权求和处理得到新的句向量;
11.依次计算每一个新的句向量与对应的类别向量之间的距离,输出距离最短的类别作为新类别;
12.重复计算新的句向量,并输出距离最短的类别,直至每个句子的类别不再发生变化。
13.进一步地,本发明将待分类的文本信息输入bert模型,得到若干分类结果,包括:
14.将待分类的句子拆分成若干子向量,将字向量输入bert模型,得到若干分类结果cn,其中n表示类别的数量。
15.进一步地,本发明聚合是采用加和、平均或池化方法得到句向量am,其中m表示句子数,同时每个句向量对应的类别记为lm。
16.进一步地,本发明将所有句向量与所有类别向量做关联,并对类别向量进行加权求和处理得到新的句向量,包括:
17.对同一类别的句向量求均值,得到类别向量bn,整合得到矩阵b;
18.将每一个句向量与所有类别向量做attention,并将类别向量进行加权求和得到新的句向量a
′m:
[0019][0020][0021]
其中,αn表示b的权重,表示α1~αn,i为正整数,s()表示某种注意力打分机制,并将am替换为a
′m。
[0022]
进一步地,本发明依次计算每一个新的句向量与对应的类别向量之间的距离,输出距离最短的类别作为新类别,包括:
[0023]
依次计算新的句向量a
′m与b1,b2,

,bn之间的距离,取距离最短的类别作为am的新类别:
[0024][0025]
其中,l
′m表示新类别。
[0026]
第二方面,本发明提供一种结合有监督和无监督方式的文本分类系统,包括:
[0027]
分类结果计算模块,用于将待分类的文本信息输入bert模型,得到若干分类结果;
[0028]
第一计算模块,用于提取bert模型输出层的句向量cls,得到若干句向量;或聚合bert模型输出层的所有字向量,得到若干句向量;
[0029]
第二计算模块,用于根据分类结果,对同一类别的句向量求均值,得到类别向量,将所有句向量与所有类别向量做关联,并对类别向量进行加权求和处理得到新的句向量;
[0030]
类别计算模块,用于依次计算每一个新的句向量与对应的类别向量之间的距离,输出距离最短的类别作为新类别;
[0031]
迭代模块,用于重复计算新的句向量,并输出距离最短的类别,直至每个句子的类别不再发生变化。
[0032]
第三方面,本发明提供一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述方法的步骤。
[0033]
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上述方法的步骤。
[0034]
与现有技术相比,本发明具有以下有益效果:
[0035]
本发明将bert模型作为backbone,达到提取文本句向量的目的,同时将bert模型预测得到的分类结果作为一个粗略的结果,用于后续的优化。后端桥接上新的网络结构,即可以充分利用预训练bert的文本表征能力,又可以在垂直领域更好的优化分类性能。本发
明借鉴了k-means的思想,将无监督学习的思想与有监督学习的场景进行了有效得融合,从而大大降低了分类任务对有标签训练数据的依赖。得益于attention方法的引入,句向量得以在bert模型之后持续迭代更新,同时由于这种更新考虑了与其他所有可能的类别之间的关系,最终使得原本离类中心更近的句向量将更加靠近,而离最近类中心稍远的句向量,将得到修正。同时,由于本发明仅仅将bert模型作为backbone,因此理论上也可以将bert模型替换为其他文本特征提取模型,比如bi-lstm,elmo等。
附图说明
[0036]
为了更清楚的说明本发明实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本发明的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
[0037]
图1为本发明方法的流程图。
[0038]
图2为本发明系统的示意图。
[0039]
图3为本发明一实施例的原理图。
具体实施方式
[0040]
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。
[0041]
因此,以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护的本发明的范围,而是仅仅表示本发明的选定实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0042]
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。
[0043]
在本发明实施例的描述中,需要说明的是,若出现术语“上”、“下”、“水平”、“内”等指示的方位或位置关系为基于附图所示的方位或位置关系,或者是该发明产品使用时惯常摆放的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。此外,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
[0044]
此外,若出现术语“水平”,并不表示要求部件绝对水平,而是可以稍微倾斜。如“水平”仅仅是指其方向相对“竖直”而言更加水平,并不是表示该结构一定要完全水平,而是可以稍微倾斜。
[0045]
在本发明实施例的描述中,还需要说明的是,除非另有明确的规定和限定,若出现术语“设置”、“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以根据
具体情况理解上述术语在本发明中的具体含义。
[0046]
下面结合附图对本发明做进一步详细描述:
[0047]
bert是一种预训练语言模型,一句话不是由一些单词简单地组合就能得到的,它必须要符合人类的语言习惯,而语言模型就是用来判断一句话是不是符合人类的习惯,具体地说就是给定句子中在某一单词前面的单词(也可以是上下文),然后预测该单词出现的概率。对于一句话来说,如果把每一个位置的条件概率都相乘,那么概率越大越能说明它更像一句人说的话。如果我们想训练一个语言模型,只需要选择一个单词并通过它的上下文来预测该单词的概率,然后最大化这个概率。
[0048]
而语言模型除了能看句子是不是更符合人类习惯之外,就是word embedding。在模型的训练过程中,首先需要将句子中的前面的单词都转化为对应的向量,然后再通过隐层和softmax来预测后面接的单词概率,如果模型能够预测得很好的话,那么就可以认为第一步得到的向量能够很好地反应出对应单词的含义。这样就可以认为得到了一个单词表,每一个单词都可以在表中找到对应的向量,而这个过程就是word embedding,在这之后就可以让word embedding接到具体的下游任务中,这样通过语言模型就实现了对于nlp任务的预训练。
[0049]
可以看出,语言模型的训练不需要预先对数据进行标注,因此可以使用的语料库是相当庞大的,而这也是采用语言模型来做nlp预训练的原因,大量的训练数据使得word embedding的效果更佳,从而使得预训练后的下游任务模型更优。
[0050]
然而在实际实验中,采用word embedding的预训练技术加到下游任务后,却并没有取得很大的提升,其主要原因是:对于word embedding,一个单词唯一对应一个向量,但是有些单词在不同的句子中往往对应着不同的含义,对于这类多义词,是无法只用一个向量来进行表示的,一个向量只能做到——平均该单词的每一种含义,这样显然会对之后的模型学习造成影响,因此需要对预训练的语言模型进行改进,而bert就是较好地解决了这个问题。
[0051]
bert(bidirectional encoder representations from transformer)基于transformer的双向编码器表征。bert采用的是transformer,并且在处理一个单词的时候,还能够考虑到该词前面的和后面的单词,得到它在上下文中的含义。transformer的attention机制在对语境中的单词进行特征抽取时有着很好的效果,考虑上下文的双向编码要比只考虑上文(或下文)的单向效果更好。bert模型采用了特征提取器transformer,同时还实现了双向语言模型,使得它具有更好的性能。
[0052]
参见图1,本发明实施例公开了一种结合有监督和无监督方式的文本分类方法,包括以下步骤;
[0053]
s1将待分类的文本信息输入bert模型,得到若干分类结果,具体如下:
[0054]
将待分类的句子拆分成若干子向量,将字向量输入bert模型,得到若干分类结果cn,其中n表示类别的数量。
[0055]
s2提取bert模型输出层的句向量cls,得到若干句向量;或聚合bert模型输出层的所有字向量,得到若干句向量;所述聚合是采用加和、平均或池化方法得到句向量am,其中m表示句子数,同时每个句向量对应的类别记为lm。
[0056]
s3根据分类结果,对同一类别的句向量求均值,得到类别向量,将所有句向量与所
有类别向量做关联,并对类别向量进行加权求和处理得到新的句向量,具体如下:
[0057]
对同一类别的句向量求均值,得到类别向量bn,整合得到矩阵b;
[0058]
将每一个句向量与所有类别向量做attention,并将类别向量进行加权求和得到新的句向量a
′m:
[0059][0060][0061]
其中,αn表示b的权重,表示α1~αn,i为正整数,s()表示某种注意力打分机制,并将am替换为a
′m。
[0062]
本实施例中,对每一个句向量与所有类别向量做attention,所述attention机制是,给定一组向量集合values,以及一个向量query,attention机制是一种根据该query计算values的加权求和的机制。attention的重点就是这个集合values中的每个value的“权值”的计算方法。有时候也把这种attention的机制叫做query的输出关注了(或者说叫考虑到了)原文的不同部分。attention机制就是一种根据某些规则或者某些额外信息(query)从向量表达集合(values)中抽取特定的向量进行加权组合(attention)的方法。
[0063]
s4依次计算每一个新的句向量与对应的类别向量之间的距离,输出距离最短的类别作为新类别,具体如下:
[0064]
依次计算新的句向量a
′m与b1,b2,

,bn之间的距离,取距离最短的类别作为am的新类别:
[0065][0066]
其中,l
′m表示新类别。
[0067]
s5重复计算新的句向量,并输出距离最短的类别,直至每个句子的类别不再发生变化。
[0068]
如图2所示,本发明实施例公开了一种结合有监督和无监督方式的文本分类系统,包括:
[0069]
分类结果计算模块,用于将待分类的文本信息输入bert模型,得到若干分类结果;
[0070]
第一计算模块,用于提取bert模型输出层的句向量cls,得到若干句向量;或聚合bert模型输出层的所有字向量,得到若干句向量;
[0071]
第二计算模块,用于根据分类结果,对同一类别的句向量求均值,得到类别向量,将所有句向量与所有类别向量做关联,并对类别向量进行加权求和处理得到新的句向量;
[0072]
类别计算模块,用于依次计算每一个新的句向量与对应的类别向量之间的距离,输出距离最短的类别作为新类别;
[0073]
迭代模块,用于重复计算新的句向量,并输出距离最短的类别,直至每个句子的类别不再发生变化。
[0074]
实施例
[0075]
如图3所示,本实施例将bert得到的文本向量作为样本向量,通过求平均得到类向量,并通过attention的方法,动态更新样本向量及类向量,并参考k-means的方法,重新对
每个样本进行分类,直到分类结果不再变化。具体方法为:
[0076]
步骤1:将待分类的句子,以字的形式输入一个已经训练完成的bert模型,得到分类结果,记为c1,c2,...,cn,其中n表示类别的数量;
[0077]
步骤2:将bert模型输出层的cls向量单独取出,或者将输出层的所有字向量进行聚合(不限于加和、平均或其他池化方法),得到句向量,记为a1,a2,...,am,其中m表示句子数,同时每个句向量对应的类别记为lm;
[0078]
步骤3:将同一类别的句向量求均值,得到类别向量,记为b1,b2,...,bn,整合得到矩阵b;
[0079]
步骤4:将每一个句向量与所有类别向量做attention,并将类别向量进行加权求和得到新的句向量,即和得到新的句向量,即s(x,y)表示某种注意力打分机制,并将am替换为a
′m;
[0080]
步骤5:依次计算am与b1,b2,

,bn之间的距离,取距离最短的类别作为am的新类别:
[0081][0082]
重复步骤3-5,直到每个句子的类别不在发生变化,即算法收敛;
[0083]
本发明的原理:
[0084]
如图3所示,本发明与传统聚类算法k-means非常接近,但不同之处在于k-means不会更新样本向量,而本发明通过attention的方法,利用每个样本向量与所有类向量之间的距离,反向更新样本向量,并基于更新后的样本向量,重新计算类向量。该思路可以将类中心的搜索范围最大化,使得最终收敛得到的结果更加精准。
[0085]
本发明一实施例提供的计算机设备。该实施例的计算机设备包括:处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序。所述处理器执行所述计算机程序时实现上述各个方法实施例中的步骤。或者,所述处理器执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能。
[0086]
所述计算机程序可以被分割成一个或多个模块/单元,所述一个或者多个模块/单元被存储在所述存储器中,并由所述处理器执行,以完成本发明。
[0087]
所述计算机设备可以是桌上型计算机、笔记本、掌上电脑及云端服务器等计算设备。所述计算机设备可包括,但不仅限于,处理器、存储器。
[0088]
所述处理器可以是中央处理单元(central processing unit,cpu),还可以是其他通用处理器、数字信号处理器(digital signal processor,dsp)、专用集成电路(application specific integrated circuit,asic)、现成可编程门阵列(field-programmable gate array,fpga)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。
[0089]
所述存储器可用于存储所述计算机程序和/或模块,所述处理器通过运行或执行存储在所述存储器内的计算机程序和/或模块,以及调用存储在存储器内的数据,实现所述计算机设备的各种功能。
[0090]
所述计算机设备集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完
成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-only memory)、随机存取存储器(ram,random access memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。
[0091]
以上仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

技术特征:
1.一种结合有监督和无监督方式的文本分类方法,其特征在于,包括以下步骤;将待分类的文本信息输入bert模型,得到若干分类结果;提取bert模型输出层的句向量cls,得到若干句向量;或聚合bert模型输出层的所有字向量,得到若干句向量;根据分类结果,对同一类别的句向量求均值,得到类别向量,将所有句向量与所有类别向量做关联,并对类别向量进行加权求和处理得到新的句向量;依次计算每一个新的句向量与对应的类别向量之间的距离,输出距离最短的类别作为新类别;重复计算新的句向量,并输出距离最短的类别,直至每个句子的类别不再发生变化。2.根据权利要求1所述的文本分类方法,其特征在于,所述将待分类的文本信息输入bert模型,得到若干分类结果,包括:将待分类的句子拆分成若干子向量,将字向量输入bert模型,得到若干分类结果c
n
,其中n表示类别的数量。3.根据权利要求1所述的文本分类方法,其特征在于,所述聚合是采用加和、平均或池化方法得到句向量a
m
,其中m表示句子数,同时每个句向量对应的类别记为l
m
。4.根据权利要求3所述的文本分类方法,其特征在于,所述将所有句向量与所有类别向量做关联,并对类别向量进行加权求和处理得到新的句向量,包括:对同一类别的句向量求均值,得到类别向量b
n
,整合得到矩阵b;将每一个句向量与所有类别向量做attention,并将类别向量进行加权求和得到新的句向量a

m
::其中,α
n
表示b的权重,表示α1~α
n
,i为正整数,s()表示某种注意力打分机制,并将a
m
替换为a

m
。5.根据权利要求4所述的文本分类方法,其特征在于,所述依次计算每一个新的句向量与对应的类别向量之间的距离,输出距离最短的类别作为新类别,包括:依次计算新的句向量a

m
与b1,b2,

,b
n
之间的距离,取距离最短的类别作为a
m
的新类别:其中,l

m
表示新类别。6.一种结合有监督和无监督方式的文本分类系统,其特征在于,包括:分类结果计算模块,用于将待分类的文本信息输入bert模型,得到若干分类结果;第一计算模块,用于提取bert模型输出层的句向量cls,得到若干句向量;或聚合bert模型输出层的所有字向量,得到若干句向量;第二计算模块,用于根据分类结果,对同一类别的句向量求均值,得到类别向量,将所有句向量与所有类别向量做关联,并对类别向量进行加权求和处理得到新的句向量;
类别计算模块,用于依次计算每一个新的句向量与对应的类别向量之间的距离,输出距离最短的类别作为新类别;迭代模块,用于重复计算新的句向量,并输出距离最短的类别,直至每个句子的类别不再发生变化。7.一种计算机设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1-5任一项所述方法的步骤。8.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-5任一项所述方法的步骤。

技术总结
本发明公开了一种结合有监督和无监督方式的文本分类方法及相关装置,通过attention的方法,利用每个样本向量与所有类向量之间的距离,反向更新样本向量,并基于更新后的样本向量,重新计算类向量。本发明将Bert模型作为backbone,同时将Bert模型预测得到的分类结果作为一个粗略的结果,用于后续的优化。本发明将无监督学习的思想与有监督学习的场景进行了有效得融合,从而大大降低了分类任务对有标签训练数据的依赖。得益于Attention方法的引入,句向量得以在Bert模型之后持续迭代更新,同时由于这种更新考虑了与其他所有可能的类别之间的关系,最终使得原本离类中心更近的句向量将更加靠近,而离最近类中心稍远的句向量,将得到修正。将得到修正。将得到修正。


技术研发人员:吴育人 庄伯金
受保护的技术使用者:平安科技(深圳)有限公司
技术研发日:2023.06.16
技术公布日:2023/9/9
版权声明

本文仅代表作者观点,不代表航家之家立场。
本文系作者授权航家号发表,未经原创作者书面授权,任何单位或个人不得引用、复制、转载、摘编、链接或以其他任何方式复制发表。任何单位或个人在获得书面授权使用航空之家内容时,须注明作者及来源 “航空之家”。如非法使用航空之家的部分或全部内容的,航空之家将依法追究其法律责任。(航空之家官方QQ:2926969996)

航空之家 https://www.aerohome.com.cn/

飞机超市 https://mall.aerohome.com.cn/

航空资讯 https://news.aerohome.com.cn/

分享:

扫一扫在手机阅读、分享本文

相关推荐