一种文本分类方法、装置、电子设备及存储介质与流程

文档序号:20030178发布日期:2020-02-28 10:17阅读:167来源:国知局
一种文本分类方法、装置、电子设备及存储介质与流程

本申请涉及自然语言处理的技术领域,具体而言,涉及一种文本分类方法、装置、电子设备及存储介质。



背景技术:

传统的文本分类模型例如:由卷积层(convolution)和归一化指数函数层(softmax)构成的神经网络模型。使用传统的文本分类模型获得文本语料的分类的方法为:对文本语料进行预训练,获得输入表示向量(inputrepresentation),并使用传统的文本分类模型对输入表示向量进行分类计算,获得该文本语料的分类。然而在具体的实施过程中发现,使用传统的文本分类模型针对中文语料的进行处理的速度较慢。



技术实现要素:

本申请的目的在于提供一种文本分类方法、装置、电子设备及存储介质,用于改善使用传统的文本分类模型针对中文语料的进行处理的速度较慢的问题。

第一方面,本申请提供了一种文本分类方法,包括:使用文本分类模型的卷积层对输入表示向量进行卷积运算,获得第一特征向量,所述输入表示向量是对文本语料进行向量化处理获得的;使用所述文本分类模型的双向编码表示编码层对所述第一特征向量进行编码运算,获得第二特征向量;使用所述文本分类模型的文本卷积网络层对所述第二特征向量进行卷积运算,获得第三特征向量;使用所述文本分类模型的向量分类层对所述第三特征向量进行分类,获得所述文本语料的分类。在上述实现过程中,通过在传统的文本分类模型上增加了双向编码表示编码层和文本卷积网络层,将传统的文本分类模型改进为:卷积层、双向编码表示编码层、文本卷积网络层和向量分类层,让文本语料中的语义特征更快地被改进后的模型发现,从而提高了对针中文语料的文本进行分类的速度。

在本申请的可选实施方式中,所述向量分类层为归一化指数函数层,所述使用所述文本分类模型的向量分类层对所述第三特征向量进行分类,获得所述文本语料的分类包括:使用所述归一化指数函数层对所述第三特征向量进行归一化运算,获得分类概率列表,所述分类概率列表包括多个分类概率;将所述多个分类概率中最大的分类概率对应的分类确定为所述文本语料的分类。在上述的实现过程中,使用归一化指数函数层对第三特征向量进行归一化运算,从而提高了对文本语料进行分类的计算速度。

在本申请的可选实施方式中,在所述使用文本分类模型的卷积层对输入表示向量进行卷积运算,获得第一特征向量之前,还包括:对所述文本语料进行分词处理,获得多个词语;对所述多个词语的每个词语中的字符进行向量化处理,获得令牌嵌入向量;对所述多个词语的每个词语对应的语句序列进行向量化处理,获得句段嵌入向量;对所述多个词语的每个词语对应的正序位置进行向量化处理,获得位置嵌入向量;对所述多个词语的每个词语对应的逆序位置进行向量化处理,获得逆位嵌入向量;根据所述令牌嵌入向量、所述句段嵌入向量、所述位置嵌入向量和所述逆位嵌入向量确定所述输入表示向量。在上述的实现过程中,通过在原来的输入表示向量增加了逆位嵌入向量,使得该逆位嵌入向量能够能好的表现字符序列的位置,从而使文本语料中的语义特征更快地被发现,即使文本语料更加充分地预训练,以尽可能降低序列中字符顺序的不确定熵对分类结果的影响。

在本申请的可选实施方式中,所述对所述多个词语的每个词语中的字符进行向量化处理,获得令牌嵌入向量,包括:查找与所述多个词语的每个词语中的字符对应的令牌,获得多个第一令牌;根据预设概率对所述多个第一令牌进行掩码计算,获得多个第二令牌;对所述多个第二令牌进行向量化处理,获得所述令牌嵌入向量。在上述的实现过程中,通过对设置多个第一令牌进行预设概率的掩码计算,该掩码计算能够使模型更好的根据上下文预测被掩码的令牌,从而使文本语料中的语义特征更好地被发现,达到更快地分类文本语料的技术效果。

在本申请的可选实施方式中,所述根据所述令牌嵌入向量、所述句段嵌入向量、所述位置嵌入向量和所述逆位嵌入向量确定所述输入表示向量,包括:将所述令牌嵌入向量、所述句段嵌入向量、所述位置嵌入向量和所述逆位嵌入向量相加,获得所述输入表示向量。

在本申请的可选实施方式中,所述根据所述令牌嵌入向量、所述句段嵌入向量、所述位置嵌入向量和所述逆位嵌入向量确定所述输入表示向量,包括:将所述令牌嵌入向量、所述句段嵌入向量、所述位置嵌入向量和所述逆位嵌入向量连接起来,获得所述输入表示向量。

在本申请的可选实施方式中,还包括:获得多个文本数据和多个文本标签,所述文本标签是与所述文本数据的分类对应的标签;以所述多个文本数据为训练数据,以所述多个文本标签为训练标签,对第一文本分类网络进行训练,获得所述文本分类模型。

在本申请的可选实施方式中,在所述以所述多个文本数据为训练数据,以所述多个文本标签为训练标签,对第一文本分类网络进行训练,获得所述文本分类模型之前,还包括:获得所述双向编码表示编码层、所述文本卷积网络层和第二文本分类网络,所述第二文本分类网络包括:所述卷积层和所述向量分类层;将所述卷积层、所述双向编码表示编码层、所述文本卷积网络层和所述向量分类层依次对齐连接,获得所述第一文本分类网络。

第二方面,本申请还提供了一种文本分类装置,包括:第一运算模块,用于使用文本分类模型的卷积层对输入表示向量进行卷积运算,获得第一特征向量,所述输入表示向量是对文本语料进行向量化处理获得的;第二运算模块,用于使用所述文本分类模型的双向编码表示编码层对所述第一特征向量进行编码运算,获得第二特征向量;第三运算模块,用于使用所述文本分类模型的文本卷积网络层对所述第二特征向量进行卷积运算,获得第三特征向量;文本分类模块,用于使用所述文本分类模型的向量分类层对所述第三特征向量进行分类,获得所述文本语料的分类。

在本申请的可选实施方式中,所述向量分类层为归一化指数函数层,所述文本分类模块包括:第一获得模块,用于使用所述归一化指数函数层对所述第三特征向量进行归一化运算,获得分类概率列表,所述分类概率列表包括多个分类概率;第一确定模块,用于将所述多个分类概率中最大的分类概率对应的分类确定为所述文本语料的分类。

在本申请的可选实施方式中,还包括:第二获得模块,用于对所述文本语料进行分词处理,获得多个词语;第三获得模块,用于对所述多个词语的每个词语中的字符进行向量化处理,获得令牌嵌入向量;第四获得模块,用于对所述多个词语的每个词语对应的语句序列进行向量化处理,获得句段嵌入向量;第五获得模块,用于对所述多个词语的每个词语对应的正序位置进行向量化处理,获得位置嵌入向量;第六获得模块,用于对所述多个词语的每个词语对应的逆序位置进行向量化处理,获得逆位嵌入向量;第二确定模块,用于根据所述令牌嵌入向量、所述句段嵌入向量、所述位置嵌入向量和所述逆位嵌入向量确定所述输入表示向量。

在本申请的可选实施方式中,所述第三获得模块包括:第七获得模块,用于查找与所述多个词语的每个词语中的字符对应的令牌,获得多个第一令牌;第八获得模块,用于根据预设概率对所述多个第一令牌进行掩码计算,获得多个第二令牌;第九获得模块,用于对所述多个第二令牌进行向量化处理,获得所述令牌嵌入向量。

在本申请的可选实施方式中,所述第二确定模块包括:向量相加模块,用于将所述令牌嵌入向量、所述句段嵌入向量、所述位置嵌入向量和所述逆位嵌入向量相加,获得所述输入表示向量。

在本申请的可选实施方式中,所述第二确定模块包括:向量连接模块,用于将所述令牌嵌入向量、所述句段嵌入向量、所述位置嵌入向量和所述逆位嵌入向量连接起来,获得所述输入表示向量。

在本申请的可选实施方式中,还包括:文本获得模块,用于获得多个文本数据和多个文本标签,所述文本标签是与所述文本数据的分类对应的标签;模型训练模块,用于以所述多个文本数据为训练数据,以所述多个文本标签为训练标签,对第一文本分类网络进行训练,获得所述文本分类模型。

在本申请的可选实施方式中,还包括:网络获得模块,用于获得所述双向编码表示编码层、所述文本卷积网络层和第二文本分类网络,所述第二文本分类网络包括:所述卷积层和所述向量分类层;网络连接模块,用于将所述卷积层、所述双向编码表示编码层、所述文本卷积网络层和所述向量分类层依次对齐连接,获得所述第一文本分类网络。

第三方面,本申请提供一种电子设备,包括:处理器和存储器,所述存储器存储有所述处理器可执行的机器可读指令,所述机器可读指令被所述处理器执行时执行如前述实施方式任一所述的方法。

第四方面,本申请提供一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器运行时执行如前述实施方式任一所述的方法。

附图说明

为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。

图1示出的本申请实施例提供的文本分类方法中模型构建阶段的流程示意图;

图2示出的本申请实施例提供的文本分类方法中模型预训练阶段的流程示意图;

图3示出的本申请实施例提供的文本分类方法中模型微调训练阶段的流程示意图;

图4示出的本申请实施例提供的文本分类方法中模型应用阶段的流程示意图;

图5示出的本申请实施例提供的文本分类装置结构示意图;

图6示出的本申请实施例提供的电子设备的结构示意图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。

在介绍本申请实施例中的方法之前,先介绍本申请实施例中涉及到的一些概念,这些概念如下:

自然语言处理(naturallanguageprocessing,nlp),是指由于理解(understanding)自然语言,需要关于外在世界的广泛知识以及运用操作这些知识的能力,而研究自然语言认知的相关问题,即自然语言认知同时也被视为一个人工智能完备(ai-complete)的相关问题。同时,在自然语言处理中,"理解"的定义也变成一个主要的问题。

卷积层(convolutionallayer),有时简称convolution,卷积神经网络中每层卷积层是由若干卷积单元组成的,每个卷积单元的参数都是通过反向传播算法最佳化得到的。卷积运算的目的是提取输入的不同特征,第一层卷积层可能只能提取一些低级的特征如边缘、线条和角等层级,更多层的网路能从低级特征中迭代提取更复杂的特征。

全连接层(fullyconnectedlayer),是指将将经过多个卷积层和池化层的图像特征图中的特征进行整合的线性运算单元层。全连接层将卷积层产生的特征图映射成一个固定长度(一般为输入图像数据集中的图像类别数)的特征向量。全连接层在与卷积层连接之前可以设置激活函数,常见的激活函数包括:修正线性单元、sigmoid函数和tanh函数。这里以修正线性单元为例进行说明,修正线性单元(rectifiedlinearunit,relu),又称线性整流函数,是一种人工神经网络中常用的激活函数(activationfunction),通常指代以斜坡函数及其变种为代表的非线性函数。

文本语料,是指语料库中存放的是在语言的实际使用中真实出现过的语言材料;其中,语料库是以电子计算机为载体承载语言知识的基础资源;文本语料需要经过加工例如:分析和处理,才能被语言任务模型处理,这里的语言任务模型是指自然语言处理的特定任务的神经网络模型,例如:对文本进行分类的神经网络模型。

文本分类模型,又称文本分类神经网络模型,是指对神经网络进行训练后获得的用于文本分类的神经网络模型,即将文本语料作为文本分类模型的输入获得概率列表的输出,这里概率列表是指,将文本语料经过上述的文本分类神经网络模型进行计算获得的多个概率,这里的概率是指文本语料归属于各个分类的概率,常见的文本分类神经网络模型例如:卷积神经网络(convolutionalneuralnetwork,cnn)和深度神经网络(deepneuralnetworks,dnn)等等。可以大体上分为基于传统机器学习的文本分类模型,以及基于深度学习的文本分类模型,目前基于深度学习模型的文本分类模型已经成为了主流,本申请实施例中所介绍的文本分类模型是基于深度学习的文本分类模型。

输入表示向量(inputrepresentation),又被翻译为输入文本的语义表示,是指为了让模型能够处理大量的下采样(down-stream)的任务,而能够没有歧义且唯一的(unambiguously)表示一个令牌序列中的一个语句或者一组语句为一个一维向量。在基于深度神经网络的nlp方法中,文本中的字/词通常都用一维向量来表示(一般称之为“词向量”);在此基础上,神经网络会将文本中各个字或词的一维词向量作为输入,经过一系列复杂的转换后,输出一个一维向量作为文本的语义表示。

双向编码表示编码层(bidirectionalencoderrepresentationsfromtransformers,bert),又被称为双向编码表示编码器,又被翻译为基于transformer的双向编码器表征,或者翻译为来自transformer的双向编码器表示,或者翻译为bert的新语言表示模型,通常简称为bert,是一种语言表现层(representation)模型,该模型的设计目的在于,利用大规模无标注语料训练、获得文本的包含丰富语义信息的representation,即:文本的语义表示,然后将文本的语义表示在特定自然语言处理任务中作微调,最终应用于该自然语言处理任务。

分词(tokenization),是指将连续的字序列按照一定的规范重新组合成词序列的过程,以自然语言处理(naturallanguageprocessing,nlp)领域为例,常见的分词分为英文分词和中文分词,在英文的行文中,单词之间是以空格作为自然分界符的,而中文只有字、句和段能通过明显的分界符来简单划界,而词没有一个形式上的分界符。

中文和英文分词的差异,在前面已经大概描述了分词的概念,这里重点讲一下中文分词和英文分词的差异,虽然英文也同样存在短语的划分问题,不过在词这一层上,中文比之英文要复杂得多、困难得多。当文本信息为中文文本时,不同于英文文本中相邻两个单词间以空格作为自然分界符,中文文本的相邻词语间没有明显的分界符,因此,需要对文本信息进行中文分词处理。中文分词即将一个汉字序列切分成一个一个单独的词。比较中英文差异可以初步判断这种差异的来源,这种差异的来源例如:中文为大字符集,字符的数量比英文多,英文词汇的数量比较中文多。在自然科学领域,可以明显感觉到,中文的专用名词多为音译或字词拼接,相较于英文,中文的顺序更加重要,中文中的相似字符不同的组合,可以得到完全不同的含义,即由中文字从完全不同的向量维度可以获得很多种组合出来的词语;而中文词语的概念边界就很模糊,因此,中文语境中字与字之间的顺序就更加重要。

向量化(vectorization)处理,可以是指对上述的多个有规律的字符序列使用向量表示,即把字符序列转化为向量形式;序列向量,是指对字符序列进行向量化表示获得的向量,当然,在对字符序列进行向量化表示之前,可以先对多个有规律的字符序列分词,再使用向量表示获得多个词向量,再使用词向量表示句子的向量,则获得序列向量。其中具体的向量化处理例如:可以对字符序列进行向量化表示,也可以先对多个有规律的字符序列分词(tokenization),获得多个词语,针对多个词语使用向量表示,获得多个词向量(wordvector),按照句子使用词向量表示时,则获得多个句子向量(sentencevector)。

本申请实施例提供了一种文本分类方法,该方法共包括四个阶段:模型构建、模型预训练、模型微调(finetune)训练和模型应用;其中,模型构建,是指利用现有的神经网络搭建或者构建能够完成任务(未经训练)的神经网络模型的过程;模型预训练,是指逐渐调整模型参数,使得模型输出的文本语义表示能够刻画语言的本质的过程,以便于后续针对具体nlp任务作模型微调训练;模型微调训练,是指针对不同的nlp任务对模型进行稍微调整和训练,以使模型在不同的nlp任务中效果更好的过程;模型应用,是指使用已经训练好的模型完成具体的nlp任务的过程。

需要说明的是,上述的文本分类方法中的四个阶段,可以单独实施这四个阶段中的一个阶段方法,也可以全部阶段按照顺序进行实施,也可以多个阶段方法同时实施,同时实施的方式例如:模型在微调训练时,也可以进行模型应用,这两个阶段的方法可以并行实施。因此,这里的四个阶段之间的执行先后顺序不应理解为对本申请实施例的限制。

可以理解的是,上述的四个阶段的方法可以由电子设备来执行,这里的电子设备包括:具有执行计算机程序功能的设备终端或者服务器,设备终端例如:智能手机、个人电脑(personalcomputer,pc)、平板电脑、个人数字助理(personaldigitalassistant,pda)、移动上网设备(mobileinternetdevice,mid)、网络交换机或网络路由器等;当然这里的电子设备也可以是服务器,该服务器是指通过网络提供计算服务的设备,服务器例如:x86服务器以及非x86服务器,非x86服务器包括:大型机、小型机和unix服务器。

请参见图1示出的本申请实施例提供的文本分类方法中模型构建阶段的流程示意图;如上面描述的,文本分类方法包括的四个阶段:模型构建、模型预训练、模型微调训练和模型应用;这里首先介绍第一阶段模型构建的方法,该方法具体可以包括如下步骤:

步骤s110:获得双向编码表示编码层、文本卷积网络层和第二文本分类网络。

向量分类层,是指对向量进行分类的神经网络层,具体的向量分类层例如:归一化指数函数(softmax)层,又称归一化指数函数,或softmax函数,实际上是有限项离散概率分布的梯度对数归一化。在数学中,尤其是概率论和相关领域中,归一化指数函数,或称softmax函数,是逻辑函数的一种推广。它能将一个含任意实数的k维向量z“压缩”到另一个k维实向量σ(z)中,使得每一个元素的范围都在(0,1)之间,并且所有元素的和为1。

第二文本分类网络,是指包括卷积层(convolutionallayer,下面简称convolution)和向量分类层构成的用于文本分类的神经网络,本申请实施例中的第二文本分类网络包括:卷积层和向量分类层;具体例如:由卷积层、全连接层和向量分类层构成的神经网络,具体地例如cnn模型。

这里获得双向编码表示编码层、文本卷积网络层和第二文本分类网络的具体实施方式例如:第一种方式,通过网络上下载已经训练好的双向编码表示编码层、文本卷积网络层和第二文本分类网络;第二种方式,从已有的库中基本结构来构建双向编码表示编码层、文本卷积网络层和第二文本分类网络。

步骤s120:将卷积层、双向编码表示编码层、文本卷积网络层和向量分类层依次对齐连接,获得第一文本分类网络。

对齐连接,是指将要对齐的两个神经网络的输入参数的大小和输出参数的大小设置为相同,并将对齐的两个神经网络连接到一起。

获得第一文本分类网络的具体实施方式例如:可以是对齐的两个神经网络连接到一起,也可以是在创建第一文本分类网络时,直接由卷积层、双向编码表示编码层、文本卷积网络层和向量分类层初始化连接构建。

请参见图2示出的本申请实施例提供的文本分类方法中模型预训练阶段的流程示意图;如上面描述的,文本分类方法包括的四个阶段:模型构建、模型预训练、模型微调训练和模型应用;上面介绍了模型构建的方法,下面介绍第二阶段模型预训练的方法,该方法具体可以包括如下步骤:

步骤s210:对文本语料进行分词处理,获得多个词语。

对文本语料进行分词处理的实施方式有很多种,这些实施方式例如:第一类是基于语法和规则的分词法:基本思想就是在分词的同时进行句法、语义分析,利用句法信息和语义信息来进行词性标注,以解决分词歧义现象。第二类是机械式分词法(即基于词典):机械分词的原理是将文档中的字符串与词典中的词条进行逐一匹配,如果词典中找到某个字符串,则匹配成功,可以切分,否则不予切分,机械式分词法例如:以词典为依据的正向最大匹配法、逆向最大匹配法和最少切分法。第三类是基于统计的方法:基于统计的分词法的基本原理是根据字符串在语料库中出现的统计频率来决定其是否构成词。词是字的组合,相邻的字同时出现的次数越多,就越有可能构成一个词,基于统计的方法例如:隐马尔可夫模型(hiddenmarkovmodel,hmm)方法、n元模型(n-gram)方法和条件随机场方法等等;其中,条件随机场是一个基于统计的序列标记和分割的方法,属于基于统计的分词方法范畴。

这里对中文文本的分词作简单介绍,当文本信息为中文文本时,不同于英文文本中相邻两个单词间以空格作为自然分界符,中文文本的相邻词语间没有明显的分界符,因此,需要对文本信息进行中文分词处理。中文分词即将一个汉字序列切分成一个一个单独的词。中文分词可以选用python的jieba分词组件或者汉语词法分析系统(instituteofcomputingtechnology,chineselexicalanalysissystem,ictclas)。当然,也可以采用其他的中文分词算法。上述的两种中文分词方法各有优点,其中,jieba分词组件安装、使用简单,而ictclas分词的精度较高。

步骤s220:对多个词语的每个词语中的字符进行向量化处理,获得令牌嵌入向量。

词嵌入,是指自然语言处理(nlp)中一组语言建模和特征学习技术的,其中词汇表中的单词或短语映射到实数向量。从概念上讲,它涉及到一个数学嵌入,从每个单词的多维空间映射到一个连续的向量空间。

令牌嵌入(tokenembeddings),与上面的词嵌入类似,这里的令牌可以先简单理解为上面的词,这里的令牌嵌入是指将从每个单词部分(wordpiece)、完整单词或者其它特殊字符的多维空间映射到一个连续的向量空间,而令牌嵌入向量则是指映射后的一个向量。对应到中文语境中,则可以是指将从每个字、完整词语或者其它特殊字符的多维空间映射到一个连续的向量空间,而令牌嵌入向量则是指映射后的一个向量。

获得令牌嵌入向量的实施方式例如:可以对字符序列进行向量化表示,也可以先对多个有规律的字符序列分词(tokenization),获得多个词语,然后对这多个词语进行其它处理,其它处理例如:每个语句之间增加第一分割符,当该语句有不同的分句时,需在首分句增加标识符,并在每个分句之间增加第二分隔符,以使模型将每个语句都公平对待;当该单词包括词原型和词缀时,将词原型和词缀分别作为两个令牌处理,即作为两个令牌进行向量化,其中,具体地实施方式例如:bert将输入文本中的每一个词(token)送入令牌嵌入(tokenembedding)层从而将每一个令牌转换成向量形式,从而获得令牌嵌入向量。

其中,在本申请实施例中,步骤s220可以包括如下步骤:

步骤s221:查找与多个词语的每个词语中的字符对应的令牌,获得多个第一令牌。

步骤s222:根据预设概率对多个第一令牌进行掩码计算,获得多个第二令牌。

步骤s223:对多个第二令牌进行向量化处理,获得令牌嵌入向量。

其中,步骤s221至步骤s223的实施方式例如:这里的令牌对英文语料进行处理时,可以理解为单词部分(wordpiece)、完整单词或者其它特殊字符,第一令牌的具体获得方式例如:当该单词包括词原型和词缀时,将词原型和词缀分别作为两个令牌处理,即作为两个令牌进行向量化,即可获得第一令牌。第一令牌的具体获得又例如:在对中文语料进行处理时,每个字、完整词语或者其它特殊字符,当词语中的字的顺序影响词语的具体含义时,可以将词语拆分成多个字,将多个字分别作为多个令牌处理,即作为多个令牌进行向量化,即可获得多个第一令牌。

预设概率,是指对多个第一令牌随机掩码的概率值,这里的预设概率可以是5%、10%或15%,在具体实施方式中,可以将预设概率设置为5%。

根据预设概率对多个第一令牌进行掩码(mask)计算的实施方式例如:使用随机5%的概率替换掉多个第一令牌中的第一令牌,具体地,可以使用[mask]标志符替代被替换掉第一令牌,当然在具体实施过程中,可以根据实际需求调整[mask]标志符的具体字符。

在上述的实现过程中,通过对设置多个第一令牌进行预设概率的掩码计算,该掩码计算能够使模型更好的根据上下文预测被掩码的令牌,从而使文本语料中的语义特征更好地被发现,达到更快地分类文本语料的技术效果。

步骤s230:对多个词语的每个词语对应的语句序列进行向量化处理,获得句段嵌入向量。

句段嵌入(segmentembedding),与上面的令牌嵌入类似,不同之处在于,这里的向量化单位是句段,这里的句段可以是分句、句子(一个句子可以由多个分句构成)或者段落(当段落只有一句话时)。句段嵌入向量,则是指将上述分句、句子或者段落进行向量化运算后的向量。

获得句段嵌入向量的实施方式例如:对多个词语的每个词语对应的语句序列进行向量化处理,具体地,bert将输入文本中的每一个句段(segment)送入句段嵌入(segmentembedding)层从而将每一个句段转换成向量形式,从而获得句段嵌入向量。

步骤s240:对多个词语的每个词语对应的正序位置进行向量化处理,获得位置嵌入向量。

位置嵌入(positionembedding),与上面的令牌嵌入类似,不同之处在于,位置嵌入向量是将令牌的位置进行向量化计算,而不是将令牌本身进行向量化计算。位置嵌入向量,则是指将上述令牌的位置进行向量化运算后的向量。

获得位置嵌入向量的实施方式例如:对多个词语的每个词语对应的正序位置进行向量化处理,具体地,bert将输入文本中的每个词语对应的正序位置从而将每一个句段转换成向量形式,从而获得位置嵌入向量。

步骤s250:对多个词语的每个词语对应的逆序位置进行向量化处理,获得逆位嵌入向量。

逆位嵌入(reversepositionembedding),与上面的位置嵌入类似,不同之处在于,位置嵌入是将令牌的正序位置进行向量化计算,而逆位嵌入是将令牌的逆序位置进行向量化计算。逆位嵌入向量,则是指将上述令牌的逆序位置进行向量化运算后的向量。

获得逆位嵌入向量的实施方式例如:对多个词语的每个词语对应的逆序位置进行向量化处理,具体地,bert将输入文本中的每个词语对应的逆序位置从而将每一个句段转换成向量形式,从而获得逆位嵌入向量。

步骤s260:根据令牌嵌入向量、句段嵌入向量、位置嵌入向量和逆位嵌入向量确定输入表示向量。

其中,根据多个嵌入向量获得输入表示向量的具体方式至少有两种方式:第一种方式为将上述的多个嵌入向量相加(add):第二种方式为将上述的多个嵌入向量连接(concatenate);下面先介绍第一种将上述的多个嵌入向量相加的方式,该方式可以包括如下步骤:

步骤s261:将令牌嵌入向量、句段嵌入向量、位置嵌入向量和逆位嵌入向量相加,获得输入表示向量。

获得输入表示向量的实施方式例如:若令牌嵌入向量为01、句段嵌入向量为10、位置嵌入向量为21和逆位嵌入向量为33,那么将上述的多个嵌入向量相加后,获得的输入表示向量为65。

上面介绍了第一种将上述的多个嵌入向量相加的方式,下面介绍第二种将上述的多个嵌入向量连接的方式;该方式可以包括如下步骤:

步骤s262:将令牌嵌入向量、句段嵌入向量、位置嵌入向量和逆位嵌入向量连接起来,获得输入表示向量。

获得输入表示向量的实施方式例如:若令牌嵌入向量为01、句段嵌入向量为10、位置嵌入向量为21和逆位嵌入向量为33,那么将上述的多个嵌入向量进行连接后,获得的输入表示向量为01102133。

在上述的实现过程中,通过在原来的输入表示向量增加了逆位嵌入向量,使得该逆位嵌入向量能够能好的表现字符序列的位置,从而使文本语料中的语义特征更快地被发现,即使文本语料更加充分地预训练,以尽可能降低序列中字符顺序的不确定熵对分类结果的影响。

请参见图3示出的本申请实施例提供的文本分类方法中模型微调训练阶段的流程示意图;如上面描述的,文本分类方法包括的四个阶段:模型构建、模型预训练、模型微调训练和模型应用;上面介绍了模型预训练的方法,下面介绍第三阶段模型微调训练的方法,该方法具体可以包括如下步骤:

步骤s310:获得多个文本数据和多个文本标签,文本标签是与文本数据的分类对应的标签。

其中,这里的文本数据是指上面的文本语料,即模型的训练数据,在具体的实施过程中,这里仍然需要将训练数据使用向量化表示后输入模型,即根据文本语料获得输入表示向量后,将输入表示向量作为模型的输入;文本标签即上述文本数据的对应的分类标签,即模型的训练标签,例如:一篇文章是法律类的文章,那么该文章的分类标签可以为法律。

获得多个文本数据和多个文本标签的实施方式例如:第一种方式,通过网络上下载上述的训练数据和训练标签;第二种方式,收集多个文本数据,并根据多个文本数据的每个文本数据的具体内容设置相应的分类标签作为训练标签。

步骤s320:以多个文本数据为训练数据,以多个文本标签为训练标签,对第一文本分类网络进行训练,获得文本分类模型。

获得文本分类模型的实施方式例如:以多个文本数据为训练数据,以多个文本标签为训练标签,对第一文本分类网络进行训练,其中,这里的训练方式是以有监督训练为例进行说明的,当然在具体的实施过程中,还可以无监督训练或者半监督训练方式进行训练。

需要说明的是,在模型训练之前还可以对模型进行微调(fine-tunning),具体的微调方式例如:针对语句级别或者序列级别(sequence-level)的文本分类任务,直接取第一个令牌(token)为[cls]的最后隐藏状态(finalhiddenstate)为加一层权重后的归一化指数函数(softmax)层预测标签概率(labelprobability),例如:p=softmax(cwt),其中,p代表标签概率,softmax代表归一化指数函数层,代表最后隐藏状态,代表权重参数,t代表对矩阵进行转置运算。

请参见图4示出的本申请实施例提供的文本分类方法中模型应用阶段的流程示意图;如上面描述的,文本分类方法包括的四个阶段:模型构建、模型预训练、模型微调训练和模型应用;上面介绍了模型微调训练的方法,下面介绍第四阶段模型应用的方法,该方法具体可以包括如下步骤:

步骤s410:使用文本分类模型的卷积层对输入表示向量进行卷积运算,获得第一特征向量。

其中,这里的输入表示向量是对文本语料进行向量化处理获得的,这里的文本分类模型是指对第一文本分类网络进行训练后获得的神经网络模型,这里的文本语料可以是英文的文本语料,也可以是中文的文本语料,当然也可以是其它语种的文本语料,因此,这里的文本语料的具体语种不应理解为对本申请实施例的限制。获得第一特征向量的实施方式例如:使用文本分类模型的卷积层对输入表示向量进行卷积运算,这里的文本分类模型的卷积层的具体层数可以根据具体实际情况进行制定,获得第一特征向量。

步骤s420:使用文本分类模型的双向编码表示编码层对第一特征向量进行编码运算,获得第二特征向量。

其中,这里的编码运算是指使用双向编码表示编码层,即使用bert模型进行运算,这里的运算包括:编码(encode)、解码(decode)、自注意力(selfattention)机制和变形(transformer)等运算,因此,使用文本分类模型的双向编码表示编码层对第一特征向量进行编码运算包括的具体运算不应理解为对本申请实施例的限制,使用文本分类模型的双向编码表示编码层对第一特征向量进行编码运算之后,即可获得第二特征向量。

步骤s430:使用文本分类模型的文本卷积网络层对第二特征向量进行卷积运算,获得第三特征向量。

其中,使用文本分类模型的文本卷积网络层对第二特征向量进行卷积运算之后,这里的文本卷积网络层(text-cnn)是一种利用卷积神经网络对文本进行分类的算法,是由yoonkim在“convolutionalneuralnetworksforsentenceclassification”一文中提出的算法,使用该算法对第二特征向量进行卷积运算,即可获得第三特征向量。

步骤s440:使用文本分类模型的向量分类层对第三特征向量进行分类,获得文本语料的分类。

其中,在具体的实施过程中,向量分类层可以为归一化指数函数层,当然也可以为其它结构或者函数,这里的以向量分类层为归一化指数函数层即softmax函数为例进行说明,那么步骤s440可以包括如下步骤:

步骤s441:使用归一化指数函数层对第三特征向量进行归一化运算,获得分类概率列表,分类概率列表包括多个分类概率。

其中,使用归一化指数函数层对第三特征向量进行归一化运算,这里的归一化运算是一种简化计算的方式,即将有量纲的表达式,经过变换,化为无量纲的表达式,成为标量。具体地例如:使用归一化指数函数层即softmax层对第三特征向量进行运算,即可获得分类概率列表。在上述的实现过程中,使用归一化指数函数层对第三特征向量进行归一化运算,从而提高了对文本语料进行分类的计算速度。

步骤s442:将多个分类概率中最大的分类概率对应的分类确定为文本语料的分类。

其中,将多个分类概率中最大的分类概率对应的分类确定为文本语料的分类的实施方式根据分类的不同有很多方式,分类的不同例如:可以按照文本语料的情感类别来分类,也可以按照文本语料所属的话题或者主题分类,主题分类的列表可以包括:法律、时政或社会等等。这里以按照文本语料的情感类别来分类进行详细地说明例如:若文本语料为正面情感的概率值为0.7,负面情感的概率值为0.2,中间情感的概率值为0.1,则可确定该文本语料的情感类别为正面情感。

在上述实现过程中,通过在传统的文本分类模型上增加了双向编码表示编码层(bert)和文本卷积网络层(text-cnn),将传统的文本分类模型改进为:卷积层、双向编码表示编码层、文本卷积网络层和向量分类层,让文本语料中的语义特征更快地被改进后的模型发现,从而提高了对文本进行分类的速度。

请参见图5示出的本申请实施例提供的文本分类装置结构示意图;本申请实施例提供了一种文本分类装置500,包括:

第一运算模块510,用于使用文本分类模型的卷积层对输入表示向量进行卷积运算,获得第一特征向量,输入表示向量是对文本语料进行向量化处理获得的。

第二运算模块520,用于使用文本分类模型的双向编码表示编码层对第一特征向量进行编码运算,获得第二特征向量。

第三运算模块530,用于使用文本分类模型的文本卷积网络层对第二特征向量进行卷积运算,获得第三特征向量。

文本分类模块540,用于使用文本分类模型的向量分类层对第三特征向量进行分类,获得文本语料的分类。

可选地,在本申请实施例中,向量分类层为归一化指数函数层,文本分类模块包括:

第一获得模块,用于使用归一化指数函数层对第三特征向量进行归一化运算,获得分类概率列表,分类概率列表包括多个分类概率。

第一确定模块,用于将多个分类概率中最大的分类概率对应的分类确定为文本语料的分类。

可选地,在本申请实施例中,该装置还可以包括:

第二获得模块,用于对文本语料进行分词处理,获得多个词语。

第三获得模块,用于对多个词语的每个词语中的字符进行向量化处理,获得令牌嵌入向量。

第四获得模块,用于对多个词语的每个词语对应的语句序列进行向量化处理,获得句段嵌入向量。

第五获得模块,用于对多个词语的每个词语对应的正序位置进行向量化处理,获得位置嵌入向量。

第六获得模块,用于对多个词语的每个词语对应的逆序位置进行向量化处理,获得逆位嵌入向量。

第二确定模块,用于根据令牌嵌入向量、句段嵌入向量、位置嵌入向量和逆位嵌入向量确定输入表示向量。

可选地,在本申请实施例中,第三获得模块包括:

第七获得模块,用于查找与多个词语的每个词语中的字符对应的令牌,获得多个第一令牌。

第八获得模块,用于根据预设概率对多个第一令牌进行掩码计算,获得多个第二令牌。

第九获得模块,用于对多个第二令牌进行向量化处理,获得令牌嵌入向量。

可选地,在本申请实施例中,第二确定模块包括:

向量相加模块,用于将令牌嵌入向量、句段嵌入向量、位置嵌入向量和逆位嵌入向量相加,获得输入表示向量。

可选地,在本申请实施例中,第二确定模块还可以包括:

向量连接模块,用于将令牌嵌入向量、句段嵌入向量、位置嵌入向量和逆位嵌入向量连接起来,获得输入表示向量。

可选地,在本申请实施例中,该装置还包括:

文本获得模块,用于获得多个文本数据和多个文本标签,文本标签是与文本数据的分类对应的标签。

模型训练模块,用于以多个文本数据为训练数据,以多个文本标签为训练标签,对第一文本分类网络进行训练,获得文本分类模型。

可选地,在本申请实施例中,该装置还可以包括:

网络获得模块,用于获得双向编码表示编码层、文本卷积网络层和第二文本分类网络,第二文本分类网络包括:卷积层和向量分类层。

网络连接模块,用于将卷积层、双向编码表示编码层、文本卷积网络层和向量分类层依次对齐连接,获得第一文本分类网络。

应理解的是,该装置与上述的方法实施例对应,能够执行上述方法实施例涉及的各个步骤,该装置具体的功能可以参见上文中的描述,为避免重复,此处适当省略详细描述。该装置包括至少一个能以软件或固件(firmware)的形式存储于存储器中或固化在装置的操作系统(operatingsystem,os)中的软件功能模块。

请参见图6示出的本申请实施例提供的电子设备的结构示意图。本申请实施例提供的一种电子设备610,包括:处理器620和存储器630,存储器630存储有处理器620可执行的机器可读指令,机器可读指令被处理器620执行时执行如上的方法。

本申请实施例还提供了一种存储介质640,该存储介质640上存储有计算机程序,该计算机程序被处理器620运行时执行如上的方法。

其中,存储介质640可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(staticrandomaccessmemory,简称sram),电可擦除可编程只读存储器(electricallyerasableprogrammableread-onlymemory,简称eeprom),可擦除可编程只读存储器(erasableprogrammablereadonlymemory,简称eprom),可编程只读存储器(programmablered-onlymemory,简称prom),只读存储器(read-onlymemory,简称rom),磁存储器,快闪存储器,磁盘或光盘。

本申请实施例所提供的几个实施例中,应该理解到,所揭露的装置和方法,也可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,附图中的流程图和框图显示了根据本申请实施例的多个实施例的装置、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或代码的一部分,模块、程序段或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现方式中,方框中所标注的功能也可以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

另外,在本申请实施例各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

再者,在本申请实施例各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。

以上的描述,仅为本申请实施例的可选实施方式,但本申请实施例的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请实施例揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请实施例的保护范围之内。

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