发明内容
发明人经过分析后发现,SVM等传统机器学习方法的文本分类方式对文本的语意信息表达较差,对于较长、或语意更为复杂的文本的理解有很大局限性。
基于词向量与LSTM等深度学习技术的文本分类能获得较好的效果,但当分类任务复杂时,所需的模型复杂度更高,较难训练,容易陷入局部最优解。
因此,相关技术的文本分类方式的准确性较差。
本发明实施例所要解决的一个技术问题是:如何提高文本分类的准确性。
根据本发明一些实施例的第一个方面,提供一种文本数据处理方法,包括:根据获取的文本,确定文本对应的词向量序列;将词向量序列输入到文本特征提取模型中,获得文本对应的文本特征;将文本特征输入到一个或多个预先训练的子目标预测模型中,获得每个子目标预测模型输出的子目标预测值;将由文本特征和子目标预测值构建的分类模型输入向量输入到预先训练的分类模型中,获得对文本的分类结果。
在一些实施例中,文本特征提取模型是基于注意力机制的循环神经网络模型。
在一些实施例中,文本数据处理方法还包括:获取第一训练数据,第一训练数据包括用于训练的文本,每个第一训练数据的标记值包括用于训练的文本的、每个子目标对应的预设关联属性的值;将第一训练数据对应的词向量序列输入到文本特征提取模型中,获得第一训练数据的训练文本特征;将第一训练数据的训练文本特征输入到一个或多个子目标分别对应的深度学习模型中,获得每个深度学习模型输出的、第一训练数据的子目标预测值;根据每个子目标预测模型输出的、第一训练数据的子目标预测值和第一训练数据的标记值的差距对文本特征提取模型和深度学习模型进行训练。
在一些实施例中,根据每个子目标预测模型输出的、第一训练数据的子目标预测值和第一训练数据的标记值的差距对文本特征提取模型和深度学习模型进行训练包括:根据第一训练数据的标记值以及第一训练数据的子目标预测值,确定每个子目标分别对应的深度学习模型的损失;将每个深度学习模型的损失的加权结果作为第一总损失;根据第一总损失,对深度学习模型的参数进行调整。
在一些实施例中,在子目标的取值为类别型的情况下,子目标对应的深度学习模型为Softmax回归模型;或者,在子目标为的取值为连续型的情况下,子目标对应的深度学习模型为线性回归模型;或者,在子目标为的取值为计数型的情况下,子目标对应的深度学习模型为泊松回归模型。
在一些实施例中,文本数据处理方法还包括:获取第二训练数据,第二训练数据包括用于训练的文本,每个第二训练数据的标记值包括用于训练的文本的类别;将第二训练数据对应的词向量序列输入到文本特征提取模型中,获得第二训练数据的训练文本特征;将第二训练数据的训练文本特征输入到一个或多个子目标分别对应的深度学习模型中,获得每个深度学习模型输出的、第二训练数据的子目标预测值;将由第二训练数据的训练文本特征和第二训练数据的子目标预测值构建的分类模型输入向量输入到神经网络模型中,获得对第二训练数据的分类结果;根据第二训练数据的标记值以及第二训练数据的分类结果,对文本特征提取模型、深度学习模型和神经网络模型进行训练。
在一些实施例中,根据第二训练数据的标记值以及第二训练数据的子目标预测值、第二训练数据的分类结果,对文本特征提取模型、深度学习模型和神经网络模型进行训练包括:根据第二训练数据的标记值与第二训练数据的分类结果的差距,确定分类损失;根据第二训练数据的分类结果,确定每一类的第二训练数据的预测值的类内差距、以及不同类的第二训练数据的预测值的类间差距;根据类内差距和类间差距确定鲁棒性损失,鲁棒性损失与类内差距成正相关关系、与类间差距成负相关关系;根据分类损失和鲁棒性损失之和,确定第二总损失;根据第二总损失,对文本特征提取模型、深度学习模型和神经网络模型的参数进行调整。
在一些实施例中,根据获取的文本,确定文本对应的词向量序列包括:根据预先训练的词向量计算模型Word2Vec,将获取的文本中的词语转换为词向量,以获得文本对应的词向量序列。
在一些实施例中,将获取的文本中的词语转换为词向量包括:对获取的文本进行预处理;在预处理后的文本中的词语数量大于预设值的情况下,删除文本中预设位置的词语,以使得未删除的词语数量等于预设值,并将未删除的词语转换为词向量;在预处理后的文本中的词语数量小于预设值的情况下,向文本中的预设位置填充词语,以使得填充后的文本中的词语数量等于预设值,并将填充后的文本中的词语转换为词向量。
在一些实施例中,文本数据处理方法还包括:根据获取的用户标签确定用户所对应的类别;将用户所对应的类别的文本推荐给用户。
在一些实施例中,文本为网络条目的评论文本;文本数据处理方法还包括:根据同一网络条目对应的多个评论文本的类别确定网络条目的类别,以便在类别对应的区域内显示相应的网络条目。
根据本发明一些实施例的第二个方面,提供一种文本数据处理装置,包括:词向量序列构建模块,被配置为根据获取的文本,确定文本对应的词向量序列;文本特征提取模块,被配置为将词向量序列输入到文本特征提取模型中,获得文本对应的文本特征;子目标预测模块,被配置为将文本特征输入到一个或多个预先训练的子目标预测模型中,获得每个子目标预测模型输出的子目标预测值;文本分类模块,被配置为将由文本特征和子目标预测值构建的分类模型输入向量输入到预先训练的分类模型中,获得对文本的分类结果。
根据本发明一些实施例的第三个方面,提供一种文本数据处理装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述任意一种文本数据处理方法。
根据本发明一些实施例的第四个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现前述任意一种文本数据处理方法。
上述发明中的一些实施例具有如下优点或有益效果:本发明的实施例可以采用子目标作为整个分类预测过程的中间结果,并根据该中间结果、结合文本的词向量进一步获得文本的分类结果。从而,提升了文本分类的准确性。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
同时,应当明白,为了便于描述,附图中所示出的各个部分的尺寸并不是按照实际的比例关系绘制的。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为授权说明书的一部分。
在这里示出和讨论的所有示例中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它示例可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
图1示出了根据本发明一些实施例的文本数据处理方法的流程示意图。如图1所示,该实施例的文本数据处理方法包括步骤S102~S108。
在步骤S102中,根据获取的文本,确定文本对应的词向量序列。
该文本例如可以是用户对商品、新闻、音乐、电影等对象的内容文本或者评论文本等等。可以通过读取数据库或者利用爬虫技术来获得文本。
在一些实施例中,根据预先训练的词向量计算模型Word2Vec,将获取的文本中的词语转换为词向量,以获得文本对应的词向量序列。Word2Vec是基于词语的上下文语义获得的模型,从而可以是的词向量包含语义信息。
在一些实施例中,采用以下方法确定词向量序列。首先,对获取的文本进行预处理,例如去除停用词、分词等等。然后,为了便于后续输入模型,将文本中的词语处理为预设数量个:在预处理后的文本中的词语数量大于预设值的情况下,删除文本中预设位置的词语(例如可以去除句首的词语),以使得未删除的词语数量等于预设值,并将未删除的词语转换为词向量;在预处理后的文本中的词语数量小于预设值的情况下,向文本中的预设位置填充词语(例如可以填充为预设的词语或者符号),以使得填充后的文本中的词语数量等于预设值,并将填充后的文本中的词语转换为词向量。
通过将文本转换为词向量序列,有助于令后续处理过程中使用的模型理解较长、或语义较为复杂的文本。
在步骤S104中,将词向量序列输入到文本特征提取模型中,获得文本对应的文本特征。
在一些实施例中,文本特征提取模型是基于注意力机制的循环神经网络模型,例如可以采用GRU模型作为基础的循环神经网络,并在计算的过程中使用注意力机制,从而更准确地提取文本特征。
在步骤S106中,将文本特征输入到一个或多个预先训练的子目标预测模型中,获得每个子目标预测模型输出的子目标预测值。
子目标与文本的关联属性相对应。例如,用户的评论文本具有浏览量、等级、回复数量、点赞数量等关联属性,每种关联属性可对应一个子目标。
在一些实施例中,子目标预测模型是深度学习模型。每一个子目标对应一个子目标预测模型。例如,子目标预测模型包括等级子目标预测模型、评论数子目标预测模型、点赞数量子目标预测模型等等。
在步骤S108中,将由文本特征和子目标预测值构建的分类模型输入向量输入到预先训练的分类模型中,获得对文本的分类结果。
分类模型输入向量例如可以为:[文本特征,子目标预测值1,子目标预测值2,子目标预测值3,……]。
在一些实施例中,分类模型为神经网络模型。
通过上述实施例的方法,可以采用子目标作为整个分类预测过程的中间结果,并根据该中间结果、结合文本的词向量进一步获得文本的分类结果。从而,提升了文本分类的准确性。
本发明获得的分类结果可以应用于多种场景,例如进行推荐、网络条目的自动分类显示等等。
在一些实施例中,根据获取的用户标签确定用户所对应的类别;将用户所对应的类别的文本推荐给用户。例如,响应于用户的终端发送推荐区域内容的网络请求,向终端返回推荐的文本对应的数据。从而,可以为用户推荐其感兴趣的文本,提高了推荐效果,从而降低了网络中无用数据的传输,节约了网络资源和终端设备资源。
在一些实施例中,文本为网络条目的评论文本。根据同一网络条目对应的多个评论文本的类别确定所述网络条目的类别,以便在类别对应的区域内显示相应的网络条目。
以网络新闻为例。网络新闻的内容一般呈现事实,而用户的评论可以体现大部分人对该新闻的关注点、或者情感倾向。如果只基于某新电影上映的网络新闻的内容进行分类,该网络新闻可能被简单地划分到娱乐新闻中。通过对该网络新闻的评论进行分类、确定每个评论是属于正面的类别、还是属于负面的类别,可以进一步确定观众对该电影的评价。如果正面评价较多,可以进一步将该新闻自动划分到“优秀影片新闻”、“优秀口碑榜”等类别,以便在用户终端发起显示这些类别对应的网络条目的请求时,向终端返回相应网络条目所对应的数据。从而,可以自动化地实现网络条目分类显示的功能,以帮助用户快速地找到想要浏览的条目,提高了信息获取的效率。
在一些实施例中,可以采用预先标记了子目标的值以及类别的文本对预测过程中使用到的模型进行训练。由于子目标预测结果作为中间预测结果,从而可以减少训练过程中梯度反传的深度,降低了模型的训练难度,提升了训练效率。
下面参考图2描述本发明子目标预测模型的实施例。
图2示出了根据本发明一些实施例的子目标预测模型训练方法的流程示意图。如图2所示,该实施例的子目标预测模型训练方法包括步骤S202~S208。
在步骤S202中,获取第一训练数据,第一训练数据包括用于训练的文本,每个第一训练数据的标记值包括用于训练的文本的、每个子目标对应的预设关联属性的值。
在步骤S204中,将第一训练数据对应的词向量序列输入到文本特征提取模型中,获得第一训练数据的训练文本特征。
在步骤S206中,将第一训练数据的训练文本特征输入到一个或多个子目标分别对应的深度学习模型中,获得每个深度学习模型输出的、第一训练数据的子目标预测值。
在一些实施例中,在子目标的取值为类别型的情况下,子目标对应的深度学习模型为Softmax回归模型。例如,类别型的取值为男性、女性,或者好评、中评、差评等等。类别型的取值可以通过有限个离散值来体现,例如0代表男性、1代表女性等等。
在一些实施例中,在子目标为的取值为连续型的情况下,子目标对应的深度学习模型为线性回归模型。
在一些实施例中,在子目标为的取值为计数型的情况下,子目标对应的深度学习模型为泊松回归模型。例如,回复数可以是1条、2条……等呈计数式增长,这类子目标则为记数型。
在步骤S208中,根据每个子目标预测模型输出的、第一训练数据的子目标预测值和第一训练数据的标记值的差距对文本特征提取模型和深度学习模型进行训练。
在一些实施例中,根据第一训练数据的标记值以及第一训练数据的子目标预测值,确定每个子目标分别对应的深度学习模型的损失;将每个深度学习模型的损失的加权结果作为第一总损失;根据第一总损失,对深度学习模型的参数进行调整。从而,当子目标有多个时,可以对多个子目标预测模型的一起进行迭代训练。
通过上述训练过程,使得模型能够输出具有实际意义的中间结果,提升了模型的可解释性,以便利用可解释的中间结果参与训练过程,降低了训练的复杂度、提高了训练效率。进而,可以使得文本特征提取模型和深度学习模型的预测结果更准确。
在一些实施例中,在前述训练过程的基础上,还可以进行进一步的微调。下面参考图3描述模型微调方法的实施例。
图3示出了根据本发明一些实施例的微调方法的流程示意图。如图3所示,该实施例的微调方法包括步骤S302~S310。
在步骤S302中,获取第二训练数据,第二训练数据包括用于训练的文本,每个第二训练数据的标记值包括用于训练的文本的类别。
在步骤S304中,将第二训练数据对应的词向量序列输入到文本特征提取模型中,获得第二训练数据的训练文本特征。
在步骤S306中,将第二训练数据的训练文本特征输入到一个或多个子目标分别对应的深度学习模型中,获得每个深度学习模型输出的、第二训练数据的子目标预测值。
在一些实施例中,该深度学习模型为图2实施例中进行训练后的深度学习模型。
在步骤S308中,将由第二训练数据的训练文本特征和第二训练数据的子目标预测值构建的分类模型输入向量输入到神经网络模型中,获得对第二训练数据的分类结果。
在步骤S310中,根据第二训练数据的标记值以及第二训练数据的分类结果,对文本特征提取模型、深度学习模型和神经网络模型进行训练。
在一些实施例中,在采用第二训练数据进行训练时,可以采用分类损失和鲁棒性损失共同作为损失函数值以进行微调过程。
在一些实施例中,根据第二训练数据的标记值与第二训练数据的分类结果的差距,确定分类损失;根据第二训练数据的分类结果,确定每一类的第二训练数据的预测值的类内差距、以及不同类的第二训练数据的预测值的类间差距;根据类内差距和类间差距确定鲁棒性损失,其中,鲁棒性损失与类内差距成正相关关系、与类间差距成负相关关系;根据分类损失和鲁棒性损失之和,确定第二总损失;根据第二总损失,对文本特征提取模型、深度学习模型和神经网络模型的参数进行调整。从而,可以提升预测的鲁棒性。
例如,可以采用公式(1)和(2)确定第二总损失J(θ)。
J(θ)=Jc(y,f(X,θ))+Jr(y,f(X,θ)) (1)
Jc(y,f(X,θ))表示分类损失,Jr(y,f(X,θ))表示鲁棒性损失,y为第二训练数据的标记值,X表示第二训练数据的集合,θ表示模型的参数。Jc(y,f(X,θ))例如可以根据y与f(X,θ)之间的差距确定。
γ和β为预设的大于0的参数,其值可以根据需要设置,例如均可以设置为1;k表示类别的集合,公式(2)对应的示例中有两个类别,分别为k=0和k=1对应的类;Ck表示第k类中的训练数据的集合,i为Ck中训练数据的标识,#(Ck)表示第k类中的训练数据的数量;f(xi)表示训练数据xi所对应的预测结果。
由公式(2)可知,表示分类结果中的类内差距,/>表示不同类的类间差距。从而,根据该损失函数训练的模型可以令预测的同一类数据的差距更小、不同类数据间的差距更大。
本发明的分类预测过程依次采用了文本特征提取模型、子目标预测模型和分类模型。首先,采用第一训练数据对文本特征提取模型、子目标预测模型进行预训练,然后再采用第二训练数据对文本特征提取模型、子目标预测模型和分类模型进行进一步微调。通过采用这种预训练与微调相结合的方式,可以防止模型陷入局部最优解,提高了模型的准确度。
下面参考图4描述本发明文本数据处理装置的实施例。
图4示出了根据本发明一些实施例的文本数据处理装置的结构示意图。如图4所示,该实施例的文本数据处理装置40包括:词向量序列构建模块410,被配置为根据获取的文本,确定所述文本对应的词向量序列;文本特征提取模块420,被配置为将词向量序列输入到文本特征提取模型中,获得所述文本对应的文本特征;子目标预测模块430,被配置为将文本特征输入到一个或多个预先训练的子目标预测模型中,获得每个子目标预测模型输出的子目标预测值;文本分类模块440,被配置为将由所述文本特征和所述子目标预测值构建的分类模型输入向量输入到预先训练的分类模型中,获得对所述文本的分类结果。
在一些实施例中,文本特征提取模型是基于注意力机制的循环神经网络模型。
在一些实施例中,文本数据处理装置40还包括:训练模块450,被配置为获取第一训练数据,第一训练数据包括用于训练的文本,每个第一训练数据的标记值包括用于训练的文本的、每个子目标对应的预设关联属性的值;将第一训练数据对应的词向量序列输入到文本特征提取模型中,获得第一训练数据的训练文本特征;将第一训练数据的训练文本特征输入到一个或多个子目标分别对应的深度学习模型中,获得每个深度学习模型输出的、第一训练数据的子目标预测值;根据每个子目标预测模型输出的、第一训练数据的子目标预测值和第一训练数据的标记值的差距对文本特征提取模型和深度学习模型进行训练。
在一些实施例中,训练模块450进一步被配置为根据第一训练数据的标记值以及第一训练数据的子目标预测值,确定每个子目标分别对应的深度学习模型的损失;将每个深度学习模型的损失的加权结果作为第一总损失;根据第一总损失,对深度学习模型的参数进行调整。
在一些实施例中,在子目标的取值为类别型的情况下,子目标对应的深度学习模型为Softmax回归模型;或者,在子目标为的取值为连续型的情况下,子目标对应的深度学习模型为线性回归模型;或者,在子目标为的取值为计数型的情况下,子目标对应的深度学习模型为泊松回归模型。
在一些实施例中,训练模块450进一步被配置为获取第二训练数据,第二训练数据包括用于训练的文本,每个第二训练数据的标记值包括用于训练的文本的类别;将第二训练数据对应的词向量序列输入到文本特征提取模型中,获得第二训练数据的训练文本特征;将第二训练数据的训练文本特征输入到一个或多个子目标分别对应的深度学习模型中,获得每个深度学习模型输出的、第二训练数据的子目标预测值;将由第二训练数据的训练文本特征和第二训练数据的子目标预测值构建的分类模型输入向量输入到神经网络模型中,获得对第二训练数据的分类结果;根据第二训练数据的标记值以及第二训练数据的分类结果,对文本特征提取模型、深度学习模型和神经网络模型进行训练。
在一些实施例中,训练模块450进一步被配置为根据第二训练数据的标记值与第二训练数据的分类结果的差距,确定分类损失;根据第二训练数据的分类结果,确定每一类的第二训练数据的预测值的类内差距、以及不同类的第二训练数据的预测值的类间差距;根据类内差距和类间差距确定鲁棒性损失,鲁棒性损失与类内差距成正相关关系、与类间差距成负相关关系;根据分类损失和鲁棒性损失之和,确定第二总损失;根据第二总损失,对文本特征提取模型、深度学习模型和神经网络模型的参数进行调整。
在一些实施例中,根据获取的文本,确定文本对应的词向量序列包括:根据预先训练的词向量计算模型Word2Vec,将获取的文本中的词语转换为词向量,以获得文本对应的词向量序列。
在一些实施例中,词向量序列构建模块410进一步被配置为对获取的文本进行预处理;在预处理后的文本中的词语数量大于预设值的情况下,删除文本中预设位置的词语,以使得未删除的词语数量等于预设值,并将未删除的词语转换为词向量;在预处理后的文本中的词语数量小于预设值的情况下,向文本中的预设位置填充词语,以使得填充后的文本中的词语数量等于预设值,并将填充后的文本中的词语转换为词向量。
在一些实施例中,文本数据处理装置40还包括:推荐模块460,被配置为根据获取的用户标签确定用户所对应的类别;将用户所对应的类别的文本推荐给用户。
在一些实施例中,文本为网络条目的评论文本;文本数据处理装置40还包括:网络条目分类模块470,被配置为根据同一网络条目对应的多个评论文本的类别确定网络条目的类别,以便在类别对应的区域内显示相应的网络条目。
图5示出了根据本发明另一些实施例的文本数据处理装置的结构示意图。如图5所示,该实施例的文本数据处理装置50包括:存储器510以及耦接至该存储器510的处理器520,处理器520被配置为基于存储在存储器510中的指令,执行前述任意一个实施例中的文本数据处理方法。
其中,存储器510例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(Boot Loader)以及其他程序等。
图6示出了根据本发明又一些实施例的文本数据处理装置的结构示意图。如图6所示,该实施例的文本数据处理装置60包括:存储器610以及处理器620,还可以包括输入输出接口630、网络接口640、存储接口650等。这些接口630,640,650以及存储器610和处理器620之间例如可以通过总线660连接。其中,输入输出接口630为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口640为各种联网设备提供连接接口。存储接口650为SD卡、U盘等外置存储设备提供连接接口。
本发明的实施例还提供一种计算机可读存储介质,其上存储有计算机程序,其特征在于,该程序被处理器执行时实现前述任意一种文本数据处理方法。
本领域内的技术人员应当明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用非瞬时性存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解为可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。