具体实施方式
下面详细描述本申请的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本申请,而不能解释为对本发明的限制。
本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本申请的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
下面是对本申请涉及的几个名词进行的介绍和解释:
one-hot编码,又称为独热编码或者一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每一个状态均有独立的寄存器,并且在任意时候,每一个状态仅有一位有效。
BERT模型,英文全拼为Bidirectional Encoder Representation fromTransformers。
LSTM,英文全拼为Long Short-Term Memory,中文含义为长短期记忆网络。
CNN,英文全拼为Convolutional Neural Network,中文含义为卷积神经网络。其中,Text CNN是用于实现文本分类的卷积神经网络。
Transformer结构,一种基于encoder-decoder结构的模型。其中,Transformer-Encoder(Transformer编码器)可适用于BERT模型。
Self-Attention Mechanism,中文含义为自注意力机制。
Mult-head Self-Attention Mechanism,中文含义为多头自注意力机制。
目前,文本分类往往针对的是一句话、一段话或者一篇文章,也就是说,相关技术中的文本分类方案普遍适用于篇幅较短的文本。相较于篇幅较长的文本而言,无论从文本的字数还是文本内容的复杂程度来看,此文本分类方案都很难满足篇幅较长的文本对分类准确性的要求。
如前所述,如果文本分类的准确性不高,将会导致文本的标签不准确,进而影响文本推荐的准确性。
由上可知,相关技术中针对篇幅较长的文本仍存在文本分类的准确性不高的缺陷。
有鉴于此,本申请提供的文本分类方法、推荐方法、装置、电子设备及存储介质,旨在解决相关技术的如上技术问题。
为使本申请的目的、技术方案和优点更加清楚,下面将结合附图对本申请实施方式作进一步地详细描述。
图1为一种文本分类方法所涉及的实施环境的示意图。该实施环境包括终端100和服务器200。
具体地,终端100可供具备文本阅读功能的客户端运行,可以是台式电脑、笔记本电脑、平板电脑、智能手机等等电子设备,在此不进行限定。
其中,客户端,具备文本阅读功能,例如,小说阅读器、媒体类应用、浏览器等等,可以是应用程序形式,也可以是网页形式,相应地,客户端进行文本阅读的用户界面则可以是程序窗口形式,还可以是网页页面形式的,此处也并未加以限定。
服务器200可以是独立的物理服务器,也可以是多个物理服务器构成的服务器集群或者分布式系统,还可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、CDN、以及大数据和人工智能平台等基础云计算服务的云服务器。例如,本实施环境中,服务器200为终端100提供文本推荐服务,或者,服务器200提供文本分类服务。
当然,根据实际营运的需要,文本推荐服务和文本分类服务不局限于部署于同一台服务器,还可以部署于不同的服务器,以此方式提高处理效率。
服务器200通过有线或者无线等通信方式预先与终端100之间建立通信连接,以通过该通信连接实现服务器200与终端100之间的数据传输。例如,传输的数据包括但不限于目标文本、阅读历史信息等等。
对于服务器200而言,面对海量文本实施文本分类之后,便可将文本及其标签存储。
通过终端100与服务器200的交互,运行于终端100的客户端将向服务器200发起文本推荐请求,请求服务器200根据该文本推荐请求中涉及的历史文本提供文本推荐服务。
对应地,服务器200便接收到该文本推荐请求,并响应于该文本推荐请求获取历史文本的标签,以按照该历史文本的标签为终端100进行文本推荐。
请参阅图2,本申请实施例提供了一种文本分类方法,该方法适用于图1所示实施环境的服务器200。
在下述方法实施例中,为了便于描述,以各步骤的执行主体为服务器加以说明,但是并不对此构成限定。
如图2所示,该方法可以包括以下步骤:
步骤310,根据目标文本构建至少一个文本子空间。
首先,目标文本可以是一部小说、一篇新闻、一篇论文、一篇作文、一段评论等等,本实施例并不对目标文本的类型作具体限定。相应地,由于目标文本的不同类型可对应不同的场景,例如,小说可对应小说阅读场景,新闻可对应新闻浏览场景,因此,本实施例提供的文本分类方法可根据不同类型的文本适用于不同的场景,例如,在小说阅读场景中,根据小说的标签向读者推荐其感兴趣的小说。
对于服务器而言,根据目标文本的不同类型将由不同的来源获得目标文本。例如,小说可来源于小说阅读器的历史阅读记录,新闻可来源于新闻资讯类的公众号,评论可来源于论坛中发布的各种话题等等。
在获得目标文本之后,服务器可实时进行文本分类,以此提高文本分类的实时性,也可以预先存储,并在设定时间段进行文本分类,例如,设定时间段可以是服务器的CPU使用率较低的时候,以此提高文本分类的处理效率,此处并未加以限定。
如前所述,由于相关技术中的文本分类方案普遍适用于篇幅较短的文本,很难满足篇幅较长的文本对分类准确性的要求。有鉴于此,发明人提出一种文本分类方案,为目标文本构建至少一个文本子空间,使得后续文本分类的输入由目标文本替换为该目标文本的至少一个文本子空间,以此方式解决篇幅较长的目标文本带来的文本字数过多或者文本内容过于复杂等缺陷。
其中,文本子空间,是通过随机划分目标文本构建得到的,以此实现对目标文本中某个局部的文本内容的语义表达。换而言之,每一个文本子空间用于表达目标文本中某个局部的文本内容的语义,使得本申请中文本分类方案面对目标文本中的不同局部进行,以此避免相关技术中文本分类方案只能够针对相对固定的一个局部的文本内容,从而能够有效地保障文本分类的准确性。
此处,为目标文本构建的文本子空间的数量,可以根据应用场景的实际需要灵活地调整,可以理解,对于篇幅较长的目标文本来说,随着文本子空间数量的增加,有利于提高篇幅较长的目标文本的文本分类的准确性。
在一种可能的实施方式,文本子空间,可以是目标文本中的某一个文本片段。例如,包括N个章节的小说作为目标文本时,文本片段是指该小说的某一个章节,或者,文本片段是指该小说的某一个章节中的某一段话。对应地,至少一个文本子空间,可以是该小说的至少一个章节,或者,至少一个文本子空间可以是该小说的不同章节中的各一段话,又或者,至少一个文本子空间可以是该小说的同一个章节中的若干段话。
在一种可能的实施方式,文本子空间,可以是目标文本中某一个文本片段的摘要信息。仍以前述例子进行说明,则文本片段可以是该小说中某一个章节的摘要信息,或者,文本片段可以是某一个章节中的某一段话的摘要信息。对应地,至少一个文本子空间,可以是该小说的至少一个章节的摘要信息,或者,至少一个文本子空间可以是该小说的不同章节中的各一段话的摘要信息,又或者,至少一个文本子空间可以是该小说的同一个章节中的若干段话的摘要信息。
其中,摘要信息是通过关键词提取得到的,关键词提取方式包括但不限于:基于统计特征的关键词提取、基于词图模型的关键词提取、基于主题模型的关键词提取、基于词聚类的关键词提取、基于信息增益的关键词提取、基于互信息的关键词提取等等,本实施例对此并未加以限定。
步骤330,基于文本分类模型的特征提取层,得到各文本子空间的语义特征。
其中,文本分类模型是基于训练文本的训练得到的,以此反映目标文本和标签之间的数学映射关系。
图3示例出了文本分类模型的结构的示意图。在一种可能的实施方式,如图3a所示,文本分类模型包括特征提取层301、特征融合层303、特征分类层305。在一种可能的实施方式,如图3b所示,文本分类模型还包括连接在特征融合层303与特征分类层305之间的全连接层304。
其中,特征提取层,用于提取各文本子空间的语义特征。特征融合层,用于融合各文本子空间的语义特征。全连接层,用于对目标文本的语义融合特征进行线性处理以得到目标文本的全局语义特征。特征分类层,用于实现文本分类预测。
由此,将各文本子空间输入文本分类模型中的特征提取层,便可得到各文本子空间的语义特征。该语义特征用于实现对文本子空间所表达的语义的准确描述,进而在数字信息上唯一地标识文本子空间。可以理解,如果文本子空间的语义特征不同,则文本子空间也会有所差别。
在一种可能的实施方式,特征提取基于模型实现,该模型包括但不限于TextCNN、LSTM、BERT等等模型。
步骤350,基于文本分类模型的特征融合层,根据各文本子空间之间的上下文语义关系,将各文本子空间的语义特征融合,得到目标文本的语义融合特征。
可以理解,一个字/词在一篇文本中表达的语义通常与它的上下文有关。例如,就“鸿鹄之志”这个词来说,单一个“鹄”字可能无法立即联想到“鸿鹄之志”,甚至连“鹄”字的读音都不了解,但是如果联系其上下文语义关系,例如“鸿鹄”,则可能直接联想到“鸿鹄之志”,由此可知,字/词的上下文语义关系有助于该字/词在一篇文本中的语义表达。有鉴于此,发明人意识到,对于单个文本子空间来说,其所表达的目标文本中某个局部的文本内容的语义实质也是与它的上下文有关的,换而言之,各文本子空间之间的上下文语义关系也将有助于文本子空间在目标文本中的语义表达。
故而,本实施例中,在进行文本分类之前,需要基于各文本子空间之间的上下文语义关系,将各文本子空间的语义特征关联起来,以使目标文本能够被描述地更加准确。
由此,将各文本子空间的语义特征输入文本分类模型中的特征融合层,便可由各文本子空间的语义特征融合得到目标文本的语义融合特征,该语义融合特征即实现了对目标文本所表达的语义的准确描述,进而在数字信息上唯一地标识目标文本。可以理解,如果目标文本的语义融合特征不同,则目标文本也会将各不相同。
在一种可能的实施方式,融合是指将各文本子空间的语义特征直接累加,以此方式降低融合复杂度。在一种可能的实施方式,融合是指将各文本子空间的语义特征基于权重累加,以此方式提高融合精准度。
可选地,融合所采用的算法包括但不限于自注意力机制算法、进化算法等等。
步骤370,基于文本分类模型的特征分类层,根据目标文本的语义融合特征对目标文本进行标签预测,得到目标文本的标签。
其中,标签预测,是指通过特征分类层,预测目标文本的语义融合特征的所属标签,以将标签预测结果作为目标文本的标签。
例如,对于目标文本A来说,预测得到该目标文本A的语义融合特征的所属标签包括科幻标签和情感标签,那么,该目标文本A的标签即为科幻标签和情感标签。
通过上述过程,通过为目标文本构建文本子空间,并基于文本子空间进行特征提取和特征融合,使得目标文本通过语义融合特征被描述地更加准确,以此保证目标文本的分类更加准确,尤其适用于篇幅较长的目标文本,从而有利于提高文本推荐的准确性。
下面对文本分类模型的训练过程加以说明。
图4示例性示出了文本分类模型的训练过程的流程图。在图4中,训练过程可以包括以下步骤:
步骤410,获取训练文本,根据训练文本构建至少一个样本子空间。
同理于目标文本,训练文本也可以根据不同类型由不同的来源获取,此处不再重复赘述。
同理于文本子空间,样本子空间是通过随机划分训练文本构建得到的。在一种可能的实施方式,样本子空间,可以是训练文本中的某一个文本片段。在一种可能的实施方式,样本子空间,可以是训练文本中某一个文本片段的摘要信息,此处也不再重复赘述。
步骤430,将至少一个样本子空间作为训练数据,对初始的文本分类模型的参数进行训练。
其中,训练数据,是指进行了标签标记的样本子空间。
例如,假设标签包括科幻、悬疑、情感、修仙等,如果样本子空间属于科幻类型,则对该样本子空间添加“科幻”标记,以生成训练数据。或者,如果样本子空间属于修仙类型,则对该样本子空间添加“修仙”标记,以生成训练数据。
当然,在其他实施例中,标记,不局限于文字,还可以是数字、字符、图形、颜色等方式,此处并非构成具体限定。
在获得训练数据之后,便可基于训练数据对初始的文本分类模型加以训练。具体如下:
对初始的文本分类模型的参数进行随机初始化,由随机化初始化的参数和当前一个训练数据构建对应的损失函数。该损失函数包括但不限于:交叉熵函数、类内分布函数、类间分布函数、激活分类函数等等等。
计算该损失函数的损失值并判断该损失值是否达到最小值。
如果该损失值未达到最小值,则该损失函数未收敛,此时,对文本分类模型的参数进行更新,并由更新的参数和后一个训练数据构建对应的损失函数。
继续计算该损失函数的损失值并判断该损失值是否达到最小值。
通过如此迭代,直至损失函数的损失值达到最小,视为损失函数收敛,则由初始的文本分类模型收敛得到最终的文本分类模型。其中,迭代次数可以根据应用场景的实际需要灵活地设置,例如,对精准度要求较高的应用场景,设置较大的迭代次数。
值得一提的是,对于同一个训练文本而言,由于为其构建的至少一个样本子空间均作为训练数据参与文本分类模型的训练,也就是说,相较于相关技术中的文本分类方案,训练数据由训练文本替换为该训练文本的至少一个样本子空间,以此方式实现了参数在训练文本的各样本子空间之间实现共享的文本分类方案,即该训练文本中后一个样本子空间相关的参数更新以该训练文本中前一个样本子空间相关的参数更新为前提,从而充分地保障了该文本分类方案足以满足篇幅较长的文本对分类准确性的要求。
至此,通过上述梯度下降和反向传播更新参数的过程,文本分类模型便具备了文本分类预测能力。
本申请实施例中提供了一种可能的实施方式,特征提取层由BERT模型构建得到。
如图5所示,步骤330可以包括以下步骤:
步骤331,针对每一个文本子空间,通过字向量表的查询,将文本子空间中的字转换为文本子空间中字的文本向量。
其中,文本子空间中字的文本向量,以向量形式唯一地标识文本子空间中的字,进而实现对文本子空间中字的准确描述。
本实施例中,文本子空间中字的文本向量,是基于字向量表的查询实现的。即,通过字向量表中提供的字,使得文本子空间中的字能够转换为相应的文本向量。
在一种可能的实施方式中,如图6所示,步骤331可以包括以下步骤:
步骤3311,针对文本子空间中的每一个字,确定字在字向量表中的字位置,以及确定字在文本子空间中的文本位置。
举例来说,假设文本子空间为“锄禾日当午汗滴禾下土”,同时,假设字向量中提供的字的个数为100个。
那么,针对该文本子空间中的每一个字,基于字向量表中提供的100个字,可分别查找出各字在字向量表中的字位置。例如,字向量表中的第5个字为“禾”,那么,文本子空间中的“禾”字在字向量表中的字位置即为5。由此,假设文本子空间中各字在字向量表中的字位置依次为:1、5、10、15、20、25、30、5、40、45。
也就是说,字位置反映了文本子空间中字的语义表达。
此外,发明人意识到,一方面,出现在文本子空间中不同位置的相同字可能存在相同或者不同的语义表达。例如,上述例子中,文本子空间中前后不同位置出现的“禾”字具有相同的语义表达。另一方面,文本子空间中相同位置出现不同字也可能造成该文本子空间存在不同的语义表达,例如,“我讨厌你”和“你讨厌我”就存在语义表达上的差异。由此,本实施例中,对于文本子空间中的每一个字而言,除了该字在字向量表中的字位置,还会为该字增加其在文本子空间中的文本位置。
仍以前述例子进行说明,针对文本子空间中的每一个字,各字在文本子空间中的文本位置依次为:1、2、3、4、5、6、7、8、9、10。
例如,第一个“禾”位于文本子空间的文本位置为2,第二个“禾”位于文本子空间的文本位置为8。
由此可见,文本位置反映了字在文本子空间中的位置,以此方式区分文本子空间中不同位置的字,进而使得文本子空间中字的描述更加地准确。
步骤3313,采用独热one-hot编码,将字的字位置映射为字的内容向量,以及将字的文本位置映射为字的位置向量。
其中,独热one-hot编码,指的是N个状态中仅有1个状态有效。
以前述例子对独热one-hot编码过程加以说明如下:
例如,对于字的文本位置而言,状态是指文本子空间中的字,则N为10。
那么,“锄”的位置向量=[1 0 0 0 0 0 0 0 0 0];
“禾”的位置向量=[1 0 0 0 0 0 0 0 0 0];
“日”的位置向量=[0 0 1 0 0 0 0 0 0 0];
“当”的位置向量=[0 0 0 1 0 0 0 0 0 0];
“午”的位置向量=[0 0 0 0 1 0 0 0 0 0];
“汗”的位置向量=[0 0 0 0 0 1 0 0 0 0];
“滴”的位置向量=[0 0 0 0 0 0 1 0 0 0];
“禾”的位置向量=[0 0 0 0 0 0 0 1 0 0];
“下”的位置向量=[0 0 0 0 0 0 0 0 1 0];
“土”的位置向量=[0 0 0 0 0 0 0 0 0 1]。
同理,对于字的字位置而言,状态是指字向量表中提供的字,则N为100。
那么,“锄”的内容向量=[1 0 0……0 0],文本子空间中其余字的内容向量以此类推,此处不再重复赘述。
步骤3315,根据文本子空间中字的内容向量和位置向量,生成文本子空间中字的文本向量。
其中,假设文本子空间包含N个字,则文本子空间中第i个字的文本向量=文本子空间中第i个字的内容向量+文本子空间中第i个字的位置向量,i∈[1,N]。对应地,文本子空间的文本向量={第1个字的文本向量,第2个字的文本向量,……,第N个字的文本向量}。
在此说明的是,对于每个字而言,内容向量和位置向量的维数可能有所不同,例如,在前述例子中,字的内容向量的维数为100,而字的位置向量的维数为10,因此,在生成文本子空间中字的文本向量之前,字的内容向量和字的位置向量会映射至相同维度,以便于相加操作。
图7示例性示出了文本向量生成过程的示意图。在图7中,以文本子空间中的每一个字(例如401和402)作为输入文本,通过字向量表的查询,进行字的内容向量403和位置向量404的映射以及相加,从而得到文本子空间中字的文本向量,以进一步地作为BERT模型的输入。
步骤333,将各文本子空间中字的文本向量输入BERT模型,得到各文本子空间的语义特征。
现对BERT模型的结构进行以下说明:
图8示例性示出了BERT模型的结构的示意图。在图8中,该BERT模型包括依次堆叠的设定数量个Transformer编码器405,以此实现文本子空间的特征提取。其中,该设定数量可以根据应用场景的实际需要灵活地调整,例如,本实施例中,设定数量为6。
具体地:以各文本子空间中字的文本向量作为输入,输出得到各文本子空间的语义特征406。
图9示例性示出了BERT模型中Transformer编码器的结构的示意图。在图9中,该Transformer编码器包括多头自注意力层4051、残差连接层4053、标准化层4052、以及全连接层。其中,全连接层进一步包括两层线性处理层4054a和4054b,以此增强BERT模型的语义表达能力。
对于每一个Transformer编码器来说,具体处理过程包括:
以各文本子空间中字的文本向量/前一个Transformer编码器的输出作为当前一个Transformer编码器的输入,传输至多头自注意力层4051。
通过多头自注意力层4051的特征提取,得到各文本子空间的初始语义特征,并传输至标准化层4052。
同时,通过残差连接层4053,将当前一个Transformer编码器的输入也传输至标准化层4052,以此降低模型训练的复杂度。
通过标准化层4052进行的标准化处理,得到各文本子空间的中间向量,并传输至全连接层。其中,标准化处理是指均值处理或者方差处理。
在全连接层中,对各文本子空间的中间向量进行两次线性变换,即得到当前一个Transformer编码器的输出。
直至最后一个Transformer编码器输出,得到各文本子空间的语义特征。
图10示例性示出了Transformer编码器中多头自注意力层的结构的示意图。该多头自注意力层由至少一个自注意力层构成,以此方式考虑多种语义场景下各文本子空间中字的文本向量之间所具有的不同融合方式,从而保证特征提取的准确性。
具体地:首先,针对每一个文本子空间,对该文本子空间中的所有字进行遍历,以遍历到的字作为目标字。
那么,将该目标字的文本向量作为Query向量,将与该目标字存在上下文语义关系的各字(包括目标字)的文本向量作为Key向量,以及将各字的文本向量作为Value向量。
其次,计算Query向量和各个Key向量的相似度,即获得该目标字对应的权重。
然后,基于该目标字对应的权重,加权融合该目标字的Value向量和各字的Value向量,得到该目标字的增强语义向量。
以此类推,待遍历完成,便可获得各文本子空间中字的增强语义向量,作为自注意力层的输出。
最后,对各文本子空间中字的增强语义向量进行线性组合,从而得到各文本子空间的初始语义特征,作为多头自注意力层的输出。
在上述实施例的作用下,实现了基于BERT模型的特征提取。
本申请实施例中提供了一种可能的实施方式,特征融合层采用自注意力机制构建得到。
如图11所示,步骤350可以包括以下步骤:
步骤351,采用自注意力机制,根据各文本子空间的语义特征计算对应的权重系数。
在前述“鸿鹄之志”的例子中,“鸿”字有助于“鹄”字在“鸿鹄之志”中的语义表达,也可以理解,“鸿”字对“鹄”字的语义增强作用最大,而“之”字、“志”字对“鹄”字的语义增强作用则相对较小。有鉴于此,发明人意识到,各文本子空间对其余文本子空间的语义增强作用也是有所差异的。
因此,本实施例中,文本子空间对应的权重系数,用于指示该文本子空间对其余文本子空间的语义增强作用,以此方式充分地利用其余文本子空间对该文本子空间相同或者不同的语义增强作用,实现目标文本更加准确地描述。
下面对基于自注意力机制计算各文本子空间对应的权重系数的过程加以说明如下:
图12示例性示出了自注意力层的示意图。在图12中,自注意力层的输入为各文本子空间的语义特征。
首先,对各文本子空间进行遍历,以遍历到的文本子空间作为目标子空间。例如,在图12中,将遍历到的第二个文本子空间作为目标子空间407。
那么,将该目标子空间的语义特征作为Query向量,将与该目标子空间存在上下文语义关系的各文本子空间(包括目标子空间)的语义特征作为Key向量,然后,计算Query向量和各个Key向量的相似度,即获得该目标子空间对应的权重系数408。
以此类推,待遍历完成,便可获得各文本子空间对应的权重系数。
步骤353,根据各文本子空间对应的权重系数,对各文本子空间的语义特征进行融合,得到目标文本的语义融合特征。
其中,假设目标文本包含N个文本子空间,则目标文本的语义特征融合=∑(文本子空间的语义特征i×权重系数i),i∈[1,N]。
通过上述过程,实现了基于权重系数的特征融合,通过权重系数区分开不同文本子空间对标签预测结果的重要性,从而保证文本分类的准确性。
本申请实施例中提供了一种可能的实施方式,特征分类层包括分类器。例如,分类器包括softmax函数。
如图13所示,步骤370可以包括以下步骤:
步骤371,采用分类器,计算目标文本的语义融合特征属于不同候选标签的概率。
步骤373,根据计算得到的概率,选取至少一个候选标签作为目标文本的标签。
在一种可能的实施方式,根据计算得到的概率,选取设定数量的候选标签作为目标文本的标签。例如,设定数量为10,则选取概率排前10名的候选标签作为目标文本的标签。
在一种可能的实施方式,根据计算得到的概率,选取概率超过阈值的候选标签作为目标文本的标签。例如,阈值为0.9,则选取概率超过0.9的候选标签作为目标文本的标签。
举例来说,假设候选标签包括科幻、悬疑、情感、修仙。
利用分类器计算目标文本的语义融合特征属于不同候选标签的概率,假设目标文本的语义融合特征属于科幻标签的概率为P0,目标文本的语义融合特征属于悬疑标签的概率为P1,目标文本的语义融合特征属于情感标签的概率为P2,目标文本的语义融合特征属于修仙标签的概率为P3。
以阈值为0.9进行说明,如果只有P0和P2的概率超过0.9,则目标文本的标签包括科幻标签和情感标签。在上述过程中,实现了基于分类器的特征分类。
图14是一应用场景中一种文本分类方法的具体实现示意图。该应用场景中,目标文本是指篇幅较长的书籍,该书籍包括至少一个章节。
将该书籍记为Book={Chap1,Chap2,...,Chapn},其中,Chapn表示书籍Book中的第N个章节。
步骤801,对书籍Book按章节顺序随机抽取k段话,每一段话的字数可以在400个字到512个字之间,记为Texti,表示根据书籍Book构建的第i个文本子空间,由此,即得到书籍Book的文本子空间集合,记为Sample={Text1,Text2,...,Text10},k=10。
在此说明的是,该k段话,可以是同一个章节中随机抽取的k段话,也可以是各不相同的章节中随机抽取的各一段话,还可以是前一个章节中随机抽取的一段话,后一个章节中随机抽取的两段话,以此类推等等,此处并未加以限定。
步骤802,对于第i个文本子空间,首先确定第i个文本子空间中的每一个字,然后确定该字在字向量表中的字位置、以及确定该字在第i个文本子空间中的文本位置,以便于通过one-hot编码分别映射得到字的内容向量以及字的位置向量,并最终生成第i个文本子空间的文本向量,记为Vi=Wi+Pi。
其中,Vi表示第i个文本子空间的文本向量,Wi表示第i个文本子空间的内容向量,Pi表示为第i个文本子空间的位置向量。
步骤803,将第i个文本子空间的文本向量Vi输入BERT模型进行特征提取,得到第i个文本子空间的语义特征Oi。
步骤804,针对每一个文本子空间,并行执行步骤802至步骤803,得到k个文本子空间的语义特征,记为O={O1,O2,...,Ok}。
步骤805,基于自注意力机制,学习得到k个文本子空间对应的权重系数,记为a=softmax(ws1tanh(Ws2OT))。
其中,ws1和Ws2是特征融合层的参数,通过文本分类模型的训练实现更新。
步骤806,通过k个文本子空间对应的权重系数α,对k个文本子空间的语义特征O进行加权融合,即得到书籍Book的语义融合特征,记为Z=a·O。
至此,k个文本子空间的语义特征融合在一起,同时基于权重系数α区分了不同文本子空间对书籍Book的标签预测结果的重要程度。
步骤807,将书籍Book的语义融合特征Z输入全连接层,该全连接层包含两层网络结构,第一层网络是一个修正线性单元ReLU,第二层网络实质是一个线性函数,由此,通过两次线性处理,输出书籍Book的全局语义特征,记为Γ(Z)=max(0,Zω1+b1)ω1+b2。
其中,w1、b1为全连接层中第一层网络的参数,w2、b2为全连接层中第二层网络的参数,均通过文本分类模型的训练实现更新。
步骤808,将书籍Book的全局语义特征Γ(Z)输入特征分类层进行标签预测,最终得到书籍Book的M个标签,记为Tags={Tag1,Tag2,...,Tagm},其中,Tagm表示书籍Book的第M个标签。
在此说明的是,M可以根据应用场景的实际需要灵活地设置,例如,在一个可能的实施方式,M为固定数量;在一个可能的实施方式,M是指预测概率超过阈值的可变数量。
步骤809,基于上述针对书籍Book的文本分类方案,可形成包含大量书籍及其标签的候选文库,以便于通过用户的阅读历史信息向用户提供文本推荐服务。
具体地:接收文本推荐请求,该文本推荐请求包含阅读历史信息;根据阅读历史信息确定历史文本;在候选文库中搜索历史文本的标签;根据历史文本的标签进行文本推荐。
举例来说,随着小说阅读器在用户所在终端运行,用户可基于小说阅读器阅读其感兴趣的“修仙”类书籍,并作为历史文本存储至阅读历史信息。
同时,对于小说阅读器而言,当检测到用户打开小说阅读器,便会根据该用户的阅读历史信息向服务器发起文本推荐请求。对应地,服务器便接收到该文本推荐请求,进而根据阅读历史信息中存储的历史文本在候选文库中搜索相应的标签,进而基于搜索到的标签(修仙标签)在候选文库中搜索包含此标签的候选文本。
在小说阅读器接收到相关推荐之后,便基于服务器推荐的候选文本构建用户感兴趣的书籍画像,以此实现向用户推荐修仙类书籍。
在本应用场景中,通过对书籍进行文本分类,可以构建书籍画像,并通过用户的书籍阅读历史消息来根据历史书籍的标签进行与历史书籍相似的书籍推荐,以此能够有效地补充书籍推荐的特征,更加细化用户感兴趣的书籍画像,从而有效地提高书籍推荐的精准度,有利于提升用户体验。
下述为本申请装置实施例,可以用于执行本申请所涉及的文本分类方法。对于本申请装置实施例中未披露的细节,请参照本申请所涉及的文本分类方法的方法实施例。
请参阅图15,本申请实施例中提供了一种文本分类装置900,包括但不限于:子空间构建模块910、特征提取模块930、特征融合模块950、以及特征分类模块970。
其中,子空间构建模块910,用于根据目标文本构建至少一个文本子空间。
特征提取模块930,用于基于文本分类模型的特征提取层,得到各文本子空间的语义特征。
特征融合模块950,用于基于文本分类模型的特征融合层,根据各文本子空间之间的上下文语义关系,将各文本子空间的语义特征融合,得到目标文本的语义融合特征。
特征分类模块970,用于基于文本分类模型的特征分类层,根据目标文本的语义融合特征对目标文本进行标签预测,得到目标文本的标签。
需要说明的是,上述实施例所提供的文本分类装置在进行文本分类时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即文本分类装置的内部结构将划分为不同的功能模块,以完成以上描述的全部或者部分功能。
另外,上述实施例所提供的文本分类装置与文本分类方法的实施例属于同一构思,其中各个模块执行操作的具体方式已经在方法实施例中进行了详细描述,此处不再赘述。
由此,通过为目标文本构建文本子空间,并基于文本子空间进行特征提取和特征融合,使得目标文本通过语义融合特征被描述地更加准确,以此保证目标文本的分类更加准确,尤其适用于篇幅较长的目标文本,从而有利于提高文本推荐的准确性。
在一可能的实施方式,特征提取层由BERT模型构建得到。特征提取模块,包括:表查询单元,用于针对每一个文本子空间,通过字向量表的查询,将文本子空间中的字转换为文本子空间中字的文本向量。特征确定单元,用于将各文本子空间中字的文本向量输入BERT模型,得到各文本子空间的语义特征。
在一可能的实施方式,表查询单元,包括:位置确定子单元,用于针对文本子空间中的每一个字,确定字在字向量表中的字位置,以及确定字在文本子空间中的文本位置。位置映射子单元,用于采用独热one-hot编码,将字的字位置映射为字的内容向量,以及将字的文本位置映射为字的位置向量。向量生成子单元,用于根据文本子空间中字的内容向量和位置向量,生成文本子空间中字的文本向量。
在一可能的实施方式,特征融合层采用自注意力机制构建得到。特征融合模块,包括:系数计算单元,用于采用自注意力机制,根据各文本子空间的语义特征计算对应的权重系数。特征融合单元,用于根据各文本子空间对应的权重系数,对各文本子空间的语义特征进行融合,得到目标文本的语义融合特征。
在一可能的实施方式,文本分类模型还包括连接在特征融合层与特征分类层之间的全连接层。装置,还包括:线性处理模块,用于基于全连接层,对目标文本的语义融合特征进行线性处理,得到目标文本的全局语义特征。
在一可能的实施方式,特征分类层包括分类器。特征分类模块,包括:计算概率单元,用于采用分类器,计算目标文本的语义融合特征属于不同候选标签的概率。标签选取单元,用于根据计算得到的概率,选取至少一个候选标签作为目标文本的标签。
在一可能的实施方式,子空间构建模块,包括:第一选取单元,用于从目标文本中选取至少一个文本片段,作为至少一个文本子空间。或者第二选取单元,用于对目标文本中的至少一个文本片段分别进行关键词提取,得到至少一个文本片段的摘要信息,作为至少一个文本子空间。
在一可能的实施方式,装置,还包括:训练子空间构建模块,用于获取训练文本,根据训练文本构建至少一个样本子空间。训练模块,用于将至少一个样本子空间作为训练数据,对初始的文本分类模型的参数进行训练,直至损失函数收敛,得到参数在训练文本的各样本子空间之间实现共享的文本分类模型,损失函数根据训练过程中的训练数据和参数构建。
在一可能的实施方式,训练子空间构建模块,包括:第三选取单元,用于从训练文本中选取至少一个文本片段,作为至少一个样本子空间。或者第四选取单元,用于对训练文本中的至少一个文本片段分别进行关键词提取,得到至少一个文本片段的摘要信息,作为至少一个样本子空间。
根据本申请实施例的一个方面,一种文本推荐装置,包括:
请求接收模块,用于接收文本推荐请求,文本推荐请求包含阅读历史信息。文本确定模块,用于根据阅读历史信息确定历史文本。标签确定模块,用于在候选文库中搜索历史文本的标签,候选文库中的标签是按照如上的文本分类方法得到的。文本推荐模块,用于根据历史文本的标签进行文本推荐。
图16根据一示例性实施例示出的一种服务器的结构示意。该服务器适用于图1所示出实施环境的服务器200。
需要说明的是,该服务器只是一个适配于本申请的示例,不能认为是提供了对本申请的使用范围的任何限制。该服务器也不能解释为需要依赖于或者必须具有图16示出的示例性的服务器2000中的一个或者多个组件。
服务器2000的硬件结构可因配置或者性能的不同而产生较大的差异,如图11所示,服务器2000包括:电源210、接口230、至少一存储器250、以及至少一中央处理器(CPU,Central Processing Units)270。
具体地,电源210用于为服务器2000上的各硬件设备提供工作电压。
接口230包括至少一有线或无线网络接口,用于与外部设备交互。例如,进行图1所示出实施环境中终端100与服务器200之间的交互。
当然,在其余本申请适配的示例中,接口230还可以进一步包括至少一串并转换接口233、至少一输入输出接口235以及至少一USB接口237等,如图16所示,在此并非对此构成具体限定。
存储器250作为资源存储的载体,可以是只读存储器、随机存储器、磁盘或者光盘等,其上所存储的资源包括操作系统251、应用程序253及数据255等,存储方式可以是短暂存储或者永久存储。
其中,操作系统251用于管理与控制服务器200上的各硬件设备以及应用程序253,以实现中央处理器270对存储器250中海量数据255的运算与处理,其可以是WindowsServerTM、Mac OS XTM、UnixTM、LinuxTM、FreeBSDTM等。
应用程序253是基于操作系统251之上完成至少一项特定工作的计算机程序,其可以包括至少一模块(图16未示出),每个模块都可以分别包含有对服务器2000的一系列计算机可读指令。例如,数据监控装置可视为部署于服务器2000的应用程序253。
数据255可以是存储于磁盘中的照片、图片等,还可以是文本、标签等,存储于存储器250中。
中央处理器270可以包括一个或多个以上的处理器,并设置为通过至少一通信总线与存储器250通信,以读取存储器250中存储的计算机可读指令,进而实现对存储器250中海量数据255的运算与处理。例如,通过中央处理器270读取存储器250中存储的一系列计算机可读指令的形式来完成文本分类方法。
此外,通过硬件电路或者硬件电路结合软件也能同样实现本申请,因此,实现本申请并不限于任何特定硬件电路、软件以及两者的组合。
请参阅图17,本申请实施例中提供了一种电子设备4000,例如,电子设备4000为服务器。
该电子设备4000包括至少一个处理器4001、至少一条通信总线4002以及至少一个存储器4003。
其中,处理器4001和存储器4003相连,如通过通信总线4002相连。可选地,电子设备4000还可以包括收发器4004,收发器4004可以用于该电子设备与其他电子设备之间的数据交互,如数据的发送和/或数据的接收等。需要说明的是,实际应用中收发器4004不限于一个,该电子设备4000的结构并不构成对本申请实施例的限定。
处理器4001可以是CPU(Central Processing Unit,中央处理器),通用处理器,DSP(Digital Signal Processor,数据信号处理器),ASIC(Application SpecificIntegrated Circuit,专用集成电路),FPGA(Field Programmable Gate Array,现场可编程门阵列)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。其可以实现或执行结合本申请公开内容所描述的各种示例性的逻辑方框,模块和电路。处理器4001也可以是实现计算功能的组合,例如包含一个或多个微处理器组合,DSP和微处理器的组合等。
通信总线4002可包括一通路,在上述组件之间传送信息。通信总线4002可以是PCI(Peripheral Component Interconnect,外设部件互连标准)总线或EISA(ExtendedIndustry Standard Architecture,扩展工业标准结构)总线等。通信总线4002可以分为地址总线、数据总线、控制总线等。为便于表示,图17中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
存储器4003可以是ROM(Read Only Memory,只读存储器)或可存储静态信息和指令的其他类型的静态存储设备,RAM(Random Access Memory,随机存取存储器)或者可存储信息和指令的其他类型的动态存储设备,也可以是EEPROM(Electrically ErasableProgrammable Read Only Memory,电可擦可编程只读存储器)、CD-ROM(Compact DiscRead Only Memory,只读光盘)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。
存储器4003上存储有计算机可读指令,处理器4001通过通信总线4002读取存储器4003中存储的计算机可读指令。
该计算机可读指令被处理器4001执行时实现上述各实施例中的文本分类方法。
此外,本申请实施例中提供了一种存储介质,该存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述各实施例中的文本分类方法。
本申请实施例中提供了一种计算机程序产品,该计算机程序产品包括计算机可读指令,该计算机可读指令存储在存储介质中。计算机设备的处理器从存储介质读取该计算机可读指令,处理器执行该计算机可读指令,使得该计算机设备执行上述各实施例中的文本分类方法。
与相关技术相比,通过为目标文本构建文本子空间,并基于文本子空间进行特征提取和特征融合,使得目标文本通过语义融合特征被描述地更加准确,以此保证目标文本的分类更加准确,尤其适用于篇幅较长的目标文本,从而有利于提高文本推荐的准确性。
应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。