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

文档序号:15386239发布日期:2018-09-08 00:36阅读:152来源:国知局

本申请涉及计算机技术领域,特别是涉及一种文本分类方法、装置、计算机设备和存储介质。



背景技术:

包括三大电信运营商在内的众多关系到国计民生的服务平台,提供了种类繁多的基础业务和增值业务。一方面这些服务平台竭力规范服务流程、优化服务质量,另一方面由于普通用户及其需求的多样性而导致不断出现各种问题。运营商的客服集团最主要的职责就是解决用户使用产品中出现的各种问题,以提高售后用户满意度。例如电信集团客服需要及时了解全国各地客户投诉内容以优化整改相关业务或部门。同时及时地将客户电话投诉工单指派到具体的处理部门去执行,这也是提高客服效率的重要方面。由于当前全国客服投诉工单总量非常大,需要大量的具有专业客服背景知识和实际业务经验的客服人员进行手工分类。近年来,鉴于机器学习为代表的人工智能技术的蓬勃发展,人工智能在计算机视觉、语音和自然语言理解方向的研究及其产业化飞速进步。人们希望借助人工智能技术对工单进行自动标注(即分类),以节省人力和提高办事效率。

现有的关于文本的主流机器学习分类方法是基于支持向量机(svm)和决策树(dt)为代表的监督学习算法。首先,模型的学习数据需要经过专业客服进行标注产生;其次,深谙当前业务的数据科学家对数据进行预处理并进行数据探索,试图通过业务专业知识来提取出较关键的数据属性且去除不重要的属性;最后利用人工处理后的数据,算法工程师尝试比较各种算法(svm、dt等)在当前数据上的学习效果,再在较好的模型算法上调整其本身各种参数使得算法达到最优。传统对工单文本的学习过程一般有如下步骤:①经验丰富的专业客服人员对工单文本标注其标签类别,如一个三级标签为“互联网类-理财类-甜橙理财”;②对其业务有相当经验的算法工程师将文本数据进行适度清洗,例如去除文本中不重要的数字、标点符号和其他字符;再进行数据探索,试图找出数据中较有用的特征属性,从而形成可输入模型进行学习的中间数据;③算法工程师同时利用预处理后的数据进行多个不同模型的试验,根据选定的评测指标确定一个最好的模型;④算法工程师对选定的模型进行调整参数操作,使得模型对数据具有最佳学习效果。然而通过这种基于dl算法的工单分类方法需要大量人工标注数据,这大大制约了其实际的使用。



技术实现要素:

基于此,有必要针对上述技术问题,提供一种文本分类方法、装置、计算机设备和存储介质。

一种文本分类方法,所述方法包括:

获取待分类文本;

将所述待分类文本输入对训练文本进行训练得到的分类模型,获得所述待分类文本的分类结果;

对训练文本进行训练得到的分类模型的步骤包括:

将训练文本中标注文本输入预设分类模型,进行监督对抗训练,并将训练文本中无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,获得分类模型。

在其中一个实施例中,所述获取待分类文本之前,还包括:

构建分类模型;

所述构建分类模型包括:

配置预训练模型参数,所述预训练模型为深度神经网络模型,所述预训练模型包括输入层、嵌入层、lstm(longshort-termmemory,长短期记忆网络)层以及samplesoftmaxloss层;

将训练文本输入所述预训练模型,对所述预训练模型进行训练,更新所述预训练模型中嵌入层参数与lstm层参数,所述训练文本包括标注文本和无标注文本,所述输入层为输入的训练文本的数字编号,所述嵌入层为所述训练文本的数字编号相对应的向量;

根据更新后的所述预训练模型的嵌入层参数与lstm层参数初始化预设分类模型的嵌入层参数与lstm层参数,同时配置预设分类模型的除嵌入层参数与lstm层参数外参数,所述预设分类模型为神经网络模型,所述预设分类模型包括输入层、嵌入层、lstm层、softmaxloss层以及kl层;

将所述标注文本输入所述预设分类模型,进行监督对抗训练,并将所述无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,更新所述预设分类模型的参数,获得分类模型。之前,还包括:

配置预训练模型参数,所述预训练模型为深度神经网络模型,所述预训练模型包括输入层、嵌入层、lstm层以及samplesoftmaxloss层;

将训练文本输入所述预训练模型,对所述预训练模型进行训练,更新所述预训练模型中嵌入层参数与lstm层参数,所述训练文本包括标注文本和无标注文本,所述输入层为输入的训练文本的数字编号,所述嵌入层为所述训练文本的数字编号相对应的向量;

根据更新后的所述预训练模型的嵌入层参数与lstm层参数初始化预设分类模型的嵌入层参数与lstm层参数,同时配置预设分类模型的除嵌入层参数与lstm层参数外参数,所述预设分类模型为神经网络模型,所述预设分类模型包括输入层、嵌入层、lstm层、softmaxloss层以及kl层;

将所述标注文本输入所述预设分类模型,进行监督对抗训练,并将所述无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,更新所述预设分类模型的参数,获得分类模型。

在其中一个实施例中,所述将将所述标注文本输入所述预设分类模型,进行监督对抗训练,并将所述无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,更新所述预设分类模型的参数之后还包括:

获取所述预设分类模型训练过程中的训练损失数据,同时对所述分类模型进行验证,获取验证损失数据,当所述训练损失数据小于第一预设值且所述验证损失数据小于第二预设值时,输出所述预设分类模型。

在其中一个实施例中,所述将所述标注文本输入所述预设分类模型,进行监督对抗训练,并将所述无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,更新所述预设分类模型的参数之后还包括:

获取所述预设分类模型训练过程中的训练损失数据,同时对所述分类模型进行验证,获取验证损失数据,当所述训练损失数据大于等于第一预设值或所述验证损失数据大于等于第二预设值时,返回将所述标注文本输入所述预设分类模型,进行监督对抗训练,并将所述无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,更新所述预设分类模型的参数的步骤。

在其中一个实施例中,所述将训练文本输入所述预训练模型,进行训练,更新所述预训练模型中嵌入层参数与lstm层参数前还包括:

在所述训练文本上添加标记。

在其中一个实施例中,所述将训练文本输入所述预训练模型,进行训练,更新所述预训练模型中嵌入层参数与lstm层参数具体包括:

将预设数量的训练文本输入所述预训练模型,迭代开始;

通过所述嵌入层以及lstm层对所述标注文本与无标注文本进行分类,获得预训练分类结果;

将所述预训练分类结果输入sampledsoftmaxloss层,通过adam优化器方法,调整所述预训练模型的嵌入层参数与lstm层参数,迭代结束;

迭代上述步骤预设次数。

在其中一个实施例中,所述将所述标注文本输入所述预设分类模型,进行监督对抗训练,并具体包括:

将所述标注文本输入所述预设分类模型;

在所述预设分类模型的嵌入层添加扰动r=radv=-ξg/||g||2,其中ξ为超参数,为待训练的预设分类模型,x为输入的文本的文本向量,y为与x对应的分类标识,g为待训练预设分类模型在x点的梯度;

获取嵌入层损失与添加扰动后的softmaxloss层损失,根据所述嵌入层损失与所述softmaxloss层损失,通过adam优化器更新所述预设分类模型的参数。

在其中一个实施例中,所述将所述无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,更新所述预设分类模型的参数具体包括:

将所述无标注文本输入所述预设分类模型;

在所述预设分类模型的嵌入层添加扰动:

其中kl为相对熵,ξ为超参数,为相对熵的参数;

获取嵌入层损失与添加扰动后的kl层损失,根据所述嵌入层损失与所述kl层损失,通过adam优化器更新所述预设分类模型的参数。

一种文本分类装置,所述装置包括:

文本获取模块,用于获取待分类文本;

文本分类模块,用于将所述待分类文本输入对训练文本进行训练得到的分类模型,获得所述待分类文本的分类结果;

分类模型训练模块,用于将训练文本中标注文本输入预设分类模型,进行监督对抗训练,并将训练文本中无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,获得分类模型。

一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:

文本获取模块,用于获取待分类文本;

文本分类模块,用于将所述待分类文本输入对训练文本进行训练得到的分类模型,获得所述待分类文本的分类结果;

获取待分类文本;

将所述待分类文本输入对训练文本进行训练得到的分类模型,获得所述待分类文本的分类结果;

对训练文本进行训练得到的分类模型的步骤包括:

将训练文本中标注文本输入预设分类模型,进行监督对抗训练,并将训练文本中无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,获得分类模型。

一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:

获取待分类文本;

将所述待分类文本输入对训练文本进行训练得到的分类模型,获得所述待分类文本的分类结果;

对训练文本进行训练得到的分类模型的步骤包括:

将训练文本中标注文本输入预设分类模型,进行监督对抗训练,并将训练文本中无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,获得分类模型。

上述文本分类方法、装置、计算机设备和存储介质,获取待分类文本,而后将待分类文本输入分类模型,获得文本分类结果。由于分类模型是通过利用有标注的文本进行监督对抗训练,利用无标注的文本进行无监督虚拟对抗训练,来优化预设分类模型的模型而获得的。因此,分类模型的无监督虚拟对抗过程中可以利用了大量的无标注的数据作为输入来进行虚拟对抗训练,而不需要全部使用标注数据来充当预设分类模型训练,可以提高训练过程中输入的数据量,大大减轻对人工标注数据量的需求。

附图说明

图1为一个实施例的文本分类方法的流程示意图;

图2为另一个实施例的文本分类方法的流程示意图;

图3为一个实施例中神经网络模型的结构示意图;

图4为又一个实施例的文本分类方法的流程示意图;

图5为一个实施例中s140步骤的子流程示意图;

图6为一个实施例中s180步骤的子流程示意图;

图7为一个实施例中s180步骤的子流程示意图;

图8为一个实施例中文本分类装置的结构框图;

图9为一个实施例中计算机设备的内部结构图。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的实施例仅仅用以解释本申请,并不用于限定本申请。

本申请提供的文本方法,可以应用于终端上。终端可以用于构建神经网络模型。其中,终端可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备。

在一个实施例中,如图1所示,提供了一种文本分类方法,以该方法应用于上述终端为例进行说明,包括以下步骤:

s200,获取待分类文本。

获取需要进行分类的文本,在其中一个实施例中,待分类文本可以是投诉工单。因为投诉工单的文本分类相较于一般的百科类文本分类来说,一方面由于用户表达能力的限制导致问题描述不清,从而使得数据质量不高;另一方面基于传统机器学习的分类算法,极其依靠熟悉相关业务的算法人员进行人工提取特征作为其输入,也需要花费算法人员相当多的精力不断修改算法的参数。即所谓的“人肉特征工程”和“调参工程”。

s400,将待分类文本输入对训练文本进行训练得到的分类模型,获得待分类文本的分类结果。

通过所得的预设分类模型就可以对待分类文本进行分类,进而获得分类结果。由于分类模型是通过采用将训练文本输入预训练模型进行训练,获得嵌入层参数与lstm层参数,而后将预训练过程中获得的嵌入层参数与lstm层参数导入建立预设分类模型,利用有标注的文本进行监督对抗训练,利用无标注的文本进行无监督虚拟对抗训练,来优化预设分类模型的模型而获得的。因此,分类模型的无监督虚拟对抗过程中可以利用了大量的无标注的数据作为输入来进行虚拟对抗训练,而不需要全部使用标注数据来充当预设分类模型训练,可以提高训练过程中输入的数据量,大大减轻对人工标注数据量的需求。

在其中一个实施例中,如图2所示,文本分类方法还包括构建分类模型的步骤,具体包括:

s120,配置预训练模型参数,预训练模型为深度神经网络模型,预训练模型包括输入层、嵌入层、lstm层以及samplesoftmaxloss层。

其中,预训练模型是指用来对文本预设分类模型进行预训练的模型,预训练模型为深度神经网络模型,预训练模型的网络结构如图3上部分所示。

首先为配置预训练模型的参数,在其中一个实施例中,参数包括每次输入预训练中进行训练的文本的批大小(batch_size)、学习率(learning_rate)、学习衰退因子(learning_rate_decay_factor)、词嵌入维度(embedding_dims)以及循环神经元数目(rnn_cell_size),可以设置批大小为256、学习率为0.001、学习率衰减因子为0.9999、词嵌入维度为256、循环神经元数目为1024。

s140,将训练文本输入预训练模型,进行训练,更新预训练模型中嵌入层参数与lstm层参数。

输入预训练模型的训练文本包括标注文本和无标注文本,输入层为输入的训练文本的数字编号,嵌入层为训练文本的数字编号相对应的向量。在其中一个实施例中,将训练文本以句子为单位自动添加标记,如在每个句子的开始和结束添加特殊标志字符串”start_of_sentence”和”end_of_sentence”用以来标记句子的开始和结束。

将训练文本输入到预训练模型进行训练,输入层的训练文本的数字编号,所述嵌入层为所述训练文本的数字编号相对应的向量,而lstm层则主要包含了神经网络的循环神经元。在其中一个实施例中,可以通过迭代输入十万次的训练文本进行十万次训练来获得嵌入层参数与lstm层参数。

s160,根据更新后的预训练模型的嵌入层参数与lstm层参数初始化预设分类模型的嵌入层参数与lstm层参数,同时配置预设分类模型的除嵌入层参数与lstm层参数外参数,预设分类模型为神经网络模型,预设分类模型包括输入层、嵌入层、lstm层、softmaxloss层以及kl层。

预设分类模型为用于文本分类的模型,softmaxloss层主要用于有监督的深层神经网络训练,kl层主要用于无监督的深层神经网络训练。通过两者结合实现半监督的深层神经网络训练。预设分类模型模型的网络结构如图3下部分所示.

接着根据更新后的预训练模型的嵌入层参数与lstm层参数初始化预设分类模型的嵌入层参数与lstm层参数,并配置预设分类模型的其他参数。在其中一个实施例中,其他参数包括每次输入预训练中进行训练的文本的批大小(batch_size)、学习率(learning_rate)、学习衰退因子(learning_rate_decay_factor)、词嵌入维度(embedding_dims)、循环神经元数目(rnn_cell_size)、预设分类模型的隐层数目(cl_num_layers)以及随时间反向传播的时间步数(num_timesteps),可以设置批大小为64、学习率为0.0005、学习率衰减因子为0.9998、词嵌入维度为256、循环神经元数目为1024、预设分类模型的隐层数目为1、随时间反向传播的时间步数为400。

s180,将标注文本输入预设分类模型,进行监督对抗训练,并将无标注文本输入监督对抗训练后的预设分类模型,进行无监督虚拟对抗训练,更新预设分类模型的参数。

监督对抗训练是指利用一组已知类别的样本调整分类器的参数,使其达到所要求性能的过程。无监督对抗训练是指根据类别未知(没有被标记)的训练样本解决模式识别中的各种问题。

在设置完预设分类模型后,通过监督对抗训练与无监督对抗训练相结合的半监督对抗训练来更新预设分类模型的参数,获得分类结果更加准确的预设分类模型。在其中一个实施例中,可以循环进行监督对抗与无监督对抗,直到训练损失与验证损失同时低于预设值时停止训练。

上述文本分类方法,获取待分类文本,而后将待分类文本输入分类模型,获取待分类文本,而后将待分类文本输入分类模型,获得文本分类结果。由于分类模型是通过采用将训练文本输入预训练模型进行训练,获得嵌入层参数与lstm层参数,而后将预训练过程中获得的嵌入层参数与lstm层参数导入建立预设分类模型,利用有标注的文本进行监督对抗训练,利用无标注的文本进行无监督虚拟对抗训练,来优化预设分类模型的模型而获得的。因此,分类模型的无监督虚拟对抗过程中可以利用了大量的无标注的数据作为输入来进行虚拟对抗训练,而不需要全部使用标注数据来充当预设分类模型训练,可以提高训练过程中输入的数据量,大大减轻对人工标注数据量的需求,降低了预设分类模型建立的人力成本。同时通过本方法所获得的分类模型对对抗样本不敏感,鲁棒性和抗攻击性能好。

在其中一个实施例中,如图4所示,在步骤s180,将将标注文本输入预设分类模型,进行监督对抗训练,并将无标注文本输入监督对抗训练后的预设分类模型,进行无监督虚拟对抗训练,更新预设分类模型的参数之后还包括:

s192,获取预设分类模型训练过程中的训练损失数据,同时对分类模型进行验证,获取验证损失数据。

s194,判断训练损失数据与验证损失数据的大小关系,当训练损失数据小于第一预设值且验证损失数据小于第二预设值时,进入步骤s196

s196,输出分类模型。

损失的意思是对应于某个输入,模型预测的值和真实值之间的差距;嵌入层损失是预训练模型过程中的损失,而验证损失分类模型训练过程中的损失。训练的目标是不断缩小损失,只用当训练所得到的结果小于预先设定好的数值时,才会输出该更改参数的预设分类模型用于分类识别。通过使用更加准确的预设分类模型进行分类识别可以得到更加准确的识别结果。在其中一个实施例中,在验证损失数据之后,还需要验证系统的泛化性能。

在其中一个实施例中,如图3所示,在步骤s180,将标注文本输入预设分类模型,进行监督对抗训练,并将无标注文本输入监督对抗训练后的预设分类模型,进行无监督虚拟对抗训练,更新预设分类模型的参数之后还包括:

s192,获取预设分类模型训练过程中的训练损失数据,同时对分类模型进行验证,获取验证损失数据。

s194,判断训练损失数据与验证损失数据的大小关系,当训练损失数据大于等于第一预设值或验证损失数据大于等于第二预设值时,返回步骤s180。

当预设分类模型在训练过程中的损失数据大于预设值时,将返回训练过程,继续进行训练,直至损失数据小于预设值。通过使用更加准确的预设分类模型进行分类识别可以得到更加准确的识别结果。

在其中一个实施例中,如图5所述,步骤s140,将训练文本输入预训练模型,进行训练,更新预训练模型中嵌入层参数与lstm层参数包括:

s141,将预设数量的训练文本输入预训练模型,迭代开始;

s143,通过嵌入层以及lstm层对标注文本与无标注文本进行分类,获得预训练分类结果;

s145,将预训练分类结果输入sampledsoftmaxloss层,通过adam优化器方法,调整预训练模型的嵌入层参数与lstm层参数,迭代结束;

迭代上述步骤预设次数。

将预设数量的训练文本输入预训练模型,预设的数量可为预训练模型参数中的批大小的数量。而通过嵌入层以及lstm层对标注文本与无标注文本进行分类,获得预训练分类结果,并根据分类结果来调整预训练模型的嵌入层参数与lstm层参数。优化可为对模型进行反向传播训练。通过迭代足够多的次数来对嵌入层参数与lstm层参数进行优化,获得可以实际使用的参数,迭代次数可视实际分类所需要的精度而定。通过迭代预设次数可以获得更加精准的嵌入层参数与lstm层参数,获得更好的分类效果。

在其中一个实施例中,如图6所示,步骤s180中,将标注文本输入预设分类模型,进行监督对抗训练,并包括:

s181,将标注文本输入预设分类模型;

s182,在预设分类模型的嵌入层添加扰动r=radv=-ξg/||g||2,其中ξ为超参数,为待训练的预设分类模型,x为输入的文本的文本向量,y为与x对应的分类标识,g为待训练预设分类模型在x点的梯度;

s183,获取嵌入层损失与添加扰动后的softmaxloss层损失,根据嵌入层损失与softmaxloss层损失,通过adam优化器更新预设分类模型的参数。

softmaxloss层损失可以通过公式来进行计算,softmaxloss损失是对应于输入监督对抗过程的文本的损失数据。通过计算损失而后通过adam优化器的反向传播训练来更新预设分类模型的参数。从而获得更加精准的模型。

在其中一个实施例中,如图6所示,步骤s180中将无标注文本输入监督对抗训练后的预设分类模型,进行无监督虚拟对抗训练,更新预设分类模型的参数包括:

s184,将无标注文本输入预设分类模型;

s185,在预先设置好的分类模型的嵌入层中,添加扰动函数

其中kl为相对熵,ξ为超参数,为相对熵的参数;

s186,获取嵌入层损失与添加扰动后的kl层损失,根据嵌入层损失与kl层损失,通过adam优化器更新预设分类模型的参数。

相对熵的损失可以通过公式

来进行计算,相对熵损失是对应于输入无监督虚拟对抗过程的文本的损失数据。通过计算损失而后通过adam优化器的反向传播训练来更新预设分类模型的参数。从而获得更加精准的模型。

在其中一个实施例中,本申请的文本识别方法包括以下步骤:

s100,配置预训练模型参数,预训练模型为深度神经网络模型,预训练模型包括输入层、嵌入层、lstm层以及samplesoftmaxloss层。

s141,将预设数量的训练文本输入预训练模型,迭代开始;

s143,通过嵌入层以及lstm层对标注文本与无标注文本进行分类,获得预训练分类结果;

s146,将预训练分类结果输入sampledsoftmaxloss层,通过adam优化器方法,调整预训练模型的嵌入层参数与lstm层参数,迭代结束;

迭代上述步骤预设次数。

s160,根据更新后的预训练模型的嵌入层参数与lstm层参数初始化预设分类模型的嵌入层参数与lstm层参数,同时配置预设分类模型的除嵌入层参数与lstm层参数外参数,预设分类模型为神经网络模型,预设分类模型包括输入层、嵌入层、lstm层、softmaxloss层以及kl层。

s180,将标注文本输入预设分类模型,进行监督对抗训练,并将无标注文本输入监督对抗训练后的预设分类模型,进行无监督虚拟对抗训练,更新预设分类模型的参数。

s192,获取预设分类模型训练过程中的训练损失数据,同时对分类模型进行验证,获取验证损失数据。

s194,判断训练损失数据与验证损失数据的大小关系,当训练损失数据小于第一预设值且验证损失数据小于第二预设值时,进入步骤s196,否则返回步骤s180。

s196,输出分类模型。

s200,将训练文本输入分类模型

s400,将待分类文本输入对训练文本进行训练得到的分类模型,获得待分类文本的分类结果。

步骤s180,具体包括:

s181,将标注文本输入预设分类模型;

s182,在预设分类模型的嵌入层添加扰动r=radv=-ξg/||g||2,其中ξ为超参数,为待训练的预设分类模型,x为输入的文本的文本向量,y为与x对应的分类标识,g为待训练预设分类模型在x点的梯度;

s183,获取嵌入层损失与添加扰动后的softmaxloss层损失,根据嵌入层损失与softmaxloss层损失,通过adam优化器更新预设分类模型的参数。

s184,将无标注文本输入预设分类模型;

s185,在预先设置好的分类模型的嵌入层中,添加扰动函数

其中kl为相对熵,ξ为超参数,为相对熵的参数;

s186,获取嵌入层损失与添加扰动后的kl层损失,根据嵌入层损失与kl层损失,通过adam优化器更新预设分类模型的参数。

应该理解的是,虽然图1-7的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图图1-7的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

在一个实施例中,如图8所示,提供了一种文本分类装置,包括:

文本获取模块200,用于获取待分类文本;

文本分类模块400,用于将所述待分类文本输入对训练文本进行训练得到的分类模型,获得所述待分类文本的分类结果;

分类模型训练模块600,用于将训练文本中标注文本输入预设分类模型,进行监督对抗训练,并将训练文本中无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,获得分类模型。

在其中一个实施例中,分类模型训练模块600具体包括:

预训练模型建立单元,用于配置预训练模型参数,预训练模型为深度神经网络模型,预训练模型包括输入层、嵌入层、lstm层以及samplesoftmaxloss层;

预训练模型训练单元,用于将训练文本输入预训练模型,进行训练,更新预训练模型中嵌入层参数与lstm层参数,训练文本包括标注文本和无标注文本,输入层为输入的训练文本的数字编号,嵌入层为训练文本的数字编号相对应的向量;

预设分类模型建立单元,用于根据更新后的预训练模型的嵌入层参数与lstm层参数初始化预设分类模型的嵌入层参数与lstm层参数,同时配置预设分类模型的除嵌入层参数与lstm层参数外参数,预设分类模型为神经网络模型,预设分类模型包括输入层、嵌入层、lstm层、softmaxloss层以及kl层

对抗训练单元,用于将标注文本输入预设分类模型,进行监督对抗训练,并将无标注文本输入监督对抗训练后的预设分类模型,进行无监督虚拟对抗训练,更新预设分类模型的参数。

在其中一个实施例中,本申请的分类模型训练模块600还包括损失验证单元:用于获取所述预设分类模型训练过程中的训练损失数据,同时对所述分类模型进行验证,获取验证损失数据,当所述训练损失数据小于第一预设值且所述验证损失数据小于第二预设值时,输出所述预设分类模型。

在其中一个实施例中,损失验证单元还用于获取所述预设分类模型训练过程中的训练损失数据,同时对所述分类模型进行验证,获取验证损失数据,当所述训练损失数据大于等于第一预设值或所述验证损失数据大于等于第二预设值时,返回对抗训练模块进行对抗训练。

在其中一个实施例中,预训练模型训练单元具体用于:

将预设数量的训练文本输入所述预训练模型,迭代开始;

通过所述嵌入层以及lstm层对所述标注文本与无标注文本进行分类,获得预训练分类结果;

将所述预训练分类结果输入sampledsoftmaxloss层,通过adam优化器方法,调整所述预训练模型的嵌入层参数与lstm层参数,迭代结束;

迭代上述步骤预设次数。

在其中一个实施例中,对抗训练单元具体用于:

将所述标注文本输入所述预设分类模型;

在所述预设分类模型的嵌入层添加扰动r=radv=-ξg/||g||2,其中ξ为超参数,为待训练的预设分类模型,x为输入的文本的文本向量,y为与x对应的分类标识,g为待训练预设分类模型在x点的梯度;

获取嵌入层损失与添加扰动后的softmaxloss层损失,根据所述嵌入层损失与所述softmaxloss层损失,通过adam优化器更新所述预设分类模型的参数。

在其中一个实施例中,对抗训练单元具体用于:

将所述无标注文本输入所述预设分类模型;

在所述预设分类模型的嵌入层添加扰动:

其中kl为相对熵,ξ为超参数,为相对熵的参数;

获取嵌入层损失与添加扰动后的kl层损失,根据所述嵌入层损失与所述kl层损失,通过adam优化器更新所述预设分类模型的参数。

关于文本分类装置的具体限定可以参见上文中对于文本分类方法的限定,在此不再赘述。上述文本分类装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。

在一个实施例中,提供了一种计算机设备,该计算机设备可以是终端,其内部结构图可以如图9所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口、显示屏和输入装置。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统和计算机程序。该内存储器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种本文分类方法。该计算机设备的显示屏可以是液晶显示屏或者电子墨水显示屏,该计算机设备的输入装置可以是显示屏上覆盖的触摸层,也可以是计算机设备外壳上设置的按键、轨迹球或触控板,还可以是外接的键盘、触控板或鼠标等。

本领域技术人员可以理解,图9中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。

在一个实施例中,提供了一种计算机设备,包括存储器和处理器,存储器中存储有计算机程序,该处理器执行计算机程序时实现以下步骤:

获取待分类文本;

将所述待分类文本输入对训练文本进行训练得到的分类模型,获得所述待分类文本的分类结果;

对训练文本进行训练得到的分类模型的步骤包括:

将训练文本中标注文本输入预设分类模型,进行监督对抗训练,并将训练文本中无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,获得分类模型。

在其中一个实施例中,该处理器执行计算机程序时还实现以下步骤:

配置预训练模型参数,预训练模型为深度神经网络模型,预训练模型包括输入层、嵌入层、lstm层以及samplesoftmaxloss层;

将训练文本输入预训练模型,进行训练,更新预训练模型中嵌入层参数与lstm层参数,训练文本包括标注文本和无标注文本,输入层为输入的训练文本的数字编号,嵌入层为训练文本的数字编号相对应的向量;

根据更新后的预训练模型的嵌入层参数与lstm层参数初始化预设分类模型的嵌入层参数与lstm层参数,同时配置预设分类模型的除嵌入层参数与lstm层参数外参数,预设分类模型为神经网络模型,预设分类模型包括输入层、嵌入层、lstm层、softmaxloss层以及kl层;

将标注文本输入预设分类模型,进行监督对抗训练,并将无标注文本输入监督对抗训练后的预设分类模型,进行无监督虚拟对抗训练,更新预设分类模型的参数。

在其中一个实施例中,该处理器执行计算机程序时还实现以下步骤:

用于获取所述预设分类模型训练过程中的训练损失数据,同时对所述分类模型进行验证,获取验证损失数据,当所述训练损失数据小于第一预设值且所述验证损失数据小于第二预设值时,输出所述预设分类模型。

在其中一个实施例中,该处理器执行计算机程序时还实现以下步骤:

获取所述预设分类模型训练过程中的训练损失数据,同时对所述分类模型进行验证,获取验证损失数据,当所述训练损失数据大于等于第一预设值或所述验证损失数据大于等于第二预设值时,返回将标注文本输入预设分类模型,进行监督对抗训练,并将无标注文本输入监督对抗训练后的预设分类模型,进行无监督虚拟对抗训练,更新预设分类模型的参数的步骤。

在其中一个实施例中,该处理器执行计算机程序时还实现以下步骤:

将预设数量的训练文本输入所述预训练模型,迭代开始;

通过所述嵌入层以及lstm层对所述标注文本与无标注文本进行分类,获得预训练分类结果;

将所述预训练分类结果输入sampledsoftmaxloss层,通过adam优化器方法,调整所述预训练模型的嵌入层参数与lstm层参数,迭代结束;

迭代上述步骤预设次数。

在其中一个实施例中,该处理器执行计算机程序时还实现以下步骤:

将所述标注文本输入所述预设分类模型;

在所述预设分类模型的嵌入层添加扰动r=radv=-ξg/||g||2,其中ξ为超参数,为待训练的预设分类模型,x为输入的文本的文本向量,y为与x对应的分类标识,g为待训练预设分类模型在x点的梯度;

获取嵌入层损失与添加扰动后的softmaxloss层损失,根据所述嵌入层损失与所述softmaxloss层损失,通过adam优化器更新所述预设分类模型的参数。

在其中一个实施例中,该处理器执行计算机程序时还实现以下步骤:

将所述无标注文本输入所述预设分类模型;

在所述预设分类模型的嵌入层添加扰动:

其中kl为相对熵,ξ为超参数,为相对熵的参数;

获取嵌入层损失与添加扰动后的kl层损失,根据所述嵌入层损失与所述kl层损失,通过adam优化器更新所述预设分类模型的参数。

在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:

获取待分类文本;

将所述待分类文本输入对训练文本进行训练得到的分类模型,获得所述待分类文本的分类结果;

对训练文本进行训练得到的分类模型的步骤包括:

将训练文本中标注文本输入预设分类模型,进行监督对抗训练,并将训练文本中无标注文本输入监督对抗训练后的所述预设分类模型,进行无监督虚拟对抗训练,获得分类模型。

在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:

配置预训练模型参数,预训练模型为深度神经网络模型,预训练模型包括输入层、嵌入层、lstm层以及samplesoftmaxloss层;

将训练文本输入预训练模型,进行训练,更新预训练模型中嵌入层参数与lstm层参数,训练文本包括标注文本和无标注文本,输入层为输入的训练文本的数字编号,嵌入层为训练文本的数字编号相对应的向量;

根据更新后的预训练模型的嵌入层参数与lstm层参数初始化预设分类模型的嵌入层参数与lstm层参数,同时配置预设分类模型的除嵌入层参数与lstm层参数外参数,预设分类模型为神经网络模型,预设分类模型包括输入层、嵌入层、lstm层、softmaxloss层以及kl层;

将标注文本输入预设分类模型,进行监督对抗训练,并将无标注文本输入监督对抗训练后的预设分类模型,进行无监督虚拟对抗训练,更新预设分类模型的参数。

在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:

用于获取所述预设分类模型训练过程中的训练损失数据,同时对所述分类模型进行验证,获取验证损失数据,当所述训练损失数据小于第一预设值且所述验证损失数据小于第二预设值时,输出所述预设分类模型。

在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:

获取所述预设分类模型训练过程中的训练损失数据,同时对所述分类模型进行验证,获取验证损失数据,当所述训练损失数据大于等于第一预设值或所述验证损失数据大于等于第二预设值时,返回将标注文本输入预设分类模型,进行监督对抗训练,并将无标注文本输入监督对抗训练后的预设分类模型,进行无监督虚拟对抗训练,更新预设分类模型的参数的步骤。

在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:

将预设数量的训练文本输入所述预训练模型,迭代开始;

通过所述嵌入层以及lstm层对所述标注文本与无标注文本进行分类,获得预训练分类结果;

将所述预训练分类结果输入sampledsoftmaxloss层,通过adam优化器方法,调整所述预训练模型的嵌入层参数与lstm层参数,迭代结束;

迭代上述步骤预设次数。

在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:

将所述标注文本输入所述预设分类模型;

在所述预设分类模型的嵌入层添加扰动r=radv=-ξg/||g||2,其中ξ为超参数,为待训练的预设分类模型,x为输入的文本的文本向量,y为与x对应的分类标识,g为待训练预设分类模型在x点的梯度;

获取嵌入层损失与添加扰动后的softmaxloss层损失,根据所述嵌入层损失与所述softmaxloss层损失,通过adam优化器更新所述预设分类模型的参数。

在其中一个实施例中,计算机程序被处理器执行时还实现以下步骤:

将所述无标注文本输入所述预设分类模型;

在所述预设分类模型的嵌入层添加扰动:

其中kl为相对熵,ξ为超参数,为相对熵的参数;

获取嵌入层损失与添加扰动后的kl层损失,根据所述嵌入层损失与所述kl层损失,通过adam优化器更新所述预设分类模型的参数。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(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)等。

以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

以上所述实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。

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