文本分类方法、装置、计算设备和计算机可读介质与流程

文档序号:26050634发布日期:2021-07-27 15:25阅读:89来源:国知局
文本分类方法、装置、计算设备和计算机可读介质与流程

本申请涉及信息推荐领域,具体而言,涉及一种文本分类方法、装置、计算设备和计算机可读介质。



背景技术:

极限多标签文本分类(extrememulti-labeltextclassification,简称xmtc)研究如何给一段文本从海量标签中匹配出一组合适的标签的问题。由于xmtc的标签数量在十万或者百万量级,标签粒度不一,语义存在交叉,标签的结构体系也很难维护,因此,xmtc面临更多的挑战,无法采用传统多标签文本分类(traditionalmulti-labeltextclassification,简称tmtc)的方法去实现。

为此,业内出现了一些多标签文本分类模型的尝试,如xml-cnn模型和attentionxml模型。xml-cnn模型为解决xmtc中标签数量极大的问题,引入了一个瓶颈层做特征降维,从而缩小模型规模,该过程会导致一定程度上的信息损失,最终会影响到分类的准确性。attentionxml模型为了解决标签数量过大的问题,采用了多模型集成的方法,但是其在进行标签预测时,对每个标签都需要进行计算,使得计算量很大。此外,上述模型仍然沿用了tmtc的经典架构,模型的输出层维度是十万量级,模型训练难度较大,较难应用于工业生产环境中。



技术实现要素:

为了解决上述问题,本申请实施例提出一种文本分类方法、装置、计算设备和计算机可读介质,以提高多标签文本分类的准确性和处理效率。

第一方面,本申请实施例提出一种文本分类方法,包括:

基于语料库中的词和原始标签集中的标签之间的点互信息,构建第一标签索引库;

对待分类文本进行分词,得到所述待分类文本的词集合,基于所述词集合从所述第一标签索引库中获取第一标签召回集,以构建待预测标签召回集;

通过预训练模型获取所述待预测标签召回集中每个标签的标签向量表示和所述待分类文本的文档向量表示,以及将所述文档向量表示与所述每个标签的标签向量表示分别进行拼接,得到一组待预测特征向量;

对所述一组待预测特征向量进行预测评分,得到所述待分类文本的预测标签集。

在可选的实施方式中,所述基于语料库中的词和原始标签集中的标签之间的点互信息,构建第一标签索引库包括:

根据语料库中的词和原始标签集中的标签之间的第一点互信息值,得到原始标签集中每个标签对应的相关词集合;

针对语料库中的每个文档和所述每个标签,从所述每个标签对应的相关词集合中选取所述每个文档中的至少一个最相关词;

根据所述每个标签和每个文档中的至少一个最相关词的共现信息,计算所述语料库中的词和原始标签集中的标签之间的第二点互信息值;

根据所述语料库中的词和原始标签集中的标签之间的第二点互信息值,得到所述语料库中每个词对应的一组标签信息,用以构建所述第一标签索引库。

在可选的实施方式中,所述根据所述每个标签和每个文档中的至少一个最相关词的共现信息,计算所述语料库中的词和原始标签集中的标签之间的第二点互信息值包括:在计算所述语料库中的词和原始标签集中的标签之间的第二点互信息值时,增强每个标签和每个文档中的至少一个最相关词的共现频率的权重。

在可选的实施方式中,所述基于所述词集合从所述第一标签索引库中获取第一标签召回集包括:

从所述每个词对应的一组标签信息中获取所述词集合中的每个词相关的标签集;

对所述词集合中的每个词相关的标签集进行合并和排序,得到所述第一标签召回集。

在可选的实施方式中,所述每个词对应的一组标签信息包括一组标签和其对应的第二点互信息值;所述对所述词集合中的每个词相关的标签集进行合并和排序包括:

对所述每个词相关的标签集进行并集,将其中相同的标签对应的第二点互信息值进行叠加,并根据叠加后的第二点互信息值对并集后的标签进行降序排列。

在可选的实施方式中,所述方法还包括:

基于原始标签集中的标签的嵌入向量表示,构建第二标签索引库;和/或基于原始标签集中的标签,生成标签名的前缀匹配树,构建第三标签索引库;

基于所述待分类文本的句子向量表示,从所述第二标签索引库中获取第二标签召回集;和/或基于所述待分类文本从所述第三标签索引库中获取第三标签召回集;

将所述第一标签召回集与所述第二标签召回集和/或第三标签召回集合并为所述待预测标签召回集。

在可选的实施方式中,所述通过预训练模型获取所述待预测标签召回集中每个标签的标签向量表示包括:

通过预训练模型获得所述每个标签的第一特征向量;

根据预训练标签向量词表和随机初始化向量词表,分别获得所述每个标签的第二特征向量和第三特征向量;

将所述第一特征向量、第二特征向量和第三特征向量进行拼接,得到所述标签向量表示。

在可选的实施方式中,所述通过预训练模型获取所述待分类文本的文档向量表示包括:

通过预训练模型获得所述待分类文本的第一文档特征向量;

基于所述待预测标签召回集中每个标签的标签向量表示与所述第一文档特征向量的相似度,计算权重矩阵;

根据所述权重矩阵对所述第一文档特征向量进行加权求和,得到第二文档特征向量;

将所述第一文档特征向量和第二文档特征向量进行拼接,得到所述文档向量表示。

第二方面,本申请实施例还提出一种文本分类装置,包括:

第一索引构建单元,用于基于语料库中的词和原始标签集中的标签之间的点互信息,构建第一标签索引库;

第一标签召回单元,用于对待分类文本进行分词,得到所述待分类文本的词集合,基于所述词集合从所述第一标签索引库中获取第一标签召回集,以构建待预测标签召回集;

特征提取单元,用于通过预训练模型获取所述待预测标签召回集中每个标签的标签向量表示和所述待分类文本的文档向量表示;以及将所述文档向量表示与所述每个标签的标签向量表示分别进行拼接,得到一组待预测特征向量;

预测排序单元,用于对所述一组待预测特征向量进行预测评分,得到所述待分类文本的预测标签集。

在可选的实施方式中,所述第一索引构建单元包括:

第一计算子单元,用于根据语料库中的词和原始标签集中的标签之间的第一点互信息值,得到原始标签集中每个标签对应的相关词集合;

第二计算子单元,用于针对语料库中的每个文档和所述每个标签,从所述每个标签对应的相关词集合中选取所述每个文档中的至少一个最相关词,根据所述每个标签和每个文档中的至少一个最相关词的共现信息,计算所述语料库中的词和原始标签集中的标签之间的第二点互信息值;

索引生成子单元,用于根据所述语料库中的词和原始标签集中的标签之间的第二点互信息值,得到所述语料库中每个词对应的一组标签信息,用以构建所述第一标签索引库。

在可选的实施方式中,所述第二计算子单元还用于:在计算所述语料库中的词和原始标签集中的标签之间的第二点互信息值时,增强每个标签和每个文档中的至少一个最相关词的共现频率的权重。

在可选的实施方式中,所述第一标签召回单元包括:

标签获取子单元,用于从所述每个词对应的一组标签信息中获取所述词集合中的每个词相关的标签集;

合并排序子单元,用于对每个词相关的标签集进行合并和排序,得到所述第一标签召回集。

在可选的实施方式中,所述每个词对应的一组标签信息包括一组标签和其对应的第二点互信息值;所述合并排序子单元还用于:

对所述每个词相关的标签集进行并集,将其中相同的标签对应的第二点互信息值进行叠加,并根据叠加后的第二点互信息值对并集后的标签进行降序排列。

在可选的实施方式中,所述装置还包括:

第二索引构建单元,用于基于原始标签集中的标签的嵌入向量表示,构建第二标签索引库;和/或基于原始标签集中的标签,生成标签名的前缀匹配树,构建第三标签索引库;

第二标签召回单元,用于基于所述待分类文本的句子向量表示,从所述第二标签索引库中获取第二标签召回集;和/或基于所述待分类文本从所述第三标签索引库中获取第三标签召回集;

标签合并单元,用于将所述第一标签召回集与所述第二标签召回集和/或第三标签召回集合并为所述待预测标签召回集。

在可选的实施方式中,所述特征提取单元包括:

第一特征提取子单元,用于通过预训练模型获得所述每个标签的第一特征向量;

第二特征提取子单元,用于根据预训练标签向量词表和随机初始化向量词表,分别获得所述每个标签的第二特征向量和第三特征向量;

第一拼接子单元,用于将所述第一特征向量、第二特征向量和第三特征向量进行拼接,得到所述标签向量表示。

在可选的实施方式中,所述特征提取单元还包括:

第三特征提取子单元,用于通过预训练模型获得所述待分类文本的第一文档特征向量;

相似计算子单元,用于基于所述待预测标签召回集中每个标签的标签向量表示与所述第一文档特征向量的相似度,计算权重矩阵;

加权计算子单元,用于根据所述权重矩阵对所述第一文档特征向量进行加权求和,得到第二文档特征向量;

第二拼接子单元,用于将所述第一文档特征向量和第二文档特征向量进行拼接,得到所述文档向量表示。

第三方面,本申请实施例还提出一种计算设备,包括:

一个或多个处理器;

存储器,用于存储一个或多个程序;其中,所述程序被所述一个或多个处理器执行以实现如前述任一实施方式所述的方法。

第四方面,本申请实施例还提出一种计算机可读介质,其存储一个或多个程序,该程序被处理器执行时实现如前述任一实施方式所述的方法。

本申请实施例至少可以达到如下有益效果:本申请实施例预先构建标签索引库,根据待分类文本从标签索引库中召回相关性高的标签集,通过预训练模型仅对该相关性高的标签集进行预测排序,从而可以在标签数量极大时,为待分类文本确定准确的标签分类集合,显著提高了预测分类的准确性。本申请实施例通过在十万到百万级别的标签索引中召回数百或数十个相关性高的标签,在模型的预测分类中不需要引入瓶颈层做特征降维,同时因为不需要对所有标签集进行预测排序,可以显著降低计算量,提高预测分类效率。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍。应当理解,以下附图仅示出了本申请的某些实施例,而不应被看作是对本申请范围的限制。

图1是根据本申请一实施例的文本分类方法的流程示意图;

图2是根据本申请另一实施例的文本分类方法的部分流程示意图;

图3是根据本申请另一实施例的文本分类方法的部分流程示意图;

图4是根据本申请另一实施例的文本分类方法的部分流程示意图;

图5为根据本申请一实施方式的预测排查模型的原理示意图;

图6是根据本申请另一实施例的文本分类方法的流程示意图;

图7是根据本申请一实施例的文本分类装置的结构示意图;

图8是根据本申请另一实施例的文本分类装置的部分结构示意图;

图9是根据本申请另一实施例的文本分类装置的部分结构示意图;

图10是根据本申请另一实施例的文本分类装置的部分结构示意图;

图11是根据本申请另一实施例的文本分类装置的结构示意图。

具体实施方式

为使本申请的目的、技术方案和优点更加清楚,下面将结合本申请实施例的附图,对本申请实施例中的技术方案进行清楚、完整地描述。然而应当理解,所描述的实施例仅仅是本申请的部分示例性实施例,而不是全部实施例,因此以下对本申请实施例的详细描述并非旨在限制要求保护的本申请的范围。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请的说明书和权利要求书中的术语“第一”、“第二”等仅是用于区别描述类似的对象,而不是用于描述特定的顺序或先后次序,也不能理解为指示或暗示相对重要性。

如前所述,现有的多标签文本分类无法解决标签数量极大时文本分类的准确性和处理效率。为此,本申请实施例将原始标签集构建为标签索引库,根据待分类文本从标签索引库中召回相关性高的标签集,然后通过预训练模型仅对该相关性高的标签集进行预测排序,从而在标签数量极大时,可以高效地为待分类文本确定准确的标签分类集合。

图1为根据本申请一实施例的文本分类方法的流程示意图。如图1所示,本申请实施例的文本分类方法包括以下步骤s110-s140:

步骤s110,基于语料库中的词和原始标签集中的标签之间的点互信息,构建第一标签索引库。

点击信息(pmi,pointmutualinformation)一般用来衡量两个事件之间的相关性。在整个事件集合中,可以通过计算两个事件之间的共现频率,判断两个事件之间的相关关系。

本步骤中,语料库也可以理解为一个事件集合,也就是一个大规模的文档集合,每个文档上已经打上了一组标签。通过对语料库中文档进行分词,得到一组词,然后可以计算每个词和标签之前的共现关系。

分别代表某个词和标签,那么它们的pmi值可以通过如下公式(1)计算得到:

其中,表示在整个语料库中出现该词的文档数量,表示在整个语料库中出现该标签的文档数量;表示二者共同出现的文档数量,是整个语料库中的文档数量。

本步骤中,通过计算语料库中词和原始标签集中的标签之间的pmi值,能够初步建立起词与标签之间关联关系,进而可以构建基于pmi的标签索引。

在一些实施方式中,可以将关联同一个词的标签聚合起来,按照标签的pmi值逆序排列,就能得到词到相关标签的拉链状集合;反过来,也可以通过类似的计算方式得到标签到其相关词的拉链集合。以下是一种词到相关标签的拉链状集合的示例性数据结构:

词:[标签1:pmi值,标签2:pmi值,...]

例如,以词“吃”为例,通过上述步骤的计算,可以得到词“吃”到其相关标签的拉链状集合为:

“吃”:饮食:10,水果9,香蕉8,苹果8,西餐:7,肯德基:6,...。

需要注意的是,本申请实施例并不限于采用上述词到相关标签的示例性数据结构,其他能够实现等效目的数据结构均可以用于本申请实施例。

在一些实施方式中,可以将获得的词到相关标签的拉链状集合和/或标签到其相关词的拉链集合构建为索引库。例如,可以采用redis内存数据结构服务器作为索引库的载体,可以供后续步骤进行标签召回。redis是一个开源的内存存储的数据结构服务器,可用作数据库、高速缓存和消息队列代理。

步骤s120,对待分类文本进行分词,得到所述待分类文本的词集合,基于所述词集合从所述第一标签索引库中获取第一标签召回集,以构建待预测标签召回集。

本步骤中,对待分类的文本分词,得到词集合,对词集合中每个词,可以从步骤s110构建的标签索引库中获取每个词的相关标签集,然后可以将每个词的相关标签集聚合为该待分类文本的标签召回集,以作为待预测标签召回集,供后续步骤进行预测排序之用。

在一些实施方式中,当采用以上的示例性数据结构构建了词到相关标签的标签索引时,可以从每个词对应的标签信息集合中获取待分类文本的词集合中每个词的相关标签集,而后对所述每个词的相关标签集进行合并,将其中相同的标签对应的pmi值进行叠加,再根据叠加后的pmi值对合并后的标签集进行降序排列。

例如,假设词“吃”和“水果”的相关标签的集合分别为:

“吃”:饮食:10,水果:9,香蕉:8,苹果:8,西餐:7,肯德基:6,...;

“水果”:水果:10,香蕉:8,苹果:7,...。

对于待分类文本“我爱吃水果”中的每个词,都能根据上面的标签信息集合匹配得到一组相关标签集,然后将相同的标签的pmi值叠加起来,再根据总分降序排列,即可得到基于pmi索引的标签召回集。

步骤s130,通过预训练模型获取所述待预测标签召回集中每个标签的标签向量表示和所述待分类文本的文档向量表示,以及将所述文档向量表示与所述每个标签的标签向量表示分别进行拼接,得到一组待预测特征向量。

本步骤中,在前述步骤获得了待分类文本的待预测标签召回集之后,可以对待预测标签召回集和待分类文本基于预训练模型分别进行特征提取,其中,对标签召回集可以批量处理,一次输入一组标签召回集,分别得到待预测标签召回集中每个标签的标签向量表示和待分类文本的文档向量表示,并将文档向量表示与每个标签的标签向量表示分别进行拼接,从而得到一组待预测特征向量,以供后续步骤进行预测排序。

在一些实施方式中,作为示例,所述预训练模型可以采用bert预训练模型。bert(bidirectionalencoderrepresentationfromtransformers)预训练模型是通过在海量的语料基础上运行自监督学习方法为单词学习一个好的特征表示,自监督学习是指在没有人工标注的数据上运行的监督学习。需要说明的是,本申请实施例不限于上述bert预训练模型,其他用于自然语言处理(nlp)的预训练模型均可适用于本申请实施例。

步骤s140,对所述一组待预测特征向量进行预测评分,得到所述待分类文本的预测标签集。

在一些实施方式中,本步骤可以通过基于深度学习的预测排序模型对所述一组待预测特征向量进行预测评分。预测排序模型的一种实施方式可以如图5所示(后续部分详细说明),具体而言,预测排序模型可以将步骤s130拼接得到的一组待预测特征向量输入全连接层(fullyconnectedlayer)519,从而将该组待预测特征向量映射到样本标记空间,得到待分类文本和标签的整体特征表示进行标签的预测分类,而后该整体特征表示被接入输出层(outputlayer)520,设置激活函数为sigmoid函数,sigmoid函数常被用作神经网络的阈值函数,用于将变量映射到0-1之间。因此,可以对每个待预测特征向量预测一个0-1之间的评分。

假设s表示待分类文本,label_i表示待预测标签召回集中的每个标签,i大于0且小于等于待预测标签召回集中的标签数量,经过输出层输出的预测评分结果的示例可以如下所示:

[s,label_1]:0.7

[s,label_2]:0.1

[s,label_3]:0.8

[s,label_4]:0.9

最终,如果以0.5为阈值的话,根据预测评分是否大于阈值以及降序排列就可以依次得到label_4,label_3,label_1为待分类文本的预测标签集。

本申请实施例基于语料库中词和原始标签集中标签之间的点互信息构建标签索引,然后根据待分类文本从标签索引中召回相关性高的标签集,然后通过预训练模型仅对该相关性高的标签集进行预测排序,从而可以在标签数量极大时,为待分类文本确定准确的标签分类集合,显著提高了预测分类的准确性。本申请实施例通过在十万到百万级别的标签索引中召回数百或数十个相关性高的标签,在模型的预测分类中不需要引入瓶颈层做特征降维,同时因为不需要对所有标签集进行预测排序,可以显著降低计算量,提高预测分类效率。

上述步骤s110中采用上述公式(1)计算语料库中的词和原始标签集中的标签之间的pmi值,并用以构建语料库中的词到标签的索引。然而,这种方式计算词和标签之间的关联关系也会存在如下问题:

a)对于尾部标签,很小,会导致计算的pmi值偏大,从而会导致和当前词弱相关的标签排序靠前,从而产生关联关系的噪声问题。

b)对于头部标签,值都比较接近,使得头部标签的pmi值比较接近,用pmi值难以区分词和标签的相关程度。

因此,在一些实施方式中,本申请还提出一种新的pmi对齐计算方法,来解决上述噪声问题。如图2所示,上述步骤s110可以包括以下步骤s210-s230:

步骤s210,根据语料库中的词和原始标签集中的标签之间的第一点互信息值,得到原始标签集中每个标签对应的相关词集合。

本步骤中,可以采用前述公式(1)计算语料库中的词和原始标签集中的标签之间的第一点互信息值(又称第一pmi值),并依据该第一pmi值得到原始标签集中每个标签对应的相关词集合。在一些实施方式中,每个标签对应的相关词集合可以包括标签到其相关词的拉链集合。具体实施方式在前述实施例中已做详细描述,在此不再赘述。

步骤s220,针对语料库中的每个文档和所述每个标签,从所述每个标签对应的相关词集合中选取所述每个文档中的至少一个最相关词;以及根据所述每个标签和每个文档中的至少一个最相关词的共现信息,计算所述语料库中的词和原始标签集中的标签之间的第二点互信息值。

本步骤中,为了解决弱相关的标签排序靠前的噪声问题,在遍历整个语料库时,对词和标签出现的文档数量的统计方法保持不变,但是二者共同出现的文档数量的计算进行改进,对于语料库中每个文档,只计算该文档中与当前标签最相关词的共现次数,其他词丢弃,也就是在每个文档样本上,将标签对齐到最相关词上。在一些实施方式中,这个最相关词可以包括一个或多个,在语料库中文档数量足够大时,只选择一个最相关词也可以保证最终计算结果的准确性。

例如,对于文档“我爱吃苹果”,该文档分词后的结果为“我、爱、吃、苹果”,相关的标签为“水果”和“饮食”,那么根据步骤s210计算得到标签到相关词的集合后,可以匹配得到标签“水果”针对当前文档中每个词的pmi值为[1,1.5,2.5,4],在计算该文档中词和标签“水果”的共现次数时,可以仅选择pmi值为4的最相关词“苹果”,在该文档上,仅“苹果”和标签“水果”的共现次数为1,其他词与标签“水果”的共现次数为0,这种方式就可以称为pmi对齐,即在每个样本文档上将标签对齐到最相关词。同理,对于标签“饮食”,可以得到当前文档中每个词的pmi值为[1,1.2,3,2.5],可以将饮食对齐到“吃”这个最相关词上。通过改进后的计算出之后,就可以重新计算语料库中的词和原始标签集中的标签之间的第二点互信息值(又称第二pmi值)。通过这种pmi对齐的方式,可以去除掉很多弱相关标签的噪声。

此外,在一些实施方式中,为了解决上述标签相关性的区分度问题,本申请实施例可以在第二pmi值的计算中增强每个标签和每个文档中的至少一个最相关词的共现频率的权重。例如,通过在分子上乘以增强对词和标签的共现的考虑,从而增加标签相关度的区分能力。如下是改进后的第二pmi值计算的公式(2):

其中,c是一个常数,用于将计算后的pmi值调整成一个正数。

步骤s230,根据所述语料库中的词和原始标签集中的标签之间的第二点互信息值,得到所述语料库中每个词对应的一组标签信息,用以构建所述第一标签索引库。

本步骤中,通过上述第二pmi值的计算结果,就可以得到新的词到相关标签的集合,构建为索引库后就可以供后续进行标签召回使用,在此不再赘述。

本申请实施例通过两次pmi值计算,将标签对齐到每个文档中的最相关词上,从而确保在构建标签索引库时去除弱相关标签的噪声,使得后续标签预测分类更加准确。

在一些实施方式中,如图3所示,上述步骤s130中通过预训练模型获取所述待预测标签召回集中每个标签的标签向量表示包括以下步骤s310-s330:

步骤s310,通过预训练模型获得所述每个标签的第一标签向量。

本步骤中,可以通过预训练模型的向量词表获取标签召回集中每个标签的第一标签向量。预训练模型的向量词表可以是表示词的特征向量的嵌入向量(embedding)词表,例如bert预训练模型的嵌入向量词表。在一些实施方式中,可以将每个标签的标签名标识化(tokenization),将标签名分割为单个字词。文本标识化(tokenization)本质上是将短语、句子、段落或整个文本分割成更小的字词单元,每个单元都称为标识符(token)。而后,可以基于预训练模型的嵌入向量词表获得标签名中每个字词的嵌入向量,然后做平均处理,从而得到该标签对应的第一标签向量。

步骤s320,根据预训练向量词表和随机向量词表,分别获得所述每个标签的第二标签向量和第三标签向量。

本步骤中,在获取标签的第一标签向量时,还根据预训练向量词表和随机向量词表,分别获得所述每个标签的第二标签向量和第三标签向量。其中,预训练向量词表可以是基于语料库进行词向量预训练得到的嵌入向量(embedding)词表。在一些实施方式中,可以通过word2vec方法训练得到语料库中词的嵌入向量(embedding)词表。随机向量词表可以是随机初始化的嵌入向量(embedding)词表。在一些实施方式中,可以通过每个标签的唯一标识分别从预训练向量词表和随机向量词表中匹配得到第二标签向量和第三标签向量。

由于预训练的标签嵌入向量,对于头部的标签具有丰富的先验信息,能够提升的预测排序模型的预测效果,但是对于尾部标签,预训练的标签嵌入向量质量不是很好,如果只使用预训练的标签嵌入向量,会产生很多尾部标签的坏案例(badcase)。因此,为了解决这个问题,本申请实施例在通过预训练向量词表获得每个标签的第二标签向量时,同时也采用随机初始化的嵌入向量词表来获取标签的第三标签向量,让尾部标签也能够被学习到。

步骤s330,将所述第一标签向量、第二标签向量和第三标签向量进行拼接,得到所述标签向量表示。

本步骤中,将前述步骤获得的标签的第一标签向量、第二标签向量和第三标签向量进行拼接得到最终的标签向量表示。

在一些实施方式,如图4所示,上述步骤s130中所述通过预训练模型获取所述待分类文本的文档向量表示包括以下步骤s410-s430:

步骤s410,通过预训练模型获得所述待分类文本的第一文档向量。

本步骤中,通过预训练模型获得待分类文本的第一文档向量是为了提取待分类的特征向量。在一些实施方式中,可以将待分类文本标识化(tokenization),预处理为预训练模型所识别的字符结构。例如,当采用bert预训练模型时,对待分类文本标识化后,可以在句首拼接上“[cls]”标志,在标题和内容之间插入“[sep]”标志。bert预训练模型的输入包含特殊作用的标志:[cls]标志放在第一个句子的首位,表示将对应的输出作为文本的语义表示;[sep]标志用于区分输入的两个语句对,可用于分别对文本的标题和内容附加两个不同的文本向量以作区分。当待分类文本经过bert预训练模型的编码层之后,文本就被转化为了一个向量序列,而后输出得到整个文本的第一文档向量。

步骤s420,基于所述待预测标签召回集中每个标签的标签向量表示与所述第一文档向量的相似度,计算权重矩阵;以及根据所述权重矩阵对所述第一文档向量进行加权求和,得到第二文档向量。

本步骤中,考虑到待预测标签召回集中每个标签对待分类文本中的字的关注度是不一样的,为了进一步提升预测排序模型对标签预测的准确性,本实施方式采用了一种具有标签感知能力的注意力机制(label-awareattention),可以为每个标签生成不同的文档向量。具体而言,首先基于每个标签的标签向量表示与所述第一文档向量的相似度计算权重矩阵,而后基于该权重矩阵对所述第一文档向量进行加权求和,从而得到第二文档向量。

在一些实施方式中,该具有标签感知能力的注意力机制的算法可以描述如下:

假设预测排序模型一次输入的标签召回集的标签数量为,那么标签召回集的标签向量表示可以记为,其中表示第个标签的向量表示。假设待分类文本输入的最大序列长度为,则待分类文本的第一文档向量可以表示为为每个字词(token)的特征向量表示。通常的维度并不一致,所以,首先需对做维度对齐。具体而言,可以采用全连接层函数将的维度对齐,用公式可以表示如下:

其中,表示全连接层函数,变量z表示所对齐的维度,分别表示维度对齐后的标签向量表示和文本的向量表示。

其次,使用矩阵乘法计算对齐之后的标签的向量表示和文本的向量表示的相似度,得到权重矩阵;对可以基于softmax函数方法做归一化,得到权重矩阵。softmax函数是用于实现多分类过程中,把一些输出的神经元映射到0-1之间的实数,并且归一化和为1。用公式可以表示如下:

其中,表示矩阵乘法运算,表示矩阵的转置。

最后,根据归一化后的权重矩阵使用矩阵乘法对第一文档向量进行加权求和,得到待分类文本的第二文档向量。用公式可以表示如下:

步骤s430,将所述第一文档向量和第二文档向量进行拼接,得到所述文档向量表示。

本步骤中,在上述得到待分类文本的第二文档向量之后,可以和待分类文本的第一文档向量进行拼接,得到的待分类文本的最终的文档向量表示。随后,如前述步骤s130的描述,可以将文档向量表示与每个标签的标签向量表示分别进行拼接,从而得到一组待预测特征向量,以供后续步骤进行预测排序。

图5为根据本申请一实施方式的预测排查模型的原理示意图。如图5所示,该模型在输入层批量输入标签召回集中的一组标签,同时输入一段待分类文本,分别提取标签和文本的特征表示。在标签处理部分,通过标签名输入模块501输入一组标签的标签名,对标签名进行标识化,得到每个标签名的字词单元(token),然后通过bert预训练模型的嵌入向量词表504获得标签名中每个字词的嵌入向量,然后做平均处理,得到该一组标签各自对应的第一标签向量507。同时,通过标签id输入模块502和503输入每个标签的唯一标识,分别从预训练向量词表505和随机向量词表506中匹配得到每个标签的第二标签向量508和第三标签向量509。然后,第一标签向量507、第二标签向量508和第三标签向量509经由拼接模块510进行拼接在一起得到每个标签的标签向量表示511。

在文本处理部分,通过文本预处理512,输入待分类文本的标题和内容,将文本标识化之后,在句首拼接上“[cls]”标志,在标题和内容之间插入“[sep]”标志。经过bert预训练模型513之后,文本被转化为第一文档向量514,同时基于本申请实施例的标签感知能力的注意力机制算法,基于每个标签的标签向量表示511与所述第一文档向量514计算得到第二文档向量515,能够基于标签召回集生成不同的文档向量表示。第一文档向量514和第二文档向量515经过拼接模块516拼接在一起,得到待分类文本最终的文档向量表示517。随后,通过拼接模块518可以将文档向量表示517与每个标签的标签向量表示511分别进行拼接,从而得到一组待预测特征向量,输入全连接层519进行预测分类,通过输出层520输出每个标签的预测评分。

图6为根据本申请另一实施例的文本分类方法的流程示意图。如图6所示,本申请实施例的文本分类方法包括以下步骤s610-s670:

步骤s610,基于语料库中的词和原始标签集中的标签之间的点互信息,构建第一标签索引库;

步骤s620,基于原始标签集中的标签的嵌入向量表示,构建第二标签索引库;和/或基于原始标签集中的标签,生成标签名的前缀匹配树,构建第三标签索引库;

步骤s630,对待分类文本进行分词,得到所述待分类文本的词集合,基于所述词集合从所述第一标签索引库中获取第一标签召回集;

步骤s640,基于所述待分类文本的句子向量表示,从所述第二标签索引库中获取第二标签召回集;和/或基于所述待分类文本从所述第三标签索引库中获取第三标签召回集;

步骤s650,将所述第一标签召回集与所述第二标签召回集和/或第三标签召回集合并为待预测标签召回集;

步骤s660,通过预训练模型获取所述待预测标签召回集中每个标签的标签向量表示和所述待分类文本的文档向量表示,以及将所述文档向量表示与所述每个标签的标签向量表示分别进行拼接,得到一组待预测特征向量;

步骤s670,对所述一组待预测特征向量进行预测评分,得到所述待分类文本的预测标签集。

本实施例中,步骤s610、s630、s660、s670同前述实施例中步骤s110、s120、s130、s140,在此不再赘述,下面仅对本实施例新增改进的步骤进行详细描述。

其中,步骤s620中,在自然语言处理(nlp)领域,词的嵌入向量表示(embedding)是将词转化到一个连续的、多维的实数向量空间内,使得词语之间可以相互计算,比如:国王-男性≈王后-女性。在一些实施方式中,可以通过word2vec方法训练得到语料库中词和原始标签集中标签的嵌入向量表示(embedding)。由此,语料库中词和原始标签集中标签的嵌入向量表示(embedding),二者可以落在同一个向量空间,可以相互计算,比如对于词和标签组成的对(pair)执行余弦相似度计算,余弦相似度用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小,例如cosine(苹果,水果)>cosine(帽子,水果)。从而,可以根据标签的嵌入向量表示(embedding),构建出标签的嵌入向量(embedding)索引,以构建第二标签索引库。在一些实施方式中,标签的嵌入向量(embedding)索引可以构建到向量搜索引擎,以供标签召回使用,如faiss向量搜索引擎,faiss向量搜索引擎是一种开源的相似特征向量召回引擎。基于标签的嵌入向量表示构建的标签索引在体现待分类文本中的词和标签之间的语义相似性,如近义词相关方面具有非常好的优势,进一步提高了标签召回和预测的准确性。

其次,在自然语言处理(nlp)领域,标签通常是一些概念和实体,本身也是一个词或者短语。一般情况下,一个待分类文本中提及的词如果也是一个标签的话,该标签大概率和该文本相关。因此,在一些实施方式中,本实施例还可以基于原始标签集中的标签构建标签名(labelname)词典,根据该词典可以生成一个面向字符粒度的前缀匹配树,从而可以构建第三标签索引库,供标签召回使用。基于标签名的索引侧重待分类文本中的词和标签之间的完全匹配,可以作为前述基于词和标签共现关系的第一标签索引库和/或基于嵌入向量表示的第二标签索引库的完善补充,进一步提高标签召回和预测的准确性。

步骤s640中,所述待分类文本的句子向量表示是表征整个待分类文本的特征向量表示。在一些实施方式中,可以对待分类文本分词,得到词的集合,然后根据每个词的逆文档频率(idf,inversedocumentfrequency)和每个词的嵌入向量表示的加权求和计算得到该文本的句子向量表示。在获得待分类文本的句子向量表示之后,就可以使用该句子向量表示从基于标签的嵌入向量表示构建的第二标签索引库中找到最接近的一组标签。

假设待分类文本的句子向量表示为,该文本包括个词,每个词对应的逆文档频率分别为,每个词对应的嵌入向量表示分别为

,那么待分类文本的句子向量表示可以采用如下公式计算得到:

在一些实施方式中,可以通过计算待分类文本的句子向量表示与第二标签索引库中标签的嵌入向量表示之间的余弦相似度,获得与待分类文本相似度最接近的一组标签,作为第二标签召回集。

本步骤中,当步骤s620构建了第三标签索引库时,还可以基于所述待分类文本从所述第三标签索引库中获取第三标签召回集。在一些实施方式中,可以将待分类文本直接与第三标签索引库中的标签名的前缀匹配树进行搜索匹配,得到待分类文本中出现的标签名,作为第三标签召回集。

步骤s650中,在已经获得所述第二标签召回集和/或第三标签召回集的基础上,将第一标签召回集与第二标签召回集和/或第三标签召回集合并为待预测标签召回集,即将从不同的标签索引库中召回的标签集进行合并,就得到了最终的待预测标签召回集。如此,基于后续步骤可以为待分类文本输出预测标签集。

需要说明的是,本领域技术人员可以理解,前述实施例部分所描述的不同实施方式同样适用于本实施例中,在此不再赘述。

本申请实施例在基于语料库中词和原始标签集中标签之间的点互信息构建标签索引的基础上,进一步基于标签的嵌入向量表示构建第二索引和/或基于标签名构建第三索引,根据待分类文本分别从不同的标签索引库中召回相关性高的标签集进行合并,从而可以根据词和标签的语义相关性、完全匹配特性对基于共现关系的标签召回集进行完善,进一步提升标签数量极大时,标签预测分类的准确性。本申请实施例通过在十万到百万级别的标签索引中召回数百或数十个相关性高的标签,在模型的预测分类中不需要引入瓶颈层做特征降维,同时因为不需要对所有标签集进行预测排序,可以显著降低计算量,提高预测分类效率。

图7为根据本申请一实施例的文本分类装置的结构示意图。如图7所示,本申请实施例的文本分类装置包括以下单元:

第一索引构建单元710,用于基于语料库中的词和原始标签集中的标签之间的点互信息,构建第一标签索引库;

第一标签召回单元720,用于对待分类文本进行分词,得到所述待分类文本的词集合,基于所述词集合从所述第一标签索引库中获取第一标签召回集,以构建待预测标签召回集;

特征提取单元730,用于对所述待预测标签召回集中的标签进行批量处理,通过预训练模型获取所述待预测标签召回集中每个标签的标签向量表示和所述待分类文本的文档向量表示;以及将所述文档向量表示与所述每个标签的标签向量表示分别进行拼接,得到一组待预测特征向量;

预测排序单元740,用于对所述一组待预测特征向量进行预测评分,得到所述待分类文本的预测标签集。

本申请实施例基于语料库中词和原始标签集中标签之间的点互信息构建标签索引,然后根据待分类文本从标签索引中召回相关性高的标签集,然后通过预训练模型仅对该相关性高的标签集进行预测排序,从而可以在标签数量极大时,为待分类文本确定准确的标签分类集合,显著提高了预测分类的准确性。本申请实施例通过在十万到百万级别的标签索引中召回数百或数十个相关性高的标签,在模型的预测分类中不需要引入瓶颈层做特征降维,同时因为不需要对所有标签集进行预测排序,可以显著降低计算量,提高预测分类效率。

在一些实施方式中,如图8所示,所述第一索引构建单元710可以包括:

第一计算子单元810,用于根据语料库中的词和原始标签集中的标签之间的第一点互信息值,得到原始标签集中每个标签对应的相关词集合;

第二计算子单元820,用于针对语料库中的每个文档和所述每个标签,从所述每个标签对应的相关词集合中选取所述每个文档中的至少一个最相关词,根据所述每个标签和每个文档中的至少一个最相关词的共现信息,计算所述语料库中的词和原始标签集中的标签之间的第二点互信息值;

索引生成子单元830,用于根据所述语料库中的词和原始标签集中的标签之间的第二点互信息值,得到所述语料库中每个词对应的一组标签信息,用以构建所述第一标签索引库。

在一些实施方式中,所述第二计算子单元820还用于:在计算所述语料库中的词和原始标签集中的标签之间的第二点互信息值时,增强所述语料库中的每个标签和每个文档中的至少一个最相关词的共现频率。

在一些实施方式中,如图9所示,所述第一标签召回单元720可以包括:

标签获取子单元910,用于从所述每个词对应的一组标签信息中获取所述词集合中的每个词相关的标签集;

合并排序子单元920,用于对每个词相关的标签集进行合并和排序,得到所述第一标签召回集。

在一些实施方式中,所述每个词对应的一组标签信息包括一组标签和其对应的第二点互信息值;所述合并排序子单元920还用于:对所述每个词相关的标签集进行并集,将其中相同的标签对应的第二点互信息值进行叠加,并根据叠加后的第二点互信息值对并集后的标签进行降序排列。

在一些实施方式中,如图10所示,所述特征提取单元730可以包括:

第一特征提取子单元1010,用于通过预训练模型获得所述每个标签的第一特征向量;

第二特征提取子单元1020,用于根据预训练标签向量词表和随机初始化向量词表,分别获得所述每个标签的第二特征向量和第三特征向量;

第一拼接子单元1030,用于将所述第一特征向量、第二特征向量和第三特征向量进行拼接,得到所述标签向量表示。

在一些实施方式中,如图10所示,所述特征提取单元730可以进一步包括:

第三特征提取子单元1040,用于通过预训练模型获得所述待分类文本的第一文档特征向量;

相似计算子单元1050,用于基于所述待预测标签召回集中每个标签的标签向量表示与所述第一文档特征向量的相似度,计算权重矩阵;

加权计算子单元1060,用于根据所述权重矩阵对所述第一文档特征向量进行加权求和,得到第二文档特征向量;

第二拼接子单元1070,用于将所述第一文档特征向量和第二文档特征向量进行拼接,得到所述文档向量表示。

图11为根据本申请另一实施例的文本分类装置的结构示意图。如图11所示,本申请实施例的文本分类装置包括以下单元:

第一索引构建单元1110,用于基于语料库中的词和原始标签集中的标签之间的点互信息,构建第一标签索引库;

第二索引构建单元1120,用于基于原始标签集中的标签的嵌入向量表示,构建第二标签索引库;和/或基于原始标签集中的标签,生成标签名的前缀匹配树,构建第三标签索引库;

第一标签召回单元1130,用于对待分类文本进行分词,得到所述待分类文本的词集合,基于所述词集合从所述第一标签索引库中获取第一标签召回集;

第二标签召回单元1140,用于基于所述待分类文本的句子向量表示,从所述第二标签索引库中获取第二标签召回集;和/或基于所述待分类文本从所述第三标签索引库中获取第三标签召回集;

标签合并单元1150,用于将所述第一标签召回集与所述第二标签召回集和/或第三标签召回集合并为待预测标签召回集;

特征提取单元1160,用于通过预训练模型获取所述待预测标签召回集中每个标签的标签向量表示和所述待分类文本的文档向量表示;以及将所述文档向量表示与所述每个标签的标签向量表示分别进行拼接,得到一组待预测特征向量;

预测排序单元1170,用于对所述一组待预测特征向量进行预测评分,得到所述待分类文本的预测标签集。

需要说明的是,本领域技术人员可以理解,本申请文本分类方法的实施例所描述的不同实施方式及其技术效果,同样适用于本申请文本分类装置的实施例中,在此不再赘述。

本申请实施例可以通过软件、硬件或软硬件结合的方式实施。当实现为计算机软件程序时,该计算机软件程序可以安装于移动终端、计算机、服务器等各种电子设备中被一个或多个处理器执行以实现相应功能。

进一步地,本申请实施例还可以包括一种计算机可读介质,该计算机可读介质存储有程序指令,在这样的实施例中,当该计算机可读存储介质被装载在计算设备中时,该程序指令可以被一个或多个处理器执行以执行本申请实施例中描述的各个方法步骤。

进一步地,本公开的实施例还可以包括一种计算机程序产品,包括承载程序指令的计算机可读介质,在这样的实施例中,该程序指令可以被一个或多个处理器执行以执行本申请实施例中描述的各个方法步骤。

以上描述了本申请示例性的实施例,应当理解,上述示例性的实施例不是限制性的,而是说明性的,本申请的保护范围不限于此。应理解,本领域技术人员在不脱离本申请的精神和范围的情况下,可以对本申请实施例进行修改和变型,这些修改和变型理应在本申请的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1