文本特征的处理方法、装置和存储介质转让专利

申请号 : CN201910260688.X

文献号 : CN109992781B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 朱龙军

申请人 : 腾讯科技(深圳)有限公司

摘要 :

本发明公开了一种文本特征的处理、装置、存储介质和处理器。该方法包括:获取在目标场景下待进行特征选择的目标文本;对目标文本进行分词处理,得到多个目标分词;通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词,其中,第一神经网络通过第一文本训练样本的多个第一分词和第一文本训练样本在目标场景下的第一分类结果,进行深度学习训练得到;通过第一神经网络模型的第二目标网络层,将一个或多个第一目标分词确定为目标文本在目标场景下的第一目标特征,并输出第一目标特征。本发明解决了相关技术中对文本的特征进行选择的效率低的技术问题。

权利要求 :

1.一种文本特征的处理方法,其特征在于,包括:

获取在目标场景下待进行特征选择的目标文本;

对所述目标文本进行分词处理,得到多个目标分词;

通过第一神经网络模型的第一目标网络层,从所述多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词,其中,所述第一神经网络通过第一文本训练样本的多个第一分词和所述第一文本训练样本在所述目标场景下的第一分类结果,进行深度学习训练得到,所述目标权重用于指示每个所述目标分词对确定所述目标文本在所述目标场景下的第一目标分类结果的贡献程度;所述目标阈值为预先设定的在按照目标权重从多个目标分词中提取第一目标分词时的目标权重的临界值,或者为多个目标分词中前N个目标分词的最后一个分词的目标权重;

通过所述第一神经网络模型的第二目标网络层,将一个或多个所述第一目标分词确定为所述目标文本在所述目标场景下的第一目标特征,并输出所述第一目标特征。

2.根据权利要求1所述的方法,其特征在于,在输出所述第一目标特征之后,所述方法还包括:通过所述第一神经网络模型的第三目标网络层,对所述第一目标特征进行处理,得到所述目标文本在所述目标场景下的所述第一目标分类结果。

3.根据权利要求2所述的方法,其特征在于,在对所述第一目标特征进行处理,得到所述目标文本在所述目标场景下的所述第一目标分类结果之后,所述方法还包括:将所述第一目标分类结果反向传播至所述第一神经网络模型中,并按照预先设定的目标映射关系对所述第一神经网络模型的参数进行更新。

4.根据权利要求1所述的方法,其特征在于,在输出所述第一目标特征之后,所述方法还包括:通过所述目标文本和所述第一目标特征对第二子神经网络模型进行训练,得到第二神经网络模型,其中,所述第二神经网络模型用于对在所述目标场景下输入的文本进行分类。

5.根据权利要求1所述的方法,其特征在于,在通过第一神经网络模型的第一目标网络层,从所述多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词之前,所述方法还包括:对所述第一文本训练样本进行分词处理,得到所述多个第一分词;

将每个所述第一分词转化为一个词向量,得到多个词向量;

通过所述多个词向量和所述第一分类结果,对第一子神经网络模型进行深度学习训练,得到所述第一神经网络模型。

6.根据权利要求5所述的方法,其特征在于,通过所述多个词向量的第一权重和所述第一分类结果,对所述第一子神经网络模型进行处理,得到所述第一神经网络模型包括:获取每个所述词向量的第一权重,其中,所述第一权重用于指示与每个所述词向量对应的第一分词对确定所述第一分类结果的贡献程度;

通过所述多个词向量的第一权重和所述第一分类结果,对所述第一子神经网络模型进行处理,得到所述第一神经网络模型。

7.根据权利要求6所述的方法,其特征在于,

在获取每个所述词向量的第一权重之后,所述方法还包括:获取对每个所述词向量的第一权重进行归一化处理后的第二权重,得到多个所述第二权重;

通过所述多个词向量的第一权重和所述第一分类结果,对所述第一子神经网络模型进行处理,得到所述第一神经网络模型包括:通过多个所述第二权重中的大于等于所述目标阈值的所述第二权重和所述第一分类结果,对所述第一子神经网络模型进行处理,得到所述第一神经网络模型。

8.根据权利要求5所述的方法,其特征在于,在通过所述多个词向量和所述第一分类结果,对所述第一子神经网络模型进行处理,得到所述第一神经网络模型之后,所述方法还包括:通过所述第一神经网络模型的所述第一目标网络层,从第一文本测试样本中的多个第二分词中提取出第二权重大于等于所述目标阈值的一个或多个第二目标分词,其中,所述第二权重用于指示每个所述第二分词对确定所述第一文本测试样本在所述目标场景下的第二分类结果的贡献程度;

通过所述第一神经网络模型的所述第二目标网络层,将一个或多个所述第二分词确定为所述第一文本测试样本在所述目标场景下的第二目标特征,并输出所述第二目标特征;

通过所述第一神经网络模型的第三目标网络层,对所述第二目标特征进行处理,得到所述第一文本测试样本在所述目标场景下的所述第二分类结果;

在所述第二分类结果和所述第一文本测试样本的标注分类结果一致的情况下,通过所述第一文本测试样本和所述第二目标特征对第二子神经网络模型进行训练,得到第二神经网络模型,其中,所述第二神经网络模型用于对输入的文本进行分类。

9.根据权利要求1至8中任意一项所述的方法,其特征在于,所述目标场景包括以下至少之一:按照情感属性进行分类的场景;

按照主题类型进行分类的场景;

按照安全等级进行分类的场景;

按照质量等级进行分类的场景。

10.一种文本特征的处理装置,其特征在于,包括:

获取单元,用于获取在目标场景下待进行特征选择的目标文本;

第一处理单元,用于对所述目标文本进行分词处理,得到多个目标分词;

提取单元,用于通过第一神经网络模型的第一目标网络层,从所述多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词,其中,所述第一神经网络通过第一文本训练样本的多个第一分词和所述第一文本训练样本在所述目标场景下的第一分类结果,进行深度学习训练得到,所述目标权重用于指示每个所述目标分词对确定所述目标文本在所述目标场景下的第一目标分类结果的贡献程度;所述目标阈值为预先设定的在按照目标权重从多个目标分词中提取第一目标分词时的目标权重的临界值,或者为多个目标分词中前N个目标分词的最后一个分词的目标权重;

第二处理单元,用于通过所述第一神经网络模型的第二目标网络层,将一个或多个所述第一目标分词确定为所述目标文本在所述目标场景下的第一目标特征,并输出所述第一目标特征。

11.根据权利要求10所述的装置,其特征在于,所述装置还包括:

第三处理单元,用于在输出所述第一目标特征之后,通过所述第一神经网络模型的第三目标网络层,对所述第一目标特征进行处理,得到所述目标文本在所述目标场景下的所述第一目标分类结果。

12.根据权利要求11所述的装置,其特征在于,所述装置还包括:

更新单元,用于在对所述第一目标特征进行处理,得到所述目标文本在所述目标场景下的所述第一目标分类结果之后,将所述第一目标分类结果反向传播至所述第一神经网络模型中,并按照预先设定的目标映射关系对所述第一神经网络模型的参数进行更新。

13.根据权利要求10所述的装置,其特征在于,所述装置还包括:

训练单元,用于在输出所述第一目标特征之后,通过所述目标文本和所述第一目标特征对第二子神经网络模型进行训练,得到第二神经网络模型,其中,所述第二神经网络模型用于对在所述目标场景下输入的文本进行分类。

14.一种存储介质,其特征在于,所述存储介质中存储有计算机程序,其中,所述计算机程序被设置为运行时执行所述权利要求1至9任一项中所述的方法。

15.一种电子装置,包括存储器和处理器,其特征在于,所述存储器中存储有计算机程序,所述处理器被设置为通过所述计算机程序执行所述权利要求1至9任一项中所述的方法。

说明书 :

文本特征的处理方法、装置和存储介质

技术领域

[0001] 本发明涉及计算机领域,具体而言,涉及一种文本特征的处理、装置、存储介质和处理器。

背景技术

[0002] 目前,在文本中,并不是每个特征都有效,需要对文本进行特征选择。在进行文本的特征选择时,通常侧面地衡量特征的重要性,考虑的维度都是一样的,比如,通过词频、卡方选择、单词携带的信息量等衡量特征的重要性,进而进行特征选择。
[0003] 上述方法虽然可以实现文本的特征选择,但是难以对针对具体的场景对文本进行特征选择。在这样的情况下,文本中的特征即使词频再高、信息量再大,也可能与场景并无太大关联,即使是卡方选择方案,也会因为训练语料本身的偏差,导致选出和场景不相关的特征。
[0004] 针对上述的对文本的有效特征进行选择的效率低的问题,目前尚未提出有效的解决方案。

发明内容

[0005] 本发明实施例提供了一种文本特征的处理、装置、存储介质和处理器,以至少解决相关技术中对文本的特征进行选择的效率低的技术问题。
[0006] 根据本发明实施例的一个方面,提供了一种文本特征的处理方法。该方法包括:获取在目标场景下待进行特征选择的目标文本;对目标文本进行分词处理,得到多个目标分词;通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词,其中,第一神经网络通过第一文本训练样本的多个第一分词和第一文本训练样本在目标场景下的第一分类结果,进行深度学习训练得到,目标权重用于指示每个目标分词对确定目标文本在目标场景下的第一目标分类结果的贡献程度;通过第一神经网络模型的第二目标网络层,将一个或多个第一目标分词确定为目标文本在目标场景下的第一目标特征,并输出第一目标特征。
[0007] 根据本发明实施例的一个方面,提供了一种文本特征的处理装置。该装置还包括:获取单元,用于获取在目标场景下待进行特征选择的目标文本;第一处理单元,用于对目标文本进行分词处理,得到多个目标分词;提取单元,用于通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词,其中,第一神经网络通过第一文本训练样本的多个第一分词和第一文本训练样本在目标场景下的第一分类结果,进行深度学习训练得到,目标权重用于指示每个目标分词对确定目标文本在目标场景下的第一目标分类结果的贡献程度;第二处理单元,用于通过第一神经网络模型的第二目标网络层,将一个或多个第一目标分词确定为目标文本在目标场景下的第一目标特征,并输出第一目标特征。
[0008] 根据本发明实施例的另一方面,还提供了一种存储介质。该存储介质中存储有计算机程序,其中,计算机程序被设置为运行时执行本发明实施例的文本特征的处理方法。
[0009] 根据本发明实施例的另一方面,还提供了一种电子装置。该电子装置包括存储器和处理器,存储器中存储有计算机程序,处理器被设置为通过计算机程序执行本发明实施例的文本特征的处理方法。
[0010] 在本发明实施例中,针对目标场景,对文本训练样本进行深度学习的训练,得到第一神经网络模型,通过该第一神经网络模型提取目标文本针对该目标场景的有效的目标特征,达到了对目标文本进行特征选择的目的,避免了从目标文本中提取出的特征与场景并无太大关联,从而提高了对文本的特征进行处理的效率,达到了提高对文本的有效特征进行选择的效率的技术效果,进而解决了相关技术中对文本的特征进行选择的效率低的技术问题。

附图说明

[0011] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0012] 图1是根据本发明实施例的文本特征的处理方法的硬件环境的示意图;
[0013] 图2是根据本发明实施例的一种文本特征的处理方法的流程图;
[0014] 图3是根据本发明实施例的一种将分词训练为词向量的方法的流程图;
[0015] 图4是根据本发明实施例的一种深度学习模型的示意图;
[0016] 图5是根据本发明实施例的一种通过深度学习工具实现网络的搭建和模型的训练的方法的流程图;
[0017] 图6是根据本发明实施例的一种对文本进行各种维度的分类的示意图;
[0018] 图7是根据本发明实施例的一种文本特征的处理装置的示意图;以及
[0019] 图8是根据本发明实施例的一种电子装置的结构框图。

具体实施方式

[0020] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
[0021] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
[0022] 根据本发明实施例的一个方面,提供了一种文本特征的处理方法的实施例。
[0023] 可选地,在本实施例中,上述文本特征的处理方法可以应用于如图1 所示的由服务器102和终端104所构成的硬件环境中。图1是根据本发明实施例的文本特征的处理方法的硬件环境的示意图。如图1所示,服务器 102通过网络与终端104进行连接,上述网络包括但不限于:广域网、城域网或局域网,终端104并不限定于PC、手机、平板电脑等。本发明实施例的文本特征的处理方法可以由服务器102来执行,也可以由终端104 来执行,还可以是由服务器102和终端104共同执行。其中,终端104执行本发明实施例的文本特征的处理方法也可以是由安装在其上的客户端来执行。
[0024] 图2是根据本发明实施例的一种文本特征的处理方法的流程图。如图 2所示,该方法可以包括以下步骤:
[0025] 步骤S202,获取在目标场景下待进行特征选择的目标文本。
[0026] 在步骤S202提供的技术方案中,目标场景可以为用于对目标文本进行分类的维度,比如,为情感分类场景、主题分类场景、安全分类场景等,还可以为广泛支撑新闻推荐业务、信息安全业务等场景,对应具体的分类任务。该实施例的特征可以为构成文本的单词,比如,文本为“我喜欢 XXX”,则“我”、“喜欢”、“xxx”这三个词都可以作为文本“我喜欢XXX”的特征。该实施例的目标文本为待进行特征选择(feature selection)的文本,也即,将从目标文本中选择出有效的特征,比如,目标文本为“我讨厌XXX”,将从“我讨厌XXX”中选择出针对目标场景而言的有效的特征,以对目标文本进行分类或者训练其它的简单模型。
[0027] 步骤S204,对目标文本进行分词处理,得到多个目标分词。
[0028] 在步骤S204提供的技术方案中,在获取在目标场景下待进行特征选择的目标文本之后,对目标文本进行分词处理,得到多个目标分词,可以通过开源分词工具对目标文本进行分词处理,比如,通过结巴(jieba)分词工具对目标文本进行分词处理,从而得到多个目标分词,每个目标分词都可以作为目标文本的一个特征。
[0029] 在该实施例中,在对目标文本进行分词处理,得到多个目标分词之后,并不是每个目标分词对于目标文本的分类或者是多其它模型的训练都是有效的特征,如果对多个目标分词不加选择,或者从多个目标分词中选择了无效的特征,则在用于对其它模型进行训练时,噪音会很大,很难通过其训练出一个高准确的模型,如果对多个目标分词进行选择,但漏掉了其中有效的特征,也就无法对目标文本在目标场景下进行分类了,比如,目标文本为“我喜欢xxx”,如果选择出了“我”、“xxx”,而漏掉了“喜欢”,而“我”、“xxx”对于情感分类而言都是无关紧要的特征,“喜欢”是一个对于情感分类重要的特征,进而就无法对“我喜欢xxx”这样的句子进行情感分类。
[0030] 步骤S206,通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词。
[0031] 在步骤S206提供的技术方案中,目标阈值可以为预先设定的在按照目标权重从多个目标分词中提取第一目标分词时的目标权重的临界值,也可以为多个目标分词中前N个目标分词的最后一个分词的目标权重,其中,多个目标分词可以按照目标权重从大到小进行排列,取前N个目标分词作为多个第一目标分词。该实施例的第一神经网络通过预先收集的第一文本训练样本的多个第一分词和第一文本训练样本在目标场景下的第一分类结果,进行深度学习训练得到,可以用于对输入的文本在目标场景下进行分类,也即,该第一神经网络模型可以为分类模型,可以采用模型训练工具(TensorFlow)进行训练得到。其中,目标权重用于指示每个目标分词对确定目标文本在目标场景下的第一目标分类结果的贡献程度。
[0032] 在该实施例中,在对目标文本进行分词处理,得到多个目标分词之后,通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词。该实施例的第一神经网络模型通过深度学习进行训练得到,其中,深度学习为机器学习的一个分支,是一种使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法,机器学习是人工智能的一个分支,是一类从数据中自动分析获得规律,并利用规律对未知数据进行预测的算法,该机器学习还可以包括贝叶斯(bayes)、支持向量机(SVM)、树模型等传统模型。
[0033] 在目标场景已经确定的情况下,也即,在对文本进行分类的任务目标已经确定的情况下,预先收集大量的第一文本训练样本,该第一文本训练样本也即用于进行模型训练的语料,可以为给定的句子。获取第一文本训练样本在目标场景下的第一分类结果,该第一分类结果可以是通过人工对第一文本训练样本进行标注得到,可以通过编辑人员对第一文本训练样本进行标注,对句子进行情感标注,其中,正面的情感标注为“+1”,负面的情感标注为“-1”,中立的情感标注为“0”,比如,“喜欢xxx”标注为“+1”,“讨厌xxx”标注为负,“xxx参加了会议”标注为“0”。
[0034] 该实施例在获取第一文本训练样本之后,可以对第一文本训练样本进行分词处理,多个第一分词,每个第一分词都可以作为第一文本训练样本的一个特征。
[0035] 在得到第一文本训练样本的多个第一分词之后,可以将多个第一分词转化为词向量,通过每个第一分词的词向量和第一分类结果进行深度学习训练,构建包括注意力(Attention)模型的第一神经网络模型,也即,深度学习模型。其中,当深度学习模型对图像或语言进行识别时,Attention 模型可以每次集中于部分特征上,使得识别的结果更加准确,在衡量特征的重要性时,Attention模型在每次识别时先计算每个特征的权值,然后对特征进行加权求和,其中,特征的权值越大,则该特征对当前识别结果的贡献就越大。
[0036] 在训练得到第一神经网络模型的过程中,可以对每个阶段训练得到的神经网络模型的性能进行检验,当训练得到的神经网络模型的性能达到预期后,停止训练,其中,达到预期指训练得到的神经网络模型在对测试文本进行分类的准确率较高,比如,准确率达到90%以上,且不再有显著增长,也即,训练得到的神经网络模型已经稳定,比如,训练100轮,训练得到的神经网络模型对测试文本进行分类的准确率仅仅从90%上升到 90.01%,则确定训练得到的神经网络模型已经稳定,将最后训练得到的神经网络模型确定为最终的第一神经网络模型。
[0037] 该实施例的第一神经网络模型为了对应的目标场景而构建,是直接对与目标场景对应的分类任务进行优化的,可以适应各种不同的任务。在训练得到第一神经网络模型之后,通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词,其中,目标权重可以为第一目标分词的重要度得分,一个或多个第一目标分词为第一神经网络模型对输入的目标文本进行处理的中间结果,并且对确定目标文本在目标场景下的第一目标分类结果的贡献程度比较大,比如,目标文本为“喜欢xxx”,在情感分类场景下,第一目标分词为“喜欢”,再比如,目标文本为“讨厌xxx”,在情感分类场景下,第一目标分词为“讨厌”。
[0038] 该实施例的第一目标网络层可以为第一神经网络模型的双向长短期记忆网络(Long Short-Term Memory,简称为LSTM)层、Attention层和归一化函数(Softmax)层。其中,多个目标分词的词向量输入至LSTM 层进行处理,双向LSTM层对多个目标分词的词向量进行处理,可以避免普通模型只能识别紧邻词而造成信息丢失或错误,还可以避免由于语句先后顺序造成模型无法正确识别的问题;Attention层用于分别对LSTM处理后的多个目标分词的词向量进行重要度打分,得到每个目标分词的目标权重,Softmax层可以用于对多个目标分词的目标权重进行归一化处理,归一化处理后的目标权重中选择大于目标阈值的目标权重,将选择出的目标权重对应的目标分词确定为第一目标分词。
[0039] 在该实施例中,上述LSTM还可以是其它的神经网络都可以,只要在输出层之前加上Attention层,都可以,比如,单向Lstm+Attention,卷积神经网络(CNN)+Attention等。
[0040] 步骤S208,通过第一神经网络模型的第二目标网络层,将一个或多个第一目标分词确定为目标文本在目标场景下的第一目标特征,并输出第一目标特征。
[0041] 在步骤S208提供的技术方案中,在通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词之后,通过第一神经网络模型的第二目标网络层,将一个或多个第一目标分词确定为目标文本在目标场景下的第一目标特征,并输出第一目标特征,可以用于指导传统模型(比如,贝叶斯(bayes)、支持向量机(SVM)等)做特征选择,帮助传统模型去除特征噪音,从而使传统模型的效果达到最好,或者至少比现有的已调优的效果更好。
[0042] 在该实施例中,特征选择可以是为了构建模型而选择相关特征(即属性、指标)子集的过程。在自然语言处理(Natural Language Processing,简称为NLP)的文本分类领域,特征选择方法有词频(Term Frequency,简称为TF)/逆文档频率指数(inverse document frequency,简称为IDF)、卡方检验、信息增益(信息熵)等,但这些方法维度比较单一,而对情感分类、主题分类(体育/时政/娱乐这样的主题分类,在新闻客户端中比较多见)、安全分类(色情识别、违法识别)这样多样的分类任务,同一个维度的选择显然不能满足精细化的需求。而该实施例训练一个第一神经网络模型,该第一神经网络模型为深度网络的模型,就是为了对应的目标场景的分类任务而构建,然后取了中间的结果(一个或多个第一目标分词)作为目标特征,可以很复杂,将各种维度都可以编码进来,并且基于神经网络可以天然融合,从而更加适应各种不同的任务。
[0043] 通过上述步骤S202至步骤S208,针对目标场景,对文本训练样本进行深度学习的训练,得到第一神经网络模型,通过该第一神经网络模型提取目标文本针对该目标场景的有效的目标特征,达到了对目标文本进行特征选择的目的,避免了从目标文本中提取出的特征与场景并无太大关联,从而提高了对文本的特征进行处理的效率,达到了提高对文本的有效特征进行选择的效率的技术效果,进而解决了相关技术中对文本的特征进行选择的效率低的技术问题。
[0044] 作为一种可选的实施方式,在步骤S208,输出第一目标特征之后,通过第一神经网络模型的第三目标网络层,对第一目标特征进行处理,得到目标文本在目标场景下的第一目标分类结果。
[0045] 在该实施例中,第一神经网络模型用于对输入的文本以目标场景作为分类维度进行分类。在输出第一目标特征之后,可以通过第一神经网络模型的第三目标网络层对第一目标特征进行处理,比如,该第三网络层可以为全连接层,用于对第一目标特征进行分类处理,从而得到目标文本在目标场景下的第一目标分类结果,并输出该第一目标分类结果。
[0046] 在该实施例中,越重要的目标特征,目标权重就越高,越能影响目标文本的最终的第一目标分类结果。比如,目标场景为情感分类场景,第一目标分类结果可以为情感属性,当目标文本为“我喜欢xxx”时,目标分词“喜欢”的目标权重可以为0.7,这个特征就能决定一句话的情感分类结果,而目标“我”、“xxx”对情感分类结果基本没有影响,通过第一神经网络模型的第三目标网络层对“我喜欢xxx”的第一目标特征词“喜欢”进行处理,得到目标文本“喜欢xxx”的分类结果为正面属性。
[0047] 作为一种可选的实施方式,在对第一目标特征进行处理,得到目标文本在目标场景下的第一目标分类结果之后,该方法还包括:将第一目标分类结果反向传播至第一神经网络模型中,并按照预先设定的目标映射关系对第一神经网络模型的参数进行更新。
[0048] 在该实施例中,由于第一神经网络模型为一个针对目标场景的分类任务进行定制的深度神经网络,基于深度神经网络天然的反向传导机制,输出结果会影响特征的权重。在对第一目标特征进行处理,得到目标文本在目标场景下的第一目标分类结果之后,将第一目标分类结果反向传播至第一神经网络模型中,并按照预先设定的目标映射关系对第一神经网络模型的参数进行更新,更新后的第一神经网络模型也即优化的第一神经网络模型,可以对输入的文本进行处理,更好地提取输入的文本的目标特征,从而实现了反向优化特征的目的。
[0049] 可选地,在按照预先设定的目标映射关系对第一神经网络模型的参数进行更新时,可以按照反向传播算法对第一神经网络模型的参数进行更新,可以获取第一分类结果与目标文本的真实的分类结果之间的误差,将输入的文本和误差相乘,从而获得权重的梯度,将这个梯度乘上目标比例并取反后加到第一神经网络模型的当前参数上,进而实现对第一神经网络模型的参数进行更新的目的,比如,加在卷积核的权重上。其中,目标比例将会影响到训练过程的速度和效果,为训练因子,梯度的方向指明了误差扩大的方向,因此在更新权重的时候需要对其取反,从而减小权重所引起的误差。
[0050] 在传统模型中,特征选择模型和分类模型是割裂的,通常是单独进行优化的,分类模型的分类结果是无法反向传导至特征选择模块,从而不能根据文本的分类结果反向优化特征,比如,不能淘汰无用的特征,召回有用的特征。而该实施例由于存在一个定制的第一神经网络模型,基于该第一神经网络模型天然的反向传导机制,分类结果会影响特征的权重,从而影响特征的选择,达到了反向优化特征的目的,并且提高了对文本的特征进行选择的效率。
[0051] 作为一种可选的实施方式,在步骤S208,输出第一目标特征之后,该方法还包括:通过目标文本和第一目标特征对第二子神经网络模型进行训练,得到第二神经网络模型,其中,第二神经网络模型用于对在目标场景下输入的文本进行分类。
[0052] 在该实施例中,可以为了构建简单的第二神经网络模型而构建第一目标特征。在目标场景下,由于性能(比如,移动端运行,或者处理量特别大,服务器也难以处理)、延时或者其它因素,不能跑深度模型时,只能跑简单模型,该实施例可以选取第一目标特征供简单模型的训练使用,从而在不得不用简单模型的场景下,可以利用第一神经网络模型对输入的目标文本进行处理得到的第一目标特征,对简单模型进行训练。可选地,在输出第一目标特征之后,还可以通过目标文本和第一目标特征对第二子神经网络模型进行训练,得到第二神经网络模型,也即,将目标文本和第一目标特征作为第二神经网络模型的训练数据,该第二子神经网络模型可以为初始建立的子训练模型,第二神经网络模型同样可以用于对输入的文本进行分类。
[0053] 可选地,在该实施例中,第一神经网络模型对输入的目标文本进行处理的中间结果为第一目标特征,在第一神经网络模型最终输出的第一目标分类结果与真实的分类结果经验证为一致的情况下,即确定该第一目标特征确实为目标文本的有效特征,则将该目标文本和第一目标特征作为训练数据,对第二子神经网络模型进行训练,得到第二神经网络模型。其中,第一目标特征的优劣直接影像第二神经网络模型的效果的优劣。
[0054] 作为一种可选的实施方式,在通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词之前,该方法还包括:对第一文本训练样本进行分词处理,得到多个第一分词;将每个第一分词转化为一个词向量,得到多个词向量;通过多个词向量和第一分类结果,对第一子神经网络模型进行深度学习训练,得到第一神经网络模型。
[0055] 在该实施例中,在通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词之前,需要训练第一神经网络模型,而在训练第一神经网络模型的过程中,需要对第一文本训练样本进行分词处理,可以使用开源分词工具对第一文本训练样本进行分词处理,比如,通过结巴(jieba)分词工具对第一文本训练样本进行分词处理,从而得到多个第一分词,比如,将“喜欢xxx”分词处理为“喜欢”、“xxx”,将“讨厌xxx”分词处理为“讨厌”、“xxx”,将“xxx参加了会议”分词处理为“xxx”、“参加”、“了”、“会议”。在得到多个第一分词之后,可以分别对多个第一分词进行训练,得到多个分词向量,比如,词向量模型(word2vec)对多个第一分词进行处理,得到多个分词向量,进而通过多个词向量和第一分类结果对第一子神经网络模型进行深度学习训练,得到第一神经网络模型,其中,第一子神经网络模型为初始建立的用于进行深度学习的神经网络模型。
[0056] 作为一种可选的实施方式,通过多个词向量的第一权重和第一分类结果,对第一子神经网络模型进行处理,得到第一神经网络模型包括:获取每个词向量的第一权重,其中,第一权重用于指示与每个词向量对应的第一分词对确定第一分类结果的贡献程度;通过多个词向量的第一权重和第一分类结果,对第一子神经网络模型进行处理,得到第一神经网络模型。
[0057] 在该实施例中,在通过多个词向量的第一权重和第一分类结果,对第一子神经网络模型进行处理,得到第一神经网络模型时,可以通过 Attention模型获取每个词向量的第一权重,也即,通过Attention模型对每个词向量进行重要度打分,越重要的词语,得分越高,越能影响最终的第一分类结果。其中,Attention模型可以每次集中于部分特征上,从而使得识别更加准确,Attention模型在每次识别时,可以先计算每个特征的权重(权值),然后对特征进行加权求和,其中,特征的权重越大,该特征对当前识别的贡献就比较大。该实施例的第一权重则用于指示与每个词向量对应的第一分词对确定第一分类结果的贡献程度。
[0058] 在获取每个词向量的第一权重之后,通过多个词向量的第一权重和第一分类结果,对第一子神经网络模型进行处理,得到第一神经网络模型。
[0059] 在该实施例中,传统模型通过词频、信息熵等粗略估计特征的重要度,但是每个特征最终起了多大作用无法衡量,甚至会有人眼可见的不该放进来的特征,而该实施例基于Attention机制,可以准确地得出第一神经网络模型中每个特征对最终的分类结果的贡献程度。
[0060] 作为一种可选的实施方式,在获取每个词向量的第一权重之后,该方法还包括:获取对每个词向量的第一权重进行归一化处理后的第二权重,得到多个第二权重;通过多个词向量的第一权重和第一分类结果,对第一子神经网络模型进行处理,得到第一神经网络模型包括:通过多个第二权重中的大于等于目标阈值的第二权重和第一分类结果,对第一子神经网络模型进行处理,得到第一神经网络模型。
[0061] 在该实施例中,在获取每个词向量的第一权重之后,可以对每个词向量的第一权重进行归一化处理,得到每个词向量的第二权重,可以通过第二神经网络模型的Softmax层对每个词向量的第一权重进行归一化处理,使每个词向量的第二权重的范围都在(0,1)之间,并且所有元素的和为 1,进而从多个第二权重中选择出大于等于目标阈值的第二权重,通过该大于等于目标阈值的第二权重和第一分类结果,对第一子神经网络模型进行处理,进而得到第一神经网络模型。
[0062] 作为一种可选的实施方式,在通过多个词向量和第一分类结果,对第一子神经网络模型进行处理,得到第一神经网络模型之后,该方法还包括:通过第一神经网络模型的第一目标网络层,从第一文本测试样本中的多个第二分词中提取出第二权重大于等于目标阈值的一个或多个第二目标分词,其中,第二权重用于指示每个第二分词对确定第一文本测试样本在目标场景下的第二分类结果的贡献程度;通过第一神经网络模型的第二目标网络层,将一个或多个第二分词确定为第一文本测试样本在目标场景下的第二目标特征,并输出第二目标特征;通过第一神经网络模型的第三目标网络层,对第二目标特征进行处理,得到第一文本测试样本在目标场景下的第二分类结果;在第二分类结果和第一文本测试样本的标注分类结果一致的情况下,通过第一文本测试样本和第二目标特征对第二子神经网络模型进行训练,得到第二神经网络模型,其中,第二神经网络模型用于对输入的文本进行分类。
[0063] 在该实施例中,在训练得到第一神经网络模型之后,对第一神经网络模型进行测试,可以通过预先采集到的第一文本测试样本对第一神经网络模型进行测试,该第一文本测试样本预先标注好在目标场景下的分类结果。该实施例先对第一文本测试样本进行分词处理,得到多个第二分词,每个第二分词都可以作为第一文本测试样本的一个特征。通过已经训练好的第一神经网络模型的第一目标网络层,从第一文本测试样本中的多个第二分词中提取出第二权重大于等于目标阈值的一个或多个第二目标分词,其中,第二权重可以为第二分词的重要度得分,一个或多个第二分词为第一神经网络模型对输入的第一文本测试样本进行处理的中间结果,并且对确定第一文本测试样本在目标场景下的第二分类结果的贡献程度比较大。通过第一神经网络模型的第二目标网络层,将一个或多个第二分词确定为第一文本测试样本在目标场景下的第二目标特征,并输出第二目标特征。
[0064] 该实施例在得到第二目标特征之后,通过第一神经网络模型的第三目标网络层,对第二目标特征进行处理,比如,通过第一神经网络模型的全连接层对第二目标特征进行分类处理,从而得到第一文本测试样本在目标场景下的第二分类结果,并输出该第二分类结果。
[0065] 在得到第二分类结果之后,判断第二分类结果和预先对第一文本测试样本进行标注的标注分类结果是否一致,如果第二分类结果和标注分类结果一致的情况下,说明第一神经网络模型对第一文本测试样本分类准确,则第二目标特征为第一文本测试样本的有效特征,可以通过第一文本测试样本和第二目标特征对第二子神经网络模型进行训练,得到第二神经网络模型,该第二神经网络模型可以用于对输入的文本进行分类。
[0066] 在该实施例中,在第一神经网络模型的效果达到预期后,停止训练。其中,达到预期是指第一神经网络模型分类的准确率较高,比如,达到90%以上,并且不再有显著增长,也即,第一神经网络模型已经稳定,比如,对第一神经网络模型训练100轮,准确率仅仅从90%上升到了90.01%,则训练的模型的效果已经达到预期,可以停止对第一神经网络模型的训练。
[0067] 作为一种可选的实施方式,目标场景包括以下至少之一:按照情感属性进行分类的场景;按照主题类型进行分类的场景;按照安全等级进行分类的场景;按照质量等级进行分类的场景。
[0068] 在该实施例中,目标场景可以为按照情感属性进行分类的场景,也即,为情感分类场景,在该场景下,可以确定目标文本的情感属性。该实施例的目标场景还可以为按照主题类型进行分类的场景,也即,为主题分类场景,比如,体育、时政、娱乐这样的主题分类,可以用于新闻客户端中,广泛支撑新闻推荐业务;该实施例的目标场景还可以为按照安全等级进行分类的场景,也即,安全分类场景,比如,色情识别、违法识别等,应用于信息安全业务;该实施例的目标场景还可以为按照质量等级进行分类的场景,比如,低质分类,在今日头条这样的资讯应用(APP)中,会定义一些低质量的类别,包括低俗的公文类的通知、标题党等人们不感兴趣或者不适合推广的类别。
[0069] 需要说明的是,该实施例的上述目标场景仅为本发明实施例的优选实施方式,并不代表本发明实施例的目标场景仅为按照情感属性进行分类的场景、按照主题类型进行分类的场景、按照安全等级进行分类的场景、按照质量等级进行分类的场景,任何可以作为维度以提取文本的有效特征的场景都在该实施例的范围之内,此处不再一一举例说明。
[0070] 该实施例最大程度地利用了深度学习的成果,第一神经网络模型本身就考虑了单词的位置、上下文等信息,最终输出的结果天然就利用了模型更多的信息;当训练出了更好的模型,就需要在这个模型上叠加Attention 模型,即可输出更好的特征选择结果;由于该实施例同深度学习完整地完成了整个第一神经网络模型的训练,所以其输出的权重更加契合分类任务的需要,比传统模型的特征选择通过各种假设间接计算特征的重要性的准确率高很多,比如,情感词的权重就比普通词就高出很多。
[0071] 另外,传统模型的特征选择只能简单的一些计算,最后所有的特征(一般是几十万以上的量级)进行卡阈值或是取TOP N,结果都非常粗糙;而该实施例可以精确地从每条分类正确的语料里(一般短文只包含几个特征,长文几百个特征)取特征,不论是卡阈值或是取TOP N,结果都非常准确。
[0072] 下面结合优选的实施例对本发明的技术方案进行说明。
[0073] 在NLP领域中,深度学习的各种模型层出不穷,应用效果也不断刷新纪录;但是在工业界应用时,深度学习则过于臃肿,无论是每秒查询率 (Query Per Second,简称为QPS)还是响应时间(Response Time,简称为RT),均比传统方法差几个数量级,导致很多对性能敏感的场景无法落地。
[0074] 相对地,传统方法在工业界应用广泛,性能良好。但是受限于模型本身的限制,模型效果很难提升,而且深度学习模型的发展几乎无法给传统模型带来有益的借鉴。
[0075] 因而,在使用机器学习进行特征选择时,机器学习中的深度学习,效果好,性能差,而机器学习中的传统模型,性能好,效果差,比如,传统模型TF/IDF、卡方检验、信息增益等,难以同时兼顾效果和性能,存在对特征进行选择的效率低的技术问题。
[0076] 而在该实施例中,利用深度学习的Attention模型的中间结果,来指导传统模型进行特征选择,可以使传统模型去除特征噪音,最大化传统模型,进而根据训练好的模型对各个数据源的文本做各种维度的分类,从而提高对特征进行选择的效率。
[0077] 在实现上述方案时,可以获取文本样本;确定该文本样本的属性(情感属性);获取文本样本的标注信息;对文本样本进行分词处理,并训练词向量;构建包含Attention模型的深度学习模型;采用深度学习工具训练模型。
[0078] 在构建一个包含Attention模型的深度学习模型时,第一网络层用于将文本样本转换为词向量,第二文本样本为双向LSTM网络;第三网络层为 Attention层,用于给目标文本中的所有词语进行分类打分;最后一个网络层为Softmax层,用于将得到的分类得分进行归一化处理,从中取得分最高的分类得分。
[0079] 在模型的效果达到预期后,停止训练,输出Attention层的每个分词和用于指示每个分词的贡献程度的权重;针对分类正确的语料,对Attention 层的每个分词的权重采取卡阈值的方式,将权重高于阈值的分词,作为最有效的情感分类特征,通过该情感分类特征对文本进行分类。其中,当模型输出的分类结果和预先标注的分类结果一致时,可以确定分类正确。
[0080] 在该实施例中,深度模型完成了整个模型的训练,其输出的权重更加契合分类任务的需要,比传统模型的特征选择通过各种假设间接计算特征重要性,准确率高很多。
[0081] 传统模型的特征选择只能进行简单的一些计算,最后将所有的特征按照卡阈值的方法进行选择或是取TOP N进行选择,特征选择的结果比较粗糙;而该实施例可以精确地从每条分类正确的语料里取特征,不论是卡阈值或是取TOP N,特征选择的结果都比较准确。
[0082] 下面对该实施例的传统模型进行介绍。
[0083] 在该实施例中,传统模型区别于深度学习模型的机器学习模型,可以为贝叶斯(bayes)、支持向量机(SVM)等,所采用的特征选择方法可以为TF/IDF,其中,词频(Term Frequency,简称为TF),逆文档频率指数(Inverse Document Frequency,简称为IDF)。文本的词的重要性会随着它在文件中出现的次数而成正比例增加,但同时会随着它在语料库中出现的频率而成反比例下降,最终综合两个参数取来TOP N的词作为文本的特征。
[0084] 传统模型的特征选择还可以是卡方检验,卡方检验用来描述两个事件的独立性或者描述实际观察值与期望值至之间的偏离程度,比如,某个词与某个类别之间的关系。其中,卡方检验值越大,则表明实际观察值与期望值之间偏离程度越大,也说明两个事件的相互独立性越弱,也即,某个词和某个类别之间的关联性很大。
[0085] 传统模型的特征选择还可以是信息增益,比如,针对一个特征t,计算在有t和没t的情况下,信息量各是多少,两者的差值就是这个特征给模型带来的信息量,也即,增益。带来的信息越多,则该特征越重要。
[0086] 在NLP领域,传统模型的特征选择方法都是侧面衡量单词的重要性,比如,通过词频、词和类别之间的关联性、单词携带的信息量等,但在实际使用时,仍然具有如下缺点:
[0087] 传统模型的各种方法维度单一,且难以融合,传统模型考虑的维度比较单一,比如,考虑词频、信息熵、卡方值等,维度不同也就导致不可比。
[0088] 传统模型不能综合考虑多种因素的融合,比如,位置、上下文等。
[0089] 传统模型大多不能根据应用场景做自适应优化,在选择特征时,考虑的维度是一样的(比如,词频、信息熵、卡方值),但是对情感分类、主题分类(体育/时政/娱乐这样的主题分类,在新闻客户端中比较多见)、安全分类(色情识别、违法识别)这样多样的分类任务时,同一个维度的选择显然不能满足精细化的需求。比如,在情感分类场景中,更关注情感相关的特征,其它特征即使词频再高、信息量再大,对情感也无太大关联;即使是卡方选择方案,也会因为训练语料本身的偏差,而导致选出和情感类别不相关的特征。
[0090] 传统模型不能直接衡量特征在模型中真实发挥了多大贡献,通过词频、信息熵等粗略估计特征的重要度,但是每个特征最终起了多大作用无法衡量,甚至会有人眼可见的不该放进来的特征。
[0091] 传统模型的特征选择和分类模型是割裂的,分类模型的结果无法传导给特征选择模块,比如,淘汰无用的特征,而召回有用的特征。
[0092] 下面接收特征在传统模型(如支持向量机/贝叶斯/树模型等)中的作用。
[0093] 特征可以理解为一个词,如“我喜欢XXX”,按照自然分词可以切分为“我”“喜欢”“xxx”三个词,每个词都是一个特征,但并不是每个特征都有效,如果特征不加选择,则模型噪音很大,很难训练出一个高准确的模型,所以引出“特征选择”模块,通过各种手段筛选特征,如果以情感分类为例,“我”“xxx”都是无关紧要的特征,“喜欢”则是一个重要特征,需要算法能选出这样的特征,如果选了没用的词,就加重了模型的噪音;如果漏过了重要的词,就会导致模型无法召回某些结果,比如漏过了“喜欢”,模型就无法对“我喜欢xxx”这样的句子做情感分类。
[0094] 下面以情感分类进行举例说明。
[0095] 在该实施例中,任务目标是基础,也即,业务需要一个怎样的模型。给定一个句子,判断其情感属性(正/负/中)。在该实施例中,情感分类比较主观,褒义词一般为正,比如,“喜欢/好吃/好看”为正,贬义词一般为负,比如,“讨厌/难吃/难看”为负,客观描述没有情感极性,为0。比如,“喜欢xxx”为正;“讨厌xxx”为负;“xxx参加了会议”为中性。
[0096] 准备标注语料,也即,对句子进行情感标注(正:+1;负:-1;中:0),比如,“喜欢xxx”+1,“讨厌xxx”-1,“xxx参加了会议”0,可以交由编辑人员去做。
[0097] 对语料做分词处理,可以通过分词工具对语料进行分词处理,比如,通过开源分词工具(结巴分词)对语料进行分词处理。比如,喜欢/xxx;讨厌/xxx;xxx/参加/了/会议。
[0098] 在对语料进行分词处理之后,将分词训练为词向量,该步骤可以与标注语料同时进行,彼此不影响。可选地,该实施例使用词向量工具  (word2vec)来训练词向量(embedding),以供后续神经网络使用,可以采用动态的、面向对象的脚本语言(python)的gensim包进行。
[0099] 图3是根据本发明实施例的一种将分词训练为词向量的方法的流程图。如图3所示,该方法包括以下步骤:
[0100] 步骤S301,输入对语料进行分词处理后的分词。
[0101] 该实施例输入对语料进行分词处理后的分词,比如,输入[“喜欢”,“xxx”],[“讨厌”,“xxx”],[“xxx”,“参加”,“了”,“会议”]。
[0102] 步骤S302,调用word2vec,对上述分词进行处理,得到每个分词对应的词向量。
[0103] 该实施例构建一个包含Attention模型的深度学习模型。图4是根据本发明实施例的一种深度学习模型的示意图。如图4所示,该实施例以双向LSTM+Attention模型为例,模型从底部为第一层(embedding),经过双向 LSTM网络、注意力(Attention)层、分类(Softmax)层进行处理,最终获得输出结果。
[0104] 第一层,用于将输入的分过词的文本转换为上述将分词训练为的词向量,比如,将S1…Si…St…Sj…ST为分词,将其输入至第一层进行训练,得到对应的分词向量。
[0105] 第二层,为双向LSTM网络,包括前向LSTM网络(Forward LSTM) 和后向LSTM网络(Backward LSTM),可以在循环神经网络(Recurrent Neural Network,简称为RNN)中,其中,前向LSTM网络可以用于处理分词向量fm1…fmi,后向LSTM网络可以用于处理分词向量bmj…bmT。该实施例的LSTM可以在处理较长间隔的文本,避免普通模型只能识别相邻词,而造成信息丢失或错误的问题;双向LSTM可以处理由于语句先后顺序,而造成模型无法正确识别的问题,比如,讨厌xxx,xxx真讨厌等。
[0106] 第三层为Attention层,用于确定文本的所有词语的权重,也即,进行重要度打分(α1、αi、αj、αT),越重要的词语,得分越高,越能影响最终的分类结果。
[0107] 最后一层为Softmax层,用于将分类得分归一化,取得分大于等于目标阈值的分词,或者排序靠前的N个(TOP N)分词作为文本的目标特征。
[0108] 该实施例可以采用深度学习工具(TensorFlow)来实现网络的搭建和模型的训练。
[0109] 图5是根据本发明实施例的一种通过深度学习工具实现网络的搭建和模型的训练的方法的流程图。如图5所示,该方法包括以下步骤:
[0110] 步骤S501,定义Attention网络层。
[0111] 在该实施例中,定义Attention网络层,在深度学习工具中可以通过如下方式实现:
[0112] Def Attention_3d_block(inputs):
[0113] a=permute((2,1))(inputs);
[0114] a=Dense(TIME_STEPS,activation=(‘Softmax’)(a);
[0115] a=probs=permute((2,1),name=‘Attention_vec’)(a);
[0116] output_Attention_mul=multiply([inouts,a_probs],name=‘Attention_mul’);
[0117] return output_Attention_mul
[0118] 步骤S502,通过输入层将输入的分过词的文本转换为词向量。
[0119] 该输入层用于将输入的分过词的文本转换为上述将分词训练为的词向量,在深度学习工具中可以通过如下方式实现:inputs=Input (shape=(TIME_STEPS,INPUT_DIM))。
[0120] 步骤S503,通过双向LSTM层对预先建立的子神经网络模型进行训练。
[0121] 该双向LSTM根据词向量对预先建立的子神经网络模型进行训练,在深度学习工具中可以通过lstm_out=Bidirectional(LSTM(lstm_units, return_sequences=true),name=‘bilstm’)(inputs)实现。
[0122] 步骤S504,通过Attention层给输入的文本的所有词语进行重要度打分。
[0123] Attention层用于给输入句子的所有词语的重要度打分,越重要的词语,得分越高,越能影响最终的分类结果。在深度学习工具中可以通过 Attention_mul=Attention_3d_block(lstm_out),Attention_flatten=Flatten() (Attention_mul)实现。
[0124] 步骤S505,通过Softmax输出结果。
[0125] 该实施例通过Softmax层将词语的分类得分归一化,取得分大于等于目标阈值的分词,或者排序靠前的N个(TOP N)分词作为文本的目标特征。在深度学习工具中可以通过output=Softmax(10,activation=‘sigmoid’) (Attention_flatten)
[0126] 在该实施例中,在进行模型训练时,可以通过model=Model (inputs=inputs,outputs=outputs)进行。
[0127] 在模型的效果达到预期后,停止训练。其中,达到预期是指模型分类的准确率较高,比如,达到90%以上,并且不再有显著增长,也即,模型已经稳定,比如,训练100轮,准确率仅仅从90%上升到90.01%,则训练的模型的效果已经达到预期,可以停止训练。
[0128] 在该实施例中,输出Attention层的每个分词以及其权重。
[0129] 表1句子的分词及其权重表
[0130] 句子1 喜欢 XXX    Attention权重 0.71429 0.28571    
句子2 讨厌 XXX    
Attention权重 0.85714 0.14286    
句子3 XXX 参加 了 会议
Attention权重 0.385714 0.2235 0.13547 0.255316
[0131] 如表1所示,由于是情感分类任务,因而属于情感类的词的权重特别高,比如,句子1的“喜欢”的Attention权重为0.71429,句子2的“讨厌”的Attention权重为0.85714,句子3的Attention权重为0.385714,这也是模型训练所希望的结果。
[0132] 在该实施例中,针对分类正确的语料,对Attention权重采取卡阈值的方式,选取最有效的情感分类特征,可以供简单模型训练使用其中,阈值可以为0.45,此处不做限定。其中,分类正确为模型分类结果和预先标注的结果一致。只有分类正确的结果,其
Attention权重才有参考的价值。
[0133] 该实施例通过上述方案,利用深度模型的技术,来优化传统模型的效果,可以利用深度学习来优化传统模型的特征选择模块,使得传统模型的效果更好,从而可以对各个数据源的文本做各种维度的分类。
[0134] 图6是根据本发明实施例的一种对文本进行各种维度的分类的示意图。如图6所示,可以通过上述方法提取文本的有效特征,对文本进行主题分类、低质分类、情感分类、安全分类等等,其中,主题分类可以广泛支撑新闻推荐业务,安全分类可以支撑信息安全业务等,此处不做限制,低质分类可以是在今日头条这样的资讯应用(APP)中,定义的一些低质量的类别,包括低俗的公文类的通知、标题党等人们不感兴趣或者不适合推广的类别。
[0135] 该实施例最大程度地利用了深度学习的成果,很多深度模型本身就考虑了单词的位置、上下文等信息,最终输出的结果天然就利用了模型更多的信息;当训练出了更好的模型,就需要在这个模型上叠加Attention模型,即可输出更好的特征选择结果;由于深度模型完整地完成了整个模型的训练,所以其输出的权重更加契合分类任务的需要,比传统模型的特征选择通过各种假设间接计算特征的重要性的准确率高很多,比如,情感词的权重就比普通词就高出很多。
[0136] 另外,传统模型的特征选择只能简单的一些计算,最后所有的特征(一般是几十万以上的量级)机械能卡阈值或是取TOP N,结果都非常粗糙;而该实施例可以精确地从每条分类正确的语料里(一般短文只包含几个特征,长文几百个特征)取特征,无论是卡阈值或是取TOP N,结果都非常准确。
[0137] 传统模型的方法考虑的维度比较单一,比如,词频、信息熵、卡方值等,不能综合考虑多种因素的融合,而该实施例则是设计一个完整的深度网络的模型,这个模型可以很复杂,各种维度都可以编码进来,基于神经网络可以天然融合。
[0138] 传统模型在选择特征时,考虑的维度是一样的,但是对情感分类、主题分类(体育/时政/娱乐这样的主题分类)、安全分类(色情识别、违法识别)这样多样的分类任务,同一个维度的选择显然不能满足精细化的需求;而该实施例的分类模型就是为了对应的任务而构建,是直接对分类任务进行优化的,然后取了中间的结果,要比传统模型更加适应各种不同的任务。
[0139] 传统模型通过词频、信息熵等粗略估计特征的重要度,但是每个特征最终起了多大作用是无法衡量,甚至有人眼可见的不该放进来的特征;而该实施例基于Attention机制,可以准确地得出神经网络中每个特征对最终分类结果的贡献程度。
[0140] 传统的特征选择和分类模型是割裂的,分类模型的结果无法传导给用于实现特征选择功能的模块;而该实施例由于存在一个定制的深度神经网络,基于神经网络天然的反向传导机制,模型的效果会影响特征的权重,从而影响特征的选择,实现了反向优化特征的目的。
[0141] 需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
[0142] 通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如 ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
[0143] 根据本发明实施例的另一方面,还提供了一种用于实施上述文本特征的处理方法的文本特征的处理装置。图7是根据本发明实施例的一种文本特征的处理装置的示意图。如图7所示,该文本特征的处理装置700可以包括:获取单元10、第一处理单元20、提取单元30和第二处理单元40。
[0144] 获取单元10,用于获取在目标场景下待进行特征选择的目标文本。
[0145] 第一处理单元20,用于对目标文本进行分词处理,得到多个目标分词。
[0146] 提取单元30,用于通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词,其中,第一神经网络通过第一文本训练样本的多个第一分词和第一文本训练样本在目标场景下的第一分类结果,进行深度学习训练得到,目标权重用于指示每个目标分词对确定目标文本在目标场景下的第一目标分类结果的贡献程度。
[0147] 第二处理单元40,用于通过第一神经网络模型的第二目标网络层,将一个或多个第一目标分词确定为目标文本在目标场景下的第一目标特征,并输出第一目标特征。
[0148] 可选地,该装置还包括:第三处理单元,用于在输出第一目标特征之后,通过第一神经网络模型的第三目标网络层,对第一目标特征进行处理,得到目标文本在目标场景下的第一目标分类结果。
[0149] 可选地,该装置还包括:更新单元,用于在对第一目标特征进行处理,得到目标文本在目标场景下的第一目标分类结果之后,将第一目标分类结果反向传播至第一神经网络模型中,并按照预先设定的目标映射关系对第一神经网络模型的参数进行更新。
[0150] 可选地,该装置还包括:训练单元,用于在输出第一目标特征之后,通过目标文本和第一目标特征对第二子神经网络模型进行训练,得到第二神经网络模型,其中,第二神经网络模型用于对在目标场景下输入的文本进行分类。
[0151] 需要说明的是,该实施例中的获取单元10可以用于执行本申请实施例中的步骤S202,该实施例中的第一处理单元20可以用于执行本申请实施例中的步骤S204,该实施例中的提取单元30可以用于执行本申请实施例中的步骤S206,该实施例中的第二处理单元40可以用于执行本申请实施例中的步骤S208。
[0152] 在该实施例中,针对目标场景,对文本训练样本进行深度学习的训练,得到第一神经网络模型,通过该第一神经网络模型提取目标文本针对该目标场景的有效的目标特征,达到了对目标文本进行特征选择的目的,避免了从目标文本中提取出的特征与场景并无太大关联,从而提高了对文本的特征进行处理的效率,达到了提高对文本的有效特征进行选择的效率的技术效果,进而解决了相关技术中对文本的特征进行选择的效率低的技术问题。
[0153] 此处需要说明的是,上述单元与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例所公开的内容。需要说明的是,上述单元作为装置的一部分可以运行在如图1所示的硬件环境中,可以通过软件实现,也可以通过硬件实现,其中,硬件环境包括网络环境。
[0154] 根据本发明实施例的又一方面,还提供了一种用于实施上述文本特征的处理方法的电子装置。
[0155] 图8是根据本发明实施例的一种电子装置的结构框图。如图8所示,该电子装置包括存储器802和处理器804,该存储器中存储有计算机程序,该处理器被设置为通过计算机程序执行上述任一项方法实施例中的步骤。
[0156] 可选地,在本实施例中,上述电子装置可以位于计算机网络的多个网络设备中的至少一个网络设备。
[0157] 可选地,在本实施例中,上述处理器804可以被设置为通过计算机程序执行以下步骤:
[0158] 获取在目标场景下待进行特征选择的目标文本;
[0159] 对目标文本进行分词处理,得到多个目标分词;
[0160] 通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词,其中,第一神经网络通过第一文本训练样本的多个第一分词和第一文本训练样本在目标场景下的第一分类结果,进行深度学习训练得到,目标权重用于指示每个目标分词对确定目标文本在目标场景下的第一目标分类结果的贡献程度;
[0161] 通过第一神经网络模型的第二目标网络层,将一个或多个第一目标分词确定为目标文本在目标场景下的第一目标特征,并输出第一目标特征。
[0162] 可选地,本领域普通技术人员可以理解,图8所示的结构仅为示意,电子装置也可以是智能手机(如Android手机、iOS手机等)、平板电脑、掌上电脑以及移动互联网设备(Mobile Internet Devices,MID)、PAD等终端设备。图8其并不对上述电子装置的结构造成限定。例如,电子装置还可包括比图8中所示更多或者更少的组件(如网络接口等),或者具有与图8所示不同的配置。
[0163] 其中,存储器802可用于存储软件程序以及模块,如本发明实施例中的文本特征的处理方法和装置对应的程序指令/模块,处理器804通过运行存储在存储器802内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的文本特征的处理方法。存储器802可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器802可进一步包括相对于处理器804远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。其中,存储器802具体可以但不限于用于存储待进行特征选择的目标文本、对目标文本进行分词处理得到的多个目标分词等信息。作为一种示例,如图8所示,上述存储器802中可以但不限于包括上述文本特征的处理装置700中的获取单元10、第一处理单元20、提取单元30和第二处理单元40。此外,还可以包括但不限于上述文本特征的处理装置中的其他模块单元,本示例中不再赘述。
[0164] 上述的传输装置806用于经由一个网络接收或者发送数据。上述的网络具体实例可包括有线网络及无线网络。在一个实例中,传输装置806包括一个网络适配器(Network Interface Controller,NIC),其可通过网线与其他网络设备与路由器相连从而可与互联网或局域网进行通讯。在一个实例中,传输装置806为射频(Radio Frequency,RF)模块,其用于通过无线方式与互联网进行通讯。
[0165] 此外,上述电子装置还包括:显示器808,用于显示上述第一目标分类结果;连接总线810,用于连接上述电子装置中的各个模块部件。
[0166] 根据本发明的实施例的又一方面,还提供了一种存储介质,该存储介质中存储有计算机程序,其中,该计算机程序被设置为运行时执行上述任一项方法实施例中的步骤。
[0167] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0168] S1,获取在目标场景下待进行特征选择的目标文本;
[0169] S2,对目标文本进行分词处理,得到多个目标分词;
[0170] S3,通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词,其中,第一神经网络通过第一文本训练样本的多个第一分词和第一文本训练样本在目标场景下的第一分类结果,进行深度学习训练得到,目标权重用于指示每个目标分词对确定目标文本在目标场景下的第一目标分类结果的贡献程度;
[0171] S4,通过第一神经网络模型的第二目标网络层,将一个或多个第一目标分词确定为目标文本在目标场景下的第一目标特征,并输出第一目标特征。
[0172] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0173] 在输出第一目标特征之后,通过第一神经网络模型的第三目标网络层,对第一目标特征进行处理,得到目标文本在目标场景下的第一目标分类结果。
[0174] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0175] 在对第一目标特征进行处理,得到目标文本在目标场景下的第一目标分类结果之后,将第一目标分类结果反向传播至第一神经网络模型中,并按照预先设定的目标映射关系对第一神经网络模型的参数进行更新。
[0176] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0177] 在输出第一目标特征之后,通过目标文本和第一目标特征对第二子神经网络模型进行训练,得到第二神经网络模型,其中,第二神经网络模型用于对在目标场景下输入的文本进行分类。
[0178] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0179] 在通过第一神经网络模型的第一目标网络层,从多个目标分词中提取出目标权重大于等于目标阈值的一个或多个第一目标分词之前,对第一文本训练样本进行分词处理,得到多个第一分词;
[0180] 将每个第一分词转化为一个词向量,得到多个词向量;
[0181] 通过多个词向量和第一分类结果,对第一子神经网络模型进行深度学习训练,得到第一神经网络模型。
[0182] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0183] S1,获取每个词向量的第一权重,其中,第一权重用于指示与每个词向量对应的第一分词对确定第一分类结果的贡献程度;
[0184] S2,通过多个词向量的第一权重和第一分类结果,对第一子神经网络模型进行处理,得到第一神经网络模型。
[0185] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0186] S1,在获取每个词向量的第一权重之后,获取对每个词向量的第一权重进行归一化处理后的第二权重,得到多个第二权重;
[0187] S2,通过多个第二权重中的大于等于目标阈值的第二权重和第一分类结果,对第一子神经网络模型进行处理,得到第一神经网络模型。
[0188] 可选地,在本实施例中,上述存储介质可以被设置为存储用于执行以下步骤的计算机程序:
[0189] 在通过多个词向量和第一分类结果,对第一子神经网络模型进行处理,得到第一神经网络模型之后,通过第一神经网络模型的第一目标网络层,从第一文本测试样本中的多个第二分词中提取出第二权重大于等于目标阈值的一个或多个第二目标分词,其中,第二权重用于指示每个第二分词对确定第一文本测试样本在目标场景下的第二分类结果的贡献程度;
[0190] 通过第一神经网络模型的第二目标网络层,将一个或多个第二分词确定为第一文本测试样本在目标场景下的第二目标特征,并输出第二目标特征;
[0191] 通过第一神经网络模型的第三目标网络层,对第二目标特征进行处理,得到第一文本测试样本在目标场景下的第二分类结果;
[0192] 在第二分类结果和第一文本测试样本的标注分类结果一致的情况下,通过第一文本测试样本和第二目标特征对第二子神经网络模型进行训练,得到第二神经网络模型,其中,第二神经网络模型用于对输入的文本进行分类。
[0193] 可选地,本实施例中的具体示例可以参考上述实施例中所描述的示例,本实施例在此不再赘述。
[0194] 可选地,在本实施例中,上述存储介质可以包括但不限于:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
[0195] 上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
[0196] 上述实施例中的集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在上述计算机可读取的存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在存储介质中,包括若干指令用以使得一台或多台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。
[0197] 在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
[0198] 在本申请所提供的几个实施例中,应该理解到,所揭露的客户端,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
[0199] 所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
[0200] 另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
[0201] 以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。