APP下载

面向问答文本的属性分类方法

2019-05-24江明奇沈忱林李寿山

中文信息学报 2019年4期
关键词:语料类别分类

江明奇,沈忱林,李寿山

(苏州大学 计算机科学与技术学院,江苏 苏州 215006)

0 引言

随着互联网行业的兴起,亚马逊、京东和淘宝等众多电子商务平台提供了客户问答平台。用户在这些平台上可以对感兴趣商品的属性进行提问,购买过相应商品的用户可以给出回答。由于该方式的评价信息难以大规模造假,从而使得问答评论的方式比传统评论方式更为可靠。近些年来,针对属性级情感分析任务的研究越来越多,该任务旨在做出更细粒度方面的意见挖掘[1]。属性分类任务则是属性级情感分析任务的基础与前提,旨在获得文中所提到的相关属性[2],本文面向问答文本开展属性分类任务研究。据我们所知,此前还未有相关论文进行面向问答文本的属性分类方法研究。表1给出了一些问答样例及其相关的属性类别。从表1可以看出,问答文本中的属性分类需要答案包涵问题提到的相关属性才可计入。如果答案没有回答到问题的相关属性,则该问答文本不带有属性信息。

表1 淘宝“问大家”中样例及其所属的属性类别

针对问答文本的属性分类,一种直接的方法是把问答文本和其他文本同质对待,利用已有的机器学习方法来进行属性分类。目前, 属 性分类研究中性能表现较好的方法是基于深度模型学习的分类模型。这些模型使用词向量作为词的表示,并使用词向量的序列来代表句子或者段落[3]。然而,本文的研究对象是问答文本,问答文本同普通文本存在较大差异。例如,通过分析语料,我们发现属性的描述一般出现在问题文本上,而答案文本较少体现属性类别。因此,本文提出了一种基于多维文本表示的属性分类方法,具体使用长短时记忆(long short-term memory, LSTM)神经网络[4],并结合答案和问题文本进行属性分类。具体而言,我们先把问题切分为多个子句,并和答案文本一起作为多文本输入;再针对每一个文本学习一个LSTM模型表示;然后通过Merge层来融合多个LSTM模型生成多维文本表示;最后,使用卷积层来对这个表示进行特征提取,并获得最终分类结果。实验结果证实,本文提出的属性分类方法能有效提高面向问答文本的属性分类性能。

本文结构安排如下: 第一节介绍了属性分类、聚类等任务的相关工作进展;第二节具体介绍本文提出的基于多维文本的属性分类方法;第三节展示实验设置、实验结果和相关分析;第四节为本文内容的总结及接下来的工作展望。

1 相关工作

1.1 属性抽取、聚类

近些年来,许多研究者把属性抽取任务建模为聚类、抽取问题,并在产品服务评论领域和新闻领域取得了一定的效果。

杨源等[5]用属性归类方式来进行属性抽取。具体而言,杨源等使用了改进的EM算法,并利用了两条自然语言知识进行属性抽取: (1)含有相同字的两个属性有可能是同类属性;(2)同义词的两个属性有可能是同类属性。李桃迎等[6]使用聚类方法进行属性抽取。具体而言,该方法首先对各分类属性按照取值进行划分,得到最初的各聚类成员;然后,通过不断调整寻找最优的融合结果。Xiong等[7]提出一种基于注意力机制的神经网络模型,考虑了属性短语与上下文之间的语义关系来进行属性短语的聚类。

1.2 属性分类

2014年,自然语言处理领域著名的语义评估会议Semantic Evaluation(SemEval)[注]http://alt.qcri.org/semeval2014/task4/提供评论语料并设立了一项属性级情感分析评测任务,该任务针对评论文本进行属性级情感分类、属性分类等[8]。该评测任务提供了餐厅和笔记本电脑这两个领域的语料,共包含531个评论文本、3 054个句子的数据集。Toh等[9]把属性分类任务作为多标签分类任务,并对每个属性做一个二分类任务。针对每一个二元分类任务,作者使用了含有一层隐藏层的神经网络模型,并结合了多元词特征。Khalil等[10]分别使用预训练词模型的CNN分类模型和词袋模型的SVM分类模型,并把这两个分类模型融合,获得了较好的分类效果。Kalchbrenner等[11]提出了一种CNN改进模型,具体在模型中引入广范围CNN层和动态最大池化层。实验结果表明,使用该方法获得了较好的分类结果。

已有的属性分类研究基本为面向评论文本、新闻文本等较普遍的文本,面向问答文本的属性分类方法研究还很缺乏。据我们所知,本文是首次面向问答文本进行属性分类方法研究。

2 基于多维文本的属性分类方法

2.1 语料收集

本文在淘宝的“问大家”中收集了2 296条关于数码领域的问答语料。为了保证较高的标注一致性,在进行语料分析及预标注后,我们定义了一系列的关于数码领域的属性并设计了相应的标注规范。规范如下:

(1) 经过语料的预标注和统计,数码领域相关属性类别: 质量、系统、存储、系统性能、电池等。

(2) 问题中提到上述所提出的类别相关的问题,并且答案明确回答了类别相关的问题时计入。

根据以上标注规范标注者分为两人一组对这些数码领域的问答语料进行了标注,并进行了一致性校对。

数码领域语料的属性分类分布情况,如表2所示。从表2中可以看出,问答文本的各属性类别样本数目差距较大,问答语料中IO和系统性能相关的语料占了较大比重,而计算、功能类别的样本数量较少[12]。

表2 问答文本中各属性分布情况

2.2 问答文本的多维文本表示

与新闻文本、评论文本等文本类型不同,问答文本是由问题文本和答案文本两部分组成, 故有一定的特殊性。在做属性分类任务时,属性的判断主要依据问题,但答案也可以进行一定的辅助。问题文本一般有多个子句,其中一到多句描述了属性相关的内容,没有描述属性相关内容的子句就会有一定的噪音干扰。因此,切分问题来获得更准确的信息是一个很自然的想法。文本表示是该学习方法中的关键部分。我们使用多维文本表示来进行面向问答文本的属性分类方法的实验。

如图1所示,图中每组圆形为词语级维度的表示,包含一系列词向量的表示称为句子级维度的表示,所有子问题句子与答案句子一起形成了问答对的表示,称为问答级维度的表示。

图1 问答对的三维表示

问答级文本包含多个问题文本和一个答案文本。即用工具把问题文本拆分成若干个子问题,并根据语料固定问题的子问题个数为N。

具体而言,使T=(x1,x2,…) 为词的序列,其中每一个xi表示一个词向量。之后,使TQ1到TQN,TA来分别表示第一个子问题到第N个子问题和答案文本。整个QA对可以被表示为 (TQ1,…TQN,TA),这是一个三维的矩阵。

2.3 基础的LSTM和CNN网络

LSTM神经网络避免了传统网络在反向传播过程中所产生的梯度消失问题,并且解决了递归神经网络中的长期依赖问题。Alex Graves[13]于2013年对LSTM模型进行了改良,之后LSTM模型被自然语言处理领域研究者广泛应用到各项研究当中。

LSTM的t时刻的神经单元由式(1)~式(6)计算所示。

其中,σ是非线性激活函数,b是偏置。

2.4 基于Multi-LSTM+CNN模型的属性分类方法

为了有效利用子问题与答案文本,本文提出了基于Multi-LSTM+CNN模型的属性分类方法。即使用LSTM生成每个词序的隐藏特征,并融合它们生成文本的多维表示,并用CNN来提取这个多维表示中的信息。

图2给出了Multi-LSTM+CNN模型的框架,每个子问题文本和答案文本分别经过一个LSTM层生成该文本的隐层表示hQ1-hQN以及hA。

图2 Multi-LSTM+CNN模型

Merge层使用拼接的方法把这些隐层表示结合起来。在拼接的位置上,本文采用了时间步的位置。卷积层接收Merge层的输出来提取特征,并用最大池化层进行进一步的子采样。全连接层用来把池化层的输出进行加权求和,并用激励函数包装,激励函数如式(8)所示。

其中,φ是非线性的激励函数,本文选择“Relu”作为全连接层的激励函数,h*表示全连接层的输出。

Dropout层在训练时会随机忽略网络中的某些节点,这样做可以减少网络中各个节点之间的依赖性,有效防止过拟合,用该层来接收全连接层的输出,如式(9)所示。

其中,D为Dropout操作,p表示可调超参(在网络中保留隐藏单元的概率),hd为Dropout层输出。

最后,使用softmax输出层来对样本进行分类,获得的预测概率值如式(10)所示。

其中,P为预测标签的概率集,选出最大值即为预测标签,Wd为需要学习的权重,bd为偏置。

在模型训练的过程中,我们选择最小化交叉熵误差作为损失函数,如式(11)所示。

其中,N为训练样本的数目,m是预测类别的数量,y是每个类别的预测概率值,该值由输出层的P获得,ti是第i个训练样本的标签值。 ‖·‖F为Frobeniu范数,n是向量通道的数目,W,U,V为不同权重的值,λ是用来惩罚项所对应的权重。

3 实验设计与分析

3.1 实验设置

本文选用淘宝[注]https://www.taobao.com/“问大家”中关于数码领域的问答语料进行实验。该语料分为7个类别,其中各类别的样本个数可从2.1节的表2中得到。本节中,对于所有实验,我们将每个类别的70%的样本划分到训练集,10%的样本划分到验证集,20%的样本划分到测试集,测试样本具体分布如表3所示。

表3 各属性类别测试样本数和剩余样本数

实验中,先使用CoreNLP[注]https://stanfordnlp.github.io/CoreNLP/工具对问题文本和答案文本进行句子切分;再使用Jieba[注]https://pypi.python.org/pypi/jieba/工具来进行文本中文分词。使用深度学习框架Keras[注]http://keras.io/进行LSTM网络和CNN网络的搭建。在使用基于LSTM网络与CNN网络的分类器时,词语特征用词向量来表示。具体而言,利用python的gensim[注]https://radimrehurek.com/gensim/库对淘宝的问答文本进行词向量模型的生成,并使用该词向量进行所有神经网络模型的实验。考虑到实验性能等因素,词向量维度设为200。实验模型各参数如表4所示。

表4 模型中的参数设置

实验中,我们采用正确率(Accuracy)和Macro-F1值作为衡量分类器性能的标准。单类别F1值具体的计算方法,如式(12)所示。

其中,precision 表示精确率, recall 表示召回率。Macro-F1值为各类别F1值的平均值。

3.2 实验结果

我们针对问答文本进行了一些属性分类方法的实验。方法具体如下:

1) LSTM(Q): 对问题文本使用LSTM分类器进行分类。

2) LSTM(A): 对答案文本使用LSTM分类器进行分类。

3) LSTM(Q+A): 对问题答案拼接的文本使用LSTM分类器进行分类。

4) CNN(Q+A): 对问题文本和答案文本拼接,并使用CNN神经网络方式进行属性分类。

5) Multi-LSTM+CNN(Sub-A): 使用本文提出的模型,但针对答案文本进行切分,问题文本不切分进行实验。

6) Multi-LSTM+CNN(Sub-Q): 使用本文提出的模型,针对问题文本进行切分,答案文本不切分进行实验。

7) Multi-LSTM+CNN(Sub-Q and Sub-A): 使用本文提出的模型,但针对问题文本与答案文本均进行切分。

图3展示了各属性分类方法在数码领域问答语料上正确率的比较。可以看出,同样使用了LSTM模型的答案文本在分类正确率上明显低于问题文本。这证明了问题文本的词语特征在属性分类上的重要性,而答案文本的词语特征并不能很好的帮助属性分类。在正确率上,LSTM(Q+A)则对于LSTM(Q)方法没有明显的提升,可以推测直接拼接方式并不能有效利用答案文本的信息。本文同时实现Multi-LSTM+CNN(Sub-A)方法。结果表明,切分答案并没有显著效果,而Multi-LSTM+CNN(Sub-Q)方法较LSTM(Q+A)效果提升显著,证明了面向问答文本时切分问题的理论可以使属性分类效果更好。而Multi-LSTM+CNN(Sub-Q and sub-A)方法效果仅得到了92.7%的正确率,并不如只切分问题。这是因为答案文本中属性相关信息较少,在切分答案文本并融合所有文本时会加入许多噪音。

图3 属性分类方法分类正确率比较

图4为各属性分类方法在测试集上的Macro-F1值结果。从图中可以发现,基准方法中效果最好的是CNN神经网络(Q+A)方法,该方法达到了89.7%的Macro-F1值。与在正确率上一样,LSTM神经网络(Q+A)比LSTM神经网络(Q)在Macro-F1值上也没有较好的提升。该图结果同时表明了本文提出的基于多维文本表示的方法在F1值上相较于其他方法也有明显的优势,Macro-F1值比其他方法中最高的Multi-LSTM+CNN(Sub-Q and sub-A)高1.5个百分点。结果表明我们的基于多维文本表示的方法抓住了问题文本和答案文本之间的关系,并考虑了属性任务在问题文本中一般在某些子句中这个特性,该方法可以有效利用答案文本来对问题文本进行辅助的属性分类。

图4 属性分类方法分类Macro-F1值比较

4 结语

问答文本是一种新颖的文本方式。本文对这种类型文本的处理进行了探索,提出了进行多维文本来表示整个问答对的方法,以得到更好的属性分类效果。该方法首先把问题切分为子句级的问题,之后每个子问题和答案均训练一个LSTM模型形成。通过Merge层融合这些模型,最后使用CNN网络进行特征提取并获得最终结果。实验证明,该方法能有效利用问答文本的逻辑关系,其分类效果优于传统的分类方法。

在未来我们将验证我们的方法在其他领域的有效性,以证明我们方法对于问答文本的普适性。此外,我们将继续探索问答文本的特性,来获得更好的问答对表示,以更有效地利用文本信息来获得更好的分类性能。

猜你喜欢

语料类别分类
基于归一化点向互信息的低资源平行语料过滤方法*
分类算一算
一起去图书馆吧
分类讨论求坐标
濒危语言与汉语平行语料库动态构建技术研究
数据分析中的分类讨论
教你一招:数的分类
对外汉语教学领域可比语料库的构建及应用研究
——以“把”字句的句法语义标注及应用研究为例
多类别复合资源的空间匹配
国内外语用学实证研究比较:语料类型与收集方法