一种属性词提取方法
技术领域
本发明涉及自然语言处理技术领域,特别是涉及一种属性词提取方法。
背景技术
情感分析是自然语言处理(Natural Language Processing,NLP)中的重要任务,其目的在于对带有情感色彩的主观性文本进行分析。情感分析从分析的粒度度层次看,可以分为篇章级、句子级和属性级这三种层次。其中,属性级情感分析是针对特定属性进行的情感分析任务,它能从更细粒度的层次挖掘用户情感倾向,因而成为当前的研究热点之一。
属性级情感分析主要分为两个步骤:1)属性词提取和2)情感极性识别,前者从评论语料中挖掘出其中涉及的评价对象,既商品的某些属性,后者判断文本针对该属性表达的情感倾向。因此属性词提取是属性级情感分析的关键问题之一,属性词提取质量的好坏,能直接影响情感分析的结果。现有的属性词提取方法包括有监督方法和无监督方法,其中有监督方法需要大量有标注的评论语料进行模型训练,且领域迁移性差,限制了该方法的实用价值。无监督方法无需标注数据,具有较好的领域迁移性,但是缺点是缺少先验监督信息,模型准确率低。
发明内容
为克服相关技术中存在的问题,本发明实施例提供了一种属性词提取方法,包括如下步骤:
S101:获取语料库中的评论文档以及所述评论文档对应的第一词袋表示,根据所述评论文档对应的第一词袋表示和预设的第一多层感知机,得到所述评论文档对应的全局信息向量;
S102:获取所述语料库的多个预定义属性下的种子词、所述种子词对应的词向量以及不同所述评论文档中每个种子词的权重,根据所述权重对所述评论文档中所述种子词的词向量进行加权平均,得到种子词信息向量;拼接所述全局信息向量和种子词信息向量得到信息拼接向量,根据所述信息拼接向量和预设的属性编码器得到所述评论文档的属性标签和属性标签向量;
S103:根据所述属性标签对所述全局信息向量进行归一化处理,得到归一化向量;根据所述归一化向量和预设的辅助编码器,获取所述评论文档的辅助语义信息向量;
S104:将所述辅助语义信息向量作为查询向量,根据所述种子词对应的词向量和预设注意力机制,更新所述评论文档中所述种子词的权重;
S105:获取属性矩阵,根据所述属性矩阵和预设的语义解码器对所述属性标签向量和所述辅助语义信息向量进行解码,获取文档语义向量;
S106:获取词表词向量矩阵,对所述词表词向量矩阵和所述文档语义向量解码重构,得到所述评论文档的第二词袋表示;根据所述第二词袋表示和第一词袋表示计算重构误差,根据所述重构误差和预设的优化算法更新目标参数,重复执行上述步骤S101至S105,直至满足终止条件;其中,所述目标参数包括所述第一多层感知机、所述属性编码器、所述辅助编码器、所述注意力机制、所述语义解码器以及所述对所述词表词向量矩阵和所述文档语义向量解码重构中使用的所有参数以及所述属性矩阵和所述词表词向量矩阵;
S107:根据所述属性矩阵和所述词表词向量矩阵,得到属性-词分布矩阵,根据属性-词分布矩阵提取所述评论文档的属性词。
可选的,所述获取语料库中的评论文档以及所述评论文档对应的第一词袋表示,根据所述评论文档对应的第一词袋表示和预设的第一多层感知机,得到所述评论文档对应的全局信息向量,包括步骤:
获取语料库中的N篇评论文档以及第i篇所述评论文档对应的第一词袋表示
其中,
表示第i篇所述评论文档中第j个词的出现次数,V表示词表中词的数量;
将所述评论文档对应的第一词袋表示ri输入预设的第一多层感知机,得到所述评论文档对应的全局信息向量li;其中,li=MLP1(ri),MLP1()表示第一多层感知机;
可选的,所述获取所述语料库的多个预定义属性下的种子词、所述种子词对应的词向量以及不同所述评论文档中每个种子词的权重,根据所述权重对所述评论文档中所述种子词的词向量进行加权平均,得到种子词信息向量;拼接所述全局信息向量和种子词信息向量得到信息拼接向量,根据所述信息拼接向量和预设的属性编码器得到所述评论文档的属性标签和属性标签向量,包括步骤:
获取所述语料库中预定义属性下的K×m个所述种子词;其中,K为预定义属性的数量,m为每个预定义属性下种子词的数量;
根据所述种子词和已训练的词嵌入网络模型,得到所述种子词对应的词向量sj;其中,j用于指代不同的种子词,sj表示第j个种子词对应的词向量,sj∈Rd,d表示词向量的维度,sj∈Rd表示sj是一个d行1列的矩阵,R是矩阵的象征表示;
获取第i篇所述评论文档对应第j个种子词的权重λ
ij,根据所述权重λ
ij对所述评论文档中所述种子词对应的词向量s
j进行加权平均,得到所述种子词信息向量g
i;其中,
i用于指代不同的评论文档,r
i表示第i篇所述评论文档对应的第一词袋表示,j∈r
i表示第j个种子词在第i篇评论文档对应的第一词袋表示中;
拼接所述全局信息向量li和种子词信息向量gi得到信息拼接向量li;gi;
将所述信息拼接向量li;gi输入预设的第二多层感知机,获取所述评论文档的属性分布向量αi;其中,αi=MLP2(li;gi)=softmax(Wa·[li;gi]+ba),MLP2表示第二多层感知机,Wa∈RK×2d和ba∈RK是可学习的参数;
根据所述评论文档的属性分布向量αi和预设的Gumbel-Softmax采样算法,获取所述评论文档的属性标签向量zi和属性标签;其中,zi∈RK是一种近似独热码形式的向量,代表了第i篇所述评论文档的属性标签。
可选的,所述根据所述属性标签对所述全局信息向量进行归一化处理,得到归一化向量;根据所述归一化向量和预设的辅助编码器,获取所述评论文档的辅助语义信息向量,包括步骤:
根据所述属性标签对所述全局信息向量li进行归一化处理,得到所述归一化向量fi;其中,i用于指代不同的评论文档;
将所述归一化向量fi输入预设的第三多层感知机,计算高斯先验分布的均值μi和方差σi;其中,μi=MLP3(fi)=tanh(Wμ·fi+bμ),logσi 2=MLP3(f)=tanh(Wσ·fi+bσ),Wμ,bμ和Wσ,bσ是可学习的参数;
根据所述均值μi和所述方差σi,得到所述评论文档的辅助语义信息向量hi;其中,hi=σi+ξ·μi,hi∈Rd,d表示词向量的维度,R是矩阵的象征表示,ξ由标准高斯分布ξ∈N(0,采样得到,ξ是服从均值为0,方差为1的标准高斯分布的随机变量的某一采样值。
可选的,所述根据所述属性标签对所述全局信息向量li进行归一化处理,得到所述归一化向量fi,包括步骤:
根据所述属性标签对所述语料库中的所有评论文档进行归类,得到第i篇所述评论文档属于第k类的整体语义向量
其中,k∈1,2,...K,K表示所述语料库中共有K个预定义属性;
根据第i篇所述评论文档属于第k类的整体语义向量
计算每个类的平均向量ε
k和标准差向量δ
k;其中,
n
k表示第k类的评论文档的数量;
根据所述评论文档的整体语义向量
所述平均向量ε
k和所述标准差向量δ
k,得到所述归一化向量f
i;其中,
f
i k表示第i篇所述评论文档属于第k类的归一化向量。
可选的,所述将所述辅助语义信息向量作为查询向量,根据所述种子词对应的词向量和预设注意力机制,更新所述评论文档中所述种子词的权重,包括步骤:
将所述辅助语义信息向量hi作为查询向量,根据所述辅助语义信息向量hi和所述种子词对应的词向量sj以及预设的注意力机制计算公式,更新所述评论文档中的所述种子词权重;其中,预设的注意力机制计算公式为:
i用于指代不同的评论文档,λij表示更新后的第i篇所述评论文档对应第j个种子词的权重,U,Wh,Ws为可学习的参数,K×m表示K×m个所述种子词。
可选的,所述获取属性矩阵,根据所述属性矩阵和预设的语义解码器对所述属性标签向量和所述辅助语义信息向量进行解码,获取所述文档语义向量,包括步骤:
对每个所述预定义属性下的所有所述种子词的词向量进行平均池化,得到每个所述预定义属性下的平均种子词词向量e
k;其中,
m表示第k个属性类的种子词数,
表示第k个属性类的第j个种子词的词向量,
表示第k个属性类的所有种子词,j∈a s
kp表示第k个属性类的所有种子词之中包括第j个种子词;
根据所述平均种子词词向量初始化所述属性矩阵Ea;其中,Ea∈Rd×K表示Ea是一个d行K列的矩阵,R是矩阵的象征表示,d表示种子词的词向量的维度,K表示所述语料库中共有K个预定义属性;
根据所述属性矩阵Ea将所述属性标签向量zi映射到高维度语义空间进行第一解码,得到第i篇所述评论文档的属性向量ti;其中,ti=Ea·zi T;
根据所述属性向量ti和所述辅助语义信息向量hi进行第二解码,得到所述文档语义向量Si;其中,Si=Ws·[ti;hi]+bs,“;”表示拼接,Ws和bs为可学习的模型参数。
可选的,所述获取词表词向量矩阵,对所述词表词向量矩阵和所述文档语义向量解码重构,得到所述评论文档的第二词袋表示,包括步骤:
根据词表内所有词对应的词向量获取所述词表词向量矩阵Ew;其中,Ew∈Rd×V表示Ew是一个d行V列的矩阵,R是矩阵的象征表示,V表示词表中词的数量,d表示词向量的维度;
对所述词表词向量矩阵Ew和所述文档语义向量Si解码重构,得到所述评论文档的第二词袋表示ri';其中,i用于指代不同的评论文档,ri'=softmax(Ew·Si+bw),bw为可学习的参数。
可选的,所述根据所述第二词袋表示和第一词袋表示计算重构误差,根据所述重构误差和预设的优化算法,更新目标参数,包括步骤:
根据所述第二词袋表示ri'和第一词袋表示ri计算重构误差LELBO(r);其中,i用于指代不同的评论文档,r表示全部所述评论文档的词袋表示的集合,LELBO(r)表示对全部所述评论文档的词袋表示进行计算重构误差;
根据所述重构误差求解所述目标参数对应的梯度,通过预设的梯度反传算法更新所述目标参数。
可选的,所述根据所述属性矩阵和所述词表词向量矩阵,得到属性-词分布矩阵,根据属性-词分布矩阵提取所述评论文档的属性词,包括步骤:
根据所述属性矩阵Ea的转置、所述词表词向量矩阵Ew和预设的概率分类函数,得到属性-词分布矩阵β;其中,β=softmax(Ea T·Ew),属性-词分布矩阵中的值表示不同词在预定义属性下的出现概率;
根据所述属性-词分布矩阵β,获取所述出现概率满足预设提取条件的属性词。
相较于现有的技术,本发明实施例通过获取语料库中的评论文档以及所述评论文档对应的第一词袋表示,根据所述评论文档对应的第一词袋表示和预设的第一多层感知机,得到所述评论文档对应的全局信息向量;获取所述语料库的多个预定义属性下的种子词、所述种子词对应的词向量以及不同所述评论文档中每个种子词的权重,根据所述权重对所述评论文档中所述种子词的词向量进行加权平均,得到种子词信息向量;拼接所述全局信息向量和种子词信息向量得到信息拼接向量,根据所述信息拼接向量和预设的属性编码器得到所述评论文档的属性标签和属性标签向量;根据所述属性标签对所述全局信息向量进行归一化处理,得到归一化向量;根据所述归一化向量和预设的辅助编码器,获取所述评论文档的辅助语义信息向量;将所述辅助语义信息向量作为查询向量,根据所述种子词对应的词向量和预设注意力机制,更新所述评论文档中所述种子词的权重;获取属性矩阵,根据所述属性矩阵和预设的语义解码器对所述属性标签向量和所述辅助语义信息向量进行解码,获取所述文档语义向量;获取词表词向量矩阵,对所述词表词向量矩阵和所述文档语义向量解码重构,得到所述评论文档的第二词袋表示;根据所述第二词袋表示和第一词袋表示计算重构误差,根据所述重构误差和预设的优化算法更新目标参数,重复执行上述步骤,直至满足终止条件;其中,所述目标参数包括所述第一多层感知机、所述属性编码器、所述辅助编码器、所述注意力机制、所述语义解码器以及所述对所述词表词向量矩阵和所述文档语义向量解码重构中使用的所有参数以及所述属性矩阵和所述词表词向量矩阵;根据所述属性矩阵和所述词表词向量矩阵,得到属性-词分布矩阵,根据属性-词分布矩阵提取所述评论文档的属性词。本申请实施例提出的属性词提取方法,一方面提出了双编码器的神经网主题模型结构,同时使用预设的属性编码器和辅助编码器进行评论文档的编码,解决了无法编码评论文档中情感表达偏差的问题,另一方面引入弱监督的种子词信息,提升双编码器神经网主题模型的学习效果,并且引入知识蒸馏思想,将属性编码器和辅助编码器作为知识蒸馏的教师模型和学生模型,实现双编码器的联合学习,通过将辅助编码器获取到的辅助语义信息向量作为查询向量,根据所述种子词对应的词向量和预设注意力机制,更新所述评论文档中所述种子词的权重,产生新的属性标签,属性编码器再在利用新的属性标签产生新的辅助语义信息向量,进行种子词权重的迭代更新,从而基于上述方法精准地提取评论文本中的属性词,提升细粒度情感分析的准确性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
为了更好地理解和实施,下面结合附图详细说明本发明。
附图说明
图1为本发明一个示例性实施例提供的属性词提取方法的流程示意图;
图2为本发明一个示例性实施例提供的属性词提取方法中S102的流程示意图;
图3为本发明一个示例性实施例提供的归一化操作的示意图;
图4为本发明一个示例性实施例提供的属性词提取方法中S103的流程示意图;
图5为本发明一个示例性实施例提供的属性词提取方法中S105的流程示意图;
图6为本发明一个示例性实施例提供的属性词提取方法中S106的流程示意图;
图7为本发明一个示例性实施例提供的属性词提取方法中S107的流程示意图;
图8为本发明一个示例性实施例提供的属性词提取方法的整体实现过程示意图;
图9为本发明一个示例性实施例提供的属性词提取装置的结构示意图;
图10为本发明一个示例性实施例提供的属性词提取设备的结构示意图。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本发明相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本发明的一些方面相一致的装置和方法的例子。
在本发明使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本发明。在本发明和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。
应当理解,尽管在本发明可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本发明范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的特定目标“如果”/“若”可以被解释成为“在……时”或“当……时”或“响应于确定”。
请参阅图1,图1为本发明一个示例性实施例提供的属性词提取方法的流程示意图,所述方法由提取设备执行,包括如下步骤:
S101:获取语料库中的评论文档以及所述评论文档对应的第一词袋表示,根据所述评论文档对应的第一词袋表示和预设的第一多层感知机,得到所述评论文档对应的全局信息向量。
属性词提取设备(以下简称提取设备)获取语料库中的评论文档以及所述评论文档对应的第一词袋表示,并根据所述评论文档对应的第一词袋表示和预设的第一多层感知机,得到所述评论文档对应的全局信息向量。
其中,所述语料库中存放的是在语言的实际使用中真实出现过的评论文档,其是进行情感语义分析的基础数据库。
在本申请实施例中,所述评论文档特指在电商平台下由用户发表的评论所组成的文档,在其他可选实施例中,所述评论文档也可以为其他情境下出现过的文档,在此不做限定。
所述评论文档的第一词袋表示为评论文档中出现的每个词表中词的个数所构成的向量。
所述预设的第一多层感知机是一种前馈神经网络模型,包括输入层,隐藏层和输出层,在本申请实施例中,隐藏层设置为1层,在其他可选的实施例中,可以对隐藏层的个数进行合理调整。
所述预设的第一多层感知机可以预先存储在所述提取设备中,提取设备将评论文档对应的第一词袋表示输入预设的第一多层感知机,得到所述评论文档对应的全局信息向量。
所述预设的第一多层感知机也可以存储在与所述提取设备建立网络连接的外部设备中,提取设备发送所述评论文档对应的第一词袋表示至所述外部设备中,再接收所述外部设备返回的评论文档对应的全局信息向量。
具体地,在一个可选的实施例中,提取设备先获取语料库中的N篇评论文档以及第i篇所述评论文档对应的第一词袋表示
其中,
表示第i篇所述评论文档中第j个词的出现次数,V表示词表中词的数量。
再将所述评论文档对应的第一词袋表示ri输入预设的第一多层感知机,得到所述评论文档对应的全局信息向量li;其中,li=MLP1(ri),MLP1()表示第一多层感知机。
S102:获取所述语料库的多个预定义属性下的种子词、所述种子词对应的词向量以及不同所述评论文档中每个种子词的权重,根据所述权重对所述评论文档中所述种子词的词向量进行加权平均,得到种子词信息向量;拼接所述全局信息向量和种子词信息向量得到信息拼接向量,根据所述信息拼接向量和预设的属性编码器得到所述评论文档的属性标签和属性标签向量。
提取设备首先获取所述语料库的多个预定义属性下的种子词、所述种子词对应的词向量以及不同所述评论文档中每个种子词的权重,根据所述权重对所述评论文档中所述种子词的词向量进行加权平均,得到种子词信息向量。
所述语料库中预定义了多个属性,每个属性下具有多个词,通过预设的筛选策略,得到每个属性下的高频属性词作为种子词,这些种子词能够为学习评论文档的属性分布提供有效的弱监督信息。
所述种子词的词向量是将种子词映射到向量空间,得到的种子词对应的向量表示。具体地,可以采用现有的word2vec、fasstext等词向量表示方法获取种子词的词向量。
所述评论文档中每个种子词都具有一个对应的权重,初始权重是预先设置并存储好的,在本申请实施例中,种子词的初始权重都是相等的,随着后续迭代的进行,种子词的权重将不断被更新。提取设备可以根据种子词的权重对种子词的词向量进行加权平均,得到种子词信息向量。
为更有效地发挥种子词的弱监督作用,提取设备可以将全局信息向量与种子词信息向量进行拼接,得到信息拼接向量,之后,再将信息拼接向量输入到预设的属性编码器中,学习文档的属性分布,得到评论文档的属性标签和属性标签向量。其中,所述预设的属性编码器是指用于编码评论文档中蕴含的属性信息的编码器。
在一个可选的实施例中,请参阅图2,步骤S102包括步骤S1021~S1026,具体如下:
S1021:获取所述语料库中预定义属性K下的K×m个所述种子词。
提取设备获取所述语料库中预定义属性K下的K×m个所述种子词。
S1022:根据所述种子词和已训练的词嵌入网络模型,得到所述种子词对应的词向量sj;其中,sj∈Rd,d表示词向量的维度。
在本实施例中,所述已训练的词嵌入网络模型为Glove模型,在Glove模型中具有词语词向量之间的对应关系,根据输入所述Glove模型的词,能够得到对应的词向量。
提取设备将种子词输入已训练的词嵌入网络模型,得到所述种子词对应的词向量sj。
S1023:获取第i篇所述评论文档对应第j个种子词的权重λ
ij,根据所述权重λ
ij对所述评论文档中所述种子词对应的词向量s
j进行加权平均,得到所述种子词信息向量g
i;其中,
r
i表示第i篇所述评论文档对应的第一词袋表示。
S1024:拼接所述全局信息向量li和种子词信息向量gi得到信息拼接向量li;gi。
在本实施例中,提取设备将全局信息向量li和种子词信息向量gi进行首尾拼接,得到信息拼接向量li;gi。符号“;”表示拼接。
S1025:将所述信息拼接向量li;gi输入预设的第二多层感知机,获取所述评论文档的属性分布向量αi;其中,αi=MLP2(li;gi)=softmax(Wa·[li;gi]+ba),MLP2表示第二多层感知机,Wa∈RK×2d和ba∈RK是可学习的参数。
所述预设的第二多层感知机的隐藏层也为一层,激活函数为softmax()。
提取设备将所述信息拼接向量li;gi输入预设的第二多层感知机后,能够获取所述评论文档的属性分布向量αi。
S1026:根据所述评论文档的属性分布向量αi和预设的Gumbel-Softmax采样算法,获取所述评论文档的属性标签向量zi和属性标签;其中,zi∈RK是一种近似独热码形式的向量,代表了第i篇所述评论文档的属性标签。
所述预设的Gumbel-Softmax采样算法是先将n维的属性分布向量αi生成对应的n个独立样本ε1,ε2,...,εn,其中εi~U(0,1),然后计算Gi=-log(-log(εi))。
之后,获取添加了Gumbel噪声的新向量α'=[α1+G1,α2+G2,...,αn+Gn]。
接下来,使用Gumbel-Softmax函数计算类别分布,从而获取属性标签向量zi,Gumbel-Softmax函数如下:
其中,τ是温度参数,当τ→0时,Gumbel-Softmax函数将趋近于argmax();当τ→1时,Gumbel-Softmax函数将趋近于softmax()。
需要说明的是属性标签和属性标签向量的区别,假设属性标签1是食物,属性标签2是价格,属性标签3是服务,则这3个属性标签可以转化成向量形式如下:[1,0,0],[0,1,0],[0,0,1],这是独热码形式的向量表示。
而属性标签向量是由Gumbel-Softmax函数计算得到的向量,它的形式近似于独热码形式,例如:[0.991,0.001,0.008],[0.007,0.980,0.013],[0.005,0.011,0.984]。属性标签向量与属性标签转化成的向量形式是非常近似的,因此可以用zi∈RK这种近似独热码形式的向量,代表第i篇评论文档的属性标签。
S103:根据所述属性标签对所述全局信息向量进行归一化处理,得到归一化向量;根据所述归一化向量和预设的辅助编码器,获取所述评论文档的辅助语义信息向量。
提取设备根据属性标签对所述全局信息向量进行归一化处理,得到归一化向量。在归一化前的表征空间中,不同属性类的文档中心之间距离较远,即向量表示主要体现类间差异。经过归一化后,向量能更好的体现类内差异,即捕捉属性之外的语义信息。
请参阅图3,图3为本发明一个示例性实施例提供的归一化操作的示意图,可以看出归一化的过程就是一个从整体语义表征空间至归一化表征空间的过程,简单来说,归一化操作能够去掉评论文档中的属性信息,从而能够保证输入属性编码器和辅助编码器中的信息是不同的,确保两个编码器能够学习到评论文档中的不同信息。
之后,提取设备再根据归一化向量和预设的辅助编码器,获取所述评论文档的辅助语义信息向量。其中,所述预设的辅助编码器是负责编码评价对象、情感畸形等其他补充语义信息的编码器。
在一个可选的实施例中,为更准确地获取到评论文文档的辅助语义信息向量,请参阅图4,步骤S103包括步骤S1031~S1033,具体如下:
S1031:根据所述属性标签对所述全局信息向量li进行归一化处理,得到所述归一化向量fi。
具体地,提取设备首先根据所述属性标签对所述语料库中的所有评论文档进行归类,得到第i篇所述评论文档属于第k类的整体语义向量
其中,k∈1,2,...K,K表示所述语料库中共有K个预定义属性。
之后,根据第i篇所述评论文档属于第k类的整体语义向量
计算每个类的平均向量ε
k和标准差向量δ
k;其中,
n
k表示第k类的评论文档的数量;
最后,提取设备根据所述评论文档的整体语义向量
所述平均向量ε
k和所述标准差向量δ
k,得到所述归一化向量f
i;其中,
f
i k表示第i篇所述评论文档属于第k类的归一化向量。
S1032:将所述归一化向量fi输入预设的第三多层感知机,计算高斯先验分布的均值μi和方差σi;其中,μi=MLP3(fi)=tanh(Wμ·fi+bμ),logσi 2=MLP3(f)=tanh(Wσ·fi+bσ),Wμ,bμ和Wσ,bσ是可学习的参数。
所述预设的第三多层感知机的激活层也为一层,激活函数为tanh。
提取设备将所述归一化向量fi输入预设的第三多层感知机,计算高斯先验分布的均值μi和方差σi。
S1033:根据所述均值μi和所述方差σi,得到所述评论文档的辅助语义信息向量hi;其中,hi=σi+ξ·μi,hi∈Rd,d表示词向量的维度,ξ由标准高斯分布ξ∈N(0,I)采样得到。
提取设备根据所述均值μi和所述方差σi,得到所述评论文档的辅助语义信息向量hi。所述辅助语义信息向量hi可用于步骤更新种子词的权重。
S104:将所述辅助语义信息向量作为查询向量,根据所述种子词对应的词向量和预设注意力机制,更新所述评论文档中所述种子词的权重。
提取设备将所述辅助语义信息向量hi作为查询向量,根据所述辅助语义信息向量hi和所述种子词对应的词向量sj以及预设的注意力机制计算公式,更新所述评论文档中的所述种子词权重;其中,预设的注意力机制计算公式为:
表示更新后的第i篇所述评论文档对应第j个种子词的权重,U,W
h,W
s为可学习的参数,K×m表示K×m个所述种子词。
该处体现了知识蒸馏的思想,将属性编码器和辅助编码器作为知识蒸馏的教师模型和学生模型,实现双编码器的联合学习,通过将辅助编码器获取到的辅助语义信息向量作为查询向量,根据所述种子词对应的词向量和预设注意力机制,更新所述评论文档中所述种子词的权重,之后迭代过程中利用新的权重再产生新的属性标签,属性编码器再在利用新的属性标签产生新的辅助语义信息向量,从而再一次循环实现种子词权重的更新。
S105:获取属性矩阵,根据所述属性矩阵和预设的语义解码器对所述属性标签向量和所述辅助语义信息向量进行解码,获取所述文档语义向量。
本申请实施例中,将种子词应用到语义解码器中实现属性矩阵的初始化过程,并根据属性矩阵对属性标签向量和辅助语义信息向量逐步进行解码,从而获取所述文档语义向量。
在一个可选的实施例中,为准确地获取文档语义向量,请参阅图5,步骤S105包括步骤S1051~S1054,具体如下:
S1051:对每个所述预定义属性下的所有所述种子词的词向量进行平均池化,得到每个所述预定义属性下的平均种子词词向量e
k;其中,
m表示第k个属性类的种子词数,
表示第k个属性类的第j个种子词的词向量,aspect
k表示第k个属性类的所有种子词。
所述平均池化对同一个属性类下的种子词的词向量进行求和平均,从而得到每个预定义属性下的平均种子词词向量。
S1052:根据所述平均种子词词向量初始化所述属性矩阵Ea;其中,Ea∈Rd×K,d表示种子词的词向量的维度,K表示所述语料库中共有K个预定义属性。
所述初始化操作可以理解为是将各个平均种子词词向量合为一个矩阵。
S1053:根据所述属性矩阵Ea将所述属性标签向量zi映射到高维度语义空间进行第一解码,得到第i篇所述评论文档的属性向量ti;其中,ti=Ea·zi T。
提取设备根据所述属性矩阵Ea将所述属性标签向量zi映射到高维度语义空间进行第一解码,得到第i篇所述评论文档的属性向量ti。具体地,是将属性标签向量zi的转置与属性矩阵Ea点乘,得到所述评论文档的属性向量ti。
S1054:根据所述属性向量ti和所述辅助语义信息向量hi进行第二解码,得到所述文档语义向量Si;其中,Si=Ws·[ti;hi]+bs,“;”表示拼接,Ws和bs为可学习的模型参数。
提取设备根据所述属性向量ti和所述辅助语义信息向量hi进行第二解码,得到所述文档语义向量Si。具体地,是将属性向量ti和所述辅助语义信息向量hi进行拼接,之后再进行可学习的模型参数Ws和bs进行融合得到所述文档语义向量Si。
S106:获取词表词向量矩阵,对所述词表词向量矩阵和所述文档语义向量解码重构,得到所述评论文档的第二词袋表示;根据所述第二词袋表示和第一词袋表示计算重构误差,根据所述重构误差和预设的优化算法更新目标参数,重复执行上述步骤,直至满足终止条件;其中,所述目标参数包括所述第一多层感知机、所述属性编码器、所述辅助编码器、所述注意力机制、所述语义解码器以及所述对所述词表词向量矩阵和所述文档语义向量解码重构中使用的所有参数以及所述属性矩阵和所述词表词向量矩阵。
首先,提取设备获取词表词向量矩阵,对所述词表词向量矩阵和所述文档语义向量解码重构,得到所述评论文档的第二词袋表示。
具体地,提取设备根据词表内所有词对应的词向量获取所述词表词向量矩阵E
w;其中,E
w∈R
d×V,V表示词表中词的数量,d表示词向量的维度。再对所述词表词向量矩阵E
w和所述文档语义向量S
i解码重构,得到所述评论文档的第二词袋表示r
i';其中,
b
w为可学习的参数。
之后,提取设备根据所述第二词袋表示和第一词袋表示计算重构误差,根据所述重构误差和预设的优化算法更新目标参数,重复执行上述步骤S101~S105,直至满足终止条件。
其中,所述终止条件是迭代次数阈值,其是一个超参数,在一个可选的实施例中,该迭代次数阈值通常设置为3、4或5,在其他可选的实施例中,也可以根据属性词提取效果进行调整。
所述预设的优化算法可以为SGD,Adagrad或Adam等,均为现有算法,在此不再赘述。在本申请实施例中,选用Adam算法进行优化更新。
具体地,为了更好地优化目标参数,请参阅图6,步骤S106包括步骤S1061~S1062,具体如下:
S1061:根据所述第二词袋表示ri'和第一词袋表示ri计算重构误差LELBO(r);其中,r表示全部所述评论文档的集合,表示对全部所述评论文档进行计算重构误差。
提取设备根据所述第二词袋表示ri'、第一词袋表示ri和预设的ELBO计算公式,得到重构误差LELBO(r)。其中,预设的ELBO计算公式为现有的损失函数,在此不做赘述。
S1062:根据所述重构误差求解所述目标参数对应的梯度,通过预设的梯度反传算法更新所述目标参数。
提取设备对每个目标参数对应的梯度
之后通过预设的梯度反传算法更新所述目标参数,更新后的目标参数求解公式如下:
其中,η表示学习率,通常设定为0.0001~0.01,用于控制学习的速度。
S107:根据所述属性矩阵和所述词表词向量矩阵,得到属性-词分布矩阵,根据属性-词分布矩阵提取所述评论文档的属性词。
提取设备根据所述属性矩阵和所述词表词向量矩阵,得到属性-词分布矩阵,再根据属性-词分布矩阵提取所述评论文档的属性词。其中,所述属性-词分布矩阵中的值能够表示不同词在预定义属性下的出现概率,概率越大则标识该词属于该属性的概率越大,提取的方式就是在每个属性下选择概率值更大的词作为评论文档的属性词。
在一个可选的实施例中,为准确地获取评论文档的属性词,请参阅图7,步骤S107包括步骤S1071~S1072,具体如下:
S1071:根据所述属性矩阵Ea的转置、所述词表词向量矩阵Ew和预设的概率分类函数,得到属性-词分布矩阵β;其中,β=softmax(Ea T·Ew),属性-词分布矩阵中的值表示不同词在预定义属性下的出现概率。
提取设备所述属性矩阵Ea的转置与所述词表词向量矩阵Ew进行点乘,之后在通过预设的概率分类函数,得到属性-词分布矩阵β。
对于属性-词分布矩阵β来说,第k维度的第v个值,表示第v个词属于第k个预定义属性的概率大小。
S1072:根据所述属性-词分布矩阵β,获取所述出现概率满足预设提取条件的属性词。
所述预设的提取条件,可以是概率值排名前10的词作为预定义属性下的属性词,在其他可选的实施例中,可以合理调整提取条件在此不做限定。
这里以以食物属性为例,牛肉、鸡尾酒、鸭、开胃菜等都属于语义相关度高的词,因而,在属性-词分布矩阵β中,食物属性下上述词语的出现概率会较高,而收费,费用,气氛就属于语义不相关的词,因而,在属性-词分布矩阵β中,食物属性下上述词语的出现概率会较低。故,提取设备根据根据所述属性-词分布矩阵β,能够找到更贴合属性语义的属性词。
请参阅图8,图8为本发明一个示例性实施例提供的属性词提取方法的整体实现过程示意图,从该图中能够清晰的了解到属性词提取方法的整体流程。
相较于现有的技术,本发明实施例通过获取语料库中的评论文档以及所述评论文档对应的第一词袋表示,根据所述评论文档对应的第一词袋表示和预设的第一多层感知机,得到所述评论文档对应的全局信息向量;获取所述语料库的多个预定义属性下的种子词、所述种子词对应的词向量以及不同所述评论文档中每个种子词的权重,根据所述权重对所述评论文档中所述种子词的词向量进行加权平均,得到种子词信息向量;拼接所述全局信息向量和种子词信息向量得到信息拼接向量,根据所述信息拼接向量和预设的属性编码器得到所述评论文档的属性标签和属性标签向量;根据所述属性标签对所述全局信息向量进行归一化处理,得到归一化向量;根据所述归一化向量和预设的辅助编码器,获取所述评论文档的辅助语义信息向量;将所述辅助语义信息向量作为查询向量,根据所述种子词对应的词向量和预设注意力机制,更新所述评论文档中所述种子词的权重;获取属性矩阵,根据所述属性矩阵和预设的语义解码器对所述属性标签向量和所述辅助语义信息向量进行解码,获取所述文档语义向量;获取词表词向量矩阵,对所述词表词向量矩阵和所述文档语义向量解码重构,得到所述评论文档的第二词袋表示;根据所述第二词袋表示和第一词袋表示计算重构误差,根据所述重构误差和预设的优化算法更新目标参数,重复执行上述步骤,直至满足终止条件;其中,所述目标参数包括所述第一多层感知机、所述属性编码器、所述辅助编码器、所述注意力机制、所述语义解码器以及所述对所述词表词向量矩阵和所述文档语义向量解码重构中使用的所有参数以及所述属性矩阵和所述词表词向量矩阵;根据所述属性矩阵和所述词表词向量矩阵,得到属性-词分布矩阵,根据属性-词分布矩阵提取所述评论文档的属性词。本申请实施例提出的属性词提取方法,一方面提出了双编码器的神经网主题模型结构,同时使用预设的属性编码器和辅助编码器进行评论文档的编码,解决了无法编码评论文档中情感表达偏差的问题,另一方面引入弱监督的种子词信息,提升双编码器神经网主题模型的学习效果,并且引入知识蒸馏思想,将属性编码器和辅助编码器作为知识蒸馏的教师模型和学生模型,实现双编码器的联合学习,通过将辅助编码器获取到的辅助语义信息向量作为查询向量,根据所述种子词对应的词向量和预设注意力机制,更新所述评论文档中所述种子词的权重,产生新的属性标签,属性编码器再在利用新的属性标签产生新的辅助语义信息向量,进行种子词权重的迭代更新,从而基于上述方法精准地提取评论文本中的属性词,提升细粒度情感分析的准确性。
请参见图9,图9为本发明一个示例性实施例提供的属性词提取装置的结构示意图。包括的各单元用于执行图1至图2和图4至图7对应的实施例中的各步骤,具体请参阅图1至图2和图4至图7各自对应的实施例中的相关描述。为了便于说明,仅示出了与本实施例相关的部分。参见图9,属性词提取装置9包括:
全局信息获取单元91,用于获取语料库中的评论文档以及所述评论文档对应的第一词袋表示,根据所述评论文档对应的第一词袋表示和预设的第一多层感知机,得到所述评论文档对应的全局信息向量;
属性标签获取单元92,用于获取所述语料库的多个预定义属性下的种子词、所述种子词对应的词向量以及不同所述评论文档中每个种子词的权重,根据所述权重对所述评论文档中所述种子词的词向量进行加权平均,得到种子词信息向量;拼接所述全局信息向量和种子词信息向量得到信息拼接向量,根据所述信息拼接向量和预设的属性编码器得到所述评论文档的属性标签和属性标签向量;
辅助语义信息获取单元93,用于根据所述属性标签对所述全局信息向量进行归一化处理,得到归一化向量;根据所述归一化向量和预设的辅助编码器,获取所述评论文档的辅助语义信息向量;
权重更新单元94,用于将所述辅助语义信息向量作为查询向量,根据所述种子词对应的词向量和预设注意力机制,更新所述评论文档中所述种子词的权重;
文档语义获取单元95,用于获取属性矩阵,根据所述属性矩阵和预设的语义解码器对所述属性标签向量和所述辅助语义信息向量进行解码,获取所述文档语义向量;
参数更新单元96,用于获取词表词向量矩阵,对所述词表词向量矩阵和所述文档语义向量解码重构,得到所述评论文档的第二词袋表示;根据所述第二词袋表示和第一词袋表示计算重构误差,根据所述重构误差和预设的优化算法更新目标参数,重复执行上述步骤,直至满足终止条件;其中,所述目标参数包括所述第一多层感知机、所述属性编码器、所述辅助编码器、所述注意力机制、所述语义解码器以及所述对所述词表词向量矩阵和所述文档语义向量解码重构中使用的所有参数以及所述属性矩阵和所述词表词向量矩阵;
提取单元97,用于根据所述属性矩阵和所述词表词向量矩阵,得到属性-词分布矩阵,根据属性-词分布矩阵提取所述评论文档的属性词。
请参见图10,图10是本发明一个示例性实施例提供的属性词提取设备的示意图。如图10所示,所述属性词提取设备10可包括,但不仅限于,处理器1000、存储器1001和存储在存储器1001中的计算机程序1002,所述计算机程序1002为属性词提取程序。本领域技术人员可以理解,图10仅仅是属性词提取设备10的示例,并不构成对属性词提取设备10的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如所述属性词提取设备10还可以包括输入输出设备、网络接入设备、总线等。
所称处理器1000可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
所述存储器1001可以是所述属性词提取设备10的内部存储单元,例如属性词提取设备10的硬盘或内存。所述存储器1001也可以是所述属性词提取设备10的外部存储设备,例如所述属性词提取设备10上配备的插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。进一步地,所述存储器1001还可以既包括所属性词提取设备10的内部存储单元也包括外部存储设备。所述存储器1001用于存储所述计算机程序以及所述属性词提取设备所需的其他程序和数据。所述存储器1001还可以用于暂时地存储已经输出或者将要输出的数据。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
在本发明所提供的实施例中,应该理解到,所揭露的装置/终端设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/终端设备实施例仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的模块/单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实现上述实施例方法中的全部或部分流程,也可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、U盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。本发明并不局限于上述实施方式,如果对本发明的各种改动或变形不脱离本发明的精神和范围,倘若这些改动和变形属于本发明的权利要求和等同技术范围之内,则本发明也意图包含这些改动和变形。