基于自动提取句法模板的情感分析

2019-10-21 02:02卫宇杰潘尔顺
中文信息学报 2019年9期
关键词:句法结构极性句法

潘 浩,卫宇杰,2,潘尔顺,2

(1. 上海交通大学 机械与动力工程学院,上海 200240 2. 上海交通大学 中国质量发展研究院,上海 200240)

0 引言

近年来,凭借在线交互的便捷性与移动设备的迅猛发展,互联网成为了人们表达情感和分享经验的重要平台。人们可以跨越时空表达自己,产生了大量的观点信息,而这些信息无论是对个人、企业还是政府部门,都具有辅助决策的重要作用。以商家和消费者为例,认为可以借鉴评论购买商品的人群占比 82%[1];以企业为例,制造型企业可以从自身产品相关的评论中发现存在的质量问题并加以改进。日本富士通公司开发了从中、日、英三国的论坛和博客中提取涉及企业及其自身产品的评价信息的技术,根据从万维网上抓取的大量用户的评论对自身产品做出正确评价[2];服务型企业可以实时监测服务过程中的文本或语音提升自身服务质量,中金公司开发的智能质检系统,通过实时监测来自客户的语音或评论分析其情感变化,进而给客服人员预警和建议,降低投诉率,提升服务质量;以政府部门为例,2011年的阿拉伯之春运动中,社会媒体中出现了大量包含倾向性的帖子,对区域政治格局产生了重要影响[3]。在研究语料增多与研究意义重大的双重影响下,2000年前后出现的文本情感分析进入了全面发展的快车道,学术成果及其衍生产品或公司呈现爆炸式增长。Google、Microsoft、HP、Amazon、eBay、SAS、Oracle、Adobe、SAP以及国内的BAT等公司都开发了自己的情感分析系统,应用领域也涉及各行各业各层面。

1 相关研究

情感分析也称观点挖掘,目的是从文本中分析出人们对于实体或属性所表达的观点、情感、态度、评价或情绪。根据研究目的或语料的颗粒度,可以将其细分为很多方向,如句子级情感极性分析、短语级情绪分析等,但均可看作分类问题。其研究方法主要包含有监督和无监督两类。

有监督的情感分析方法通过对带有情感标记的文本进行分析训练获取模型。2002年,Pang等首次将朴素贝叶斯和SVM应用到影评的情感分类中[4],奠定了监督学习算法在有监督的情感分析领域的主导地位。众多研究者开始尝试更多的学习算法,训练模型所选的文本特征也由词、词频、词性、短语规则扩展到依存句法关系。代表性工作有: Ng等(2006)使用词性组合(如形容词+名词)作为特征用于模型的训练[5];Chaffar和Inkpen(2011)比较了决策树、朴素贝叶斯和SVM在文档级和句子级上的分类效果,验证了SVM在情感分类中具有更好的结果[6];Massung(2013)等从依存句法树中提出了树深度、句法类别、分枝数量等作为特征[7]。除了标准的机器学习方法之外,也有少量学者使用自定义情感函数用于情感分类,如Dave(2003)提出了基于正负面评论词的打分函数[8]。这些方法在需要大量人工标注的语料库的同时,也面临着应用领域的泛化问题,如针对影评建立的机器学习模型较难应用于电商评论。因此,越来越多的学者开始关注模型应用领域的自适应问题,如Hassan 等(2017)提出将 CNN 与 LSTM 相结合的深度学习模型[9]优化了Santos 等(2014)提出的卷积神经网络(CNN)情感分析模型[10]。吴冬茵等(2017)通过从辅助数据中迁移与测试集数据分布相符的高质量样例扩充训练数据集,实现迁移学习用于分类器训练[11]。

无监督的情感分析方法有效避免了大量的人工标注工作,更好地融入人类自身的经验,减少了机器学习的盲目性。主要包含基于句法模板和基于词典两类方法。Turney(2002)等假设表达情感的部分由不超过3个词的短语组成,并定义了多个句法模板(如: 形容词+名词+任意词),利用规定的情感词和短语的互信息(PMI)计算出短语的情感极性[12];Feng(2013)等利用谷歌、维基百科、推特等多个数据集证明了PMI计算方法的有效性[13];此后,不少学者给出了更多的句法模板或新的情感表达规则,如Jia(2009)等定义了否定词与其后其他词之间的词语间隔,完善了对否定或双重否定表示肯定的情感判断[14]。基于词典的情感分析比句法模板的发展更加成熟,除了最初的各类情感词典外,Polanyi和Zaenen(2004)补充了情感转置词(否定词、转折词/情态动词等)对情感词的影响[15];Kennedy等(2006)进一步补充了Polanyi的研究[16];Taboada等(2011)对情感词典进行了细化,将情感词的取值范围由{-1,0,1}扩展到了-5到5[17]。从情感分析的逻辑而言,无论是基于句法模板还是基于词典的方法,都存在需要大量的人类经验和劳动构建模板或词典的问题。这一问题使得自动构建句法模板或词典成为了热门,如Saias(2015)等通过提取句子主干, 包括否定关系、转折关系、动词、形容词词根等, 再利用通用情感词典发现情感词进行监督学习,来判断属性对应的情感[18]。热西旦木·吐尔洪太(2017)等在情感分类过程中对词典进行递归扩充,在维吾尔语情感分析领域取得了较好结果[19]。受限于句法模板较单个词条更具多样性,自动或半自动建立句法模板的发展逐渐滞后于自动或半自动情感极性词典的建立。

然而,尽管基于词典的方法发展较快,仍受两个问题制约: (1)不包含情感词的语句也可能表达情感,如“怎么会这样?!”;反之,包含情感词的语句也可能不表达情感,如“美观程度不作评价”。(2)情感词在不同的句法结构中可能表达不同的极性。如“漂亮”表示积极情感,在句法结构“不漂亮”中却表达消极情感,在“不可谓不漂亮”中又偏向于积极情感。而基于句法模板的方法可在不考虑情感词的条件下,进行客观句与情感句的分类,同时协助判断情感词在不同句法结构中的极性变化。因此,可引入自动提取句法模板的方法对无监督的情感分析进行改进。

为了研究句子级情感句法模板的自动提取,本文定义了分枝、剪枝、嫁接、枝解四种操作,压缩语句的依存句法关系特征。同时,假设可表达情感的依存句法关系类型有限,极大弱化了句法模板结构的多样性对自动提取过程的限制,建立了有监督的句法模板提取模型。并结合具体实验验证了提取结果的有效性以及对无监督情感分析的影响。

2 模型建立

文本可以表达丰富的情感,但表达情感的句法结构却是有限的。基于该假设,可将文本的情感极性分析分为两步进行: ①识别文本中是否存在可表达情感的句法结构;②分析可表达情感的语法结构的情感极性。

本文采用依存句法树表征语句的句法结构,并定义了分枝、剪枝、嫁接、枝解四种操作压缩依存句法树的特征空间,达到提高效率和精度的双重目的。

为了提取影响情感表达的主要句法结构并保证提取过程的有效性,本文以信息增益(IG: Information Gain)为依存句法关系的筛选指标,提出了一种有监督的依存句法关系自动提取模型。最后,结合已有的情感极性词典给出依存句法关系与情感之间的联系。

2.1 基于树的依存句法表示

对给定的句子S分词,可将其转换成按一定顺序的词语及标点的向量,即式(1):

wi(i=1...n) 表示词语或标点。

基于句法结构本质上包含词和词对之间的关系的假设,依存树(Dependency Tree)T可以被表示为一个有向多重图T=(V,A),其中,节点和边的定义为:

(1)V={w1...wn},其中每一个节点对应一个词或标点wi,依存树必须包含所有词且不可重复。

(2)A={l1...lm}⊆L,L是所有文本依存关系类型的集合,包含了依存树中所有可能的边lj(j=1...m)。

将依存树T中每条边lj连同相连的两个节点称为一个三元组tj,如式(2)所示。

式(2)中包含支配词(governor)wg、修饰词(dependent)wd及其依存关系lj。依存树T也可表示为式(3):

同时,依存树需要满足三个约束:

(1) 单核心(Single-headed): 每个词只能修饰一个核心词;

(2) 弱连通(Weakly-connected): 将所有有向边替换为无向边后,任意一对节点都是连通的,则称此图是弱连通的;

(3) 无环(Acylic): 对于任意一个节点,无法经过有向边后重新回到该点。

文献[20]中列举了常用的三个依存句法分析软件,并指出了StanfordNLP更加常用,文献[21]关于机器翻译的应用,同样验证了stanfordNLP对于识别句法依存关系的优越性。因此,本文选用StanfordCoreNLP(1)词性及依存关系解释文档下载: https://github.com/Quincy1994/standfordParser/(3.8.0版本)求解评论的依存关系。以“企业效益非常低,口碑也不好,需要推进质量品牌建设”为例,根据StanfordCoreNLP输出结果,借助Visio绘制依存树,如图1所示。

图1 基于StanfordCoreNLP所得依存句法树示例

2.2 压缩依存树特征空间的四种操作

一句文本中可能包含多个子句,但并不是每个子句都表达情感,如果全部引入模型,不仅影响模型精度,还降低了效率。同时,即使一句文本中每个子句表达了情感,只选择其中一个表达情感的子句也不影响“该句表达了情感”的结论。因此,在识别表达情感的句法结构时,可以删除不必要的子句压缩依存树的特征空间,在减少噪声、降低句法结构多样性的同时提升效率。本文定义了依存句法树的四种基本操作以达到压缩特征空间的目的。

2.2.1 分枝操作(B: branch)

当前较常使用的子句识别依赖于标点符号,在文献[22]中,使用逗号、冒号、分号将句子切分,并称之为切分标点。但并不是所有的句子均可以通过逗号切分,如图1对应的“企业效益非常低,口碑也不好,需要推进质量品牌建设”中,“效益非常低”与“口碑也不好”是并列关系,均为对“企业”的描述,应将其切分到一个子句中。

本文基于依存句法树做出如下定义:

片段(segment): 句首到第一个标点符号间或任意两个标点符号间的文本,记为seg。

节点的深度(depth): 从根节点开始自顶向下逐层累加,记为dep,根节点的深度约定为1。

节点的祖先(ancestors): 从根节点到该节点所经分支上的所有节点(包含根节点,不包含当前节点,约定根节点的祖先为自身),记为anc;

节点的最近祖先(父节点)(nearest ancestor): 节点的所有祖先中深度值最大的祖先,记为Nanc。

子句(sub-sentences): 语义相关的片段集合,记为Ssub。

对给定的句子S,假设可分为X个子句,包含Y个片段,每个片段有ty个词条,则S表示为式(4)。

Ssubx(x∈{1,...,X})表示第x个子句,为待求变量;segy(y∈{1,...,Y})表示第y个片段,可表示为式(5)。

子句识别规则如下:

(1) 求出每个片段的最近祖先,记为该片段的Nanc,如式(6)所示。

其中,anc(segy)表示片段segy的所有祖先的集合,如式(7)所示。

(2) 按语句的原有顺序合并具有相同Nanc的片段,如式(8)所示。

(3) 每个相异的Nanc对应一个子句。

2.2.2 剪枝操作(P: pruning)

将语句表示成子句的集合后,需要筛选出其中最可能表达情感的1个子句作为当前语句的情感特征句。

假设能表达情感的句法结构的最小单位为三元组,记为e。由于句法结构的相似性依赖于词性及其依存关系,因此三元组e与三元组t之间的关系可表示为公式(9)。

f表示三元组e与三元组t之间的映射函数,pos(part of speech)表示词性。

但并不是所有表达情感的结构均可以用三元组表示,如“A没有B好”,其表达情感的核心为“没有B好”,并不是简单的三元组,而是如图2所示的结构。

我们称之为“子树”结构,记为Tsub。文献[23]总结了对句法分析产生影响的4类子树,如图3所示。同时文献[24]发现,当子树中的依存关系超过3个时,对于句法已基本不产生影响,因此,本文将能表达情感的所有句法结构归结为图3的(a)(b)(c)三类,其结构的文字形式见表1。

图2 “没有B好”的依存句法关系图

图3 四类常用的子树图

假定子句Ssubx对应的依存句法树T可拆分为包含R个子树的集合Tsub。

表1 三种子树的结构式

定义筛选规则如下:

(1) 求解子句Ssubx分解为子树后,各子树对应情况下,子句表达情感的概率如式(10)所示。

其中,ne表示语料库中表达情感的语句个数,N表示语料库所有语句的个数。

p(Tsubr)为句法子树Tsubr在语料库所有子句中出现的概率,可表示为式(12):

其中,nTsubr表示语料库中包含Tsubr的语句个数。

(2) 求解子句Ssubx表达情感的概率;

(14)

(3) 只保留语句S中表达情感的概率最大的子句作为S的特征句,如式(15)所示。

2.2.3 嫁接操作(G:grafting)

删除冗余的子句后,子句内部的句法结构仍会有明显冗余或重复进而降低运算的效率。文献[25]中,尽管也考虑到了该因素的影响,但仅处理了依存关系为“名词合成修饰”的枝叶,如 “企业”与“效益”之间的依存关系为“nn”,则将“企业”嫁接到“效益”上,组成1个新词“企业效益”,保留原核心词“效益”的词性。并未对其他情况冗余进行处理,本文对照词性表总结出的嫁接情形如表2所示。

表2 需嫁接子树结构集

“*”表示通配符,可匹配任意词性。

2.2.4 枝解操作(D: decomposition)

语句情感表达的概率取决于句中可表达情感的短句或词语(包含表情)的实际含义,等价于语句对应的依存关系树中包含的句法结构表达情感的概率。在“剪枝操作”中我们定义了三类可表达情感的子树,进而将子句情感表达的概率表示为子树表达情感的概率关系。

本文采用自下而上的递归算法完成树的分解操作。需要注意的是,求解b类子树时,由于相聚较远的节点很难产生关系,本文只考虑相邻的兄弟节点,伪代码如下:

输入: 子句Ssub对应的词性依存树T输出: 子句Ssub所包含的所有可能子树Tsub//nodei表示树T的第i个节点//Tsuba表示符合图3(a)结构的子树//Tsubb表示符合图3(b)结构的子树//Tsubc表示符合图3(c)结构的子树n=m=0For j← depth(T) to2 For i←1 to count(node) If depth(nodei)=j Tsuba.append= t(Nanc(nodei),nodei) n=m=m+1 End forEnd forFor tsubam in Tsuba If Nanc(nodem) = Nanc(nodem+1) Tsubb.append=t(tsubam,nodem+1) End for If depth(nodem)>=2( Tsubc.append=t(tsubam,Nanc(Nanc(nodem))))End forTsub=merge(Tsuba,Tsubb,Tsubc)Return Tsub

代码中,函数count()表示计数,A.append()表示给向量A追加元素,函数t()表示节点与子树的一一映射,merge()表示将多个向量拼接为单个向量。

2.3 可表达情感的句法结构的自动提取

假设能用于表达情感的所有句法子树共有Z个且已知,记为集合Tsube:

输入带有情感标记的训练语料库Ct和验证语料库Cv,经过分枝、嫁接、枝解和剪枝后,实现语句到单个子句再到子树集合Tsub的转换。

为了实现Tsube的自动提取并取得更好的结果,本文借助遗传算法完成Tsube的更新迭代,并设计了构造较优初始解的流程作为初代种群以提高效率。对Tsub中所有不同的h个句法结构进行定序,每一种子树对应一个基因位点[26],每个基因只有0和1两种碱基[27],若某基因位点对应碱基为0,表示对应子树不在Tsube中。自动提取流程如图4所示。

图4 情感子树的自动获取流程

其中,终止条件则可以是:

1) 多次结果之间的差值小于阈值;

2) 进化代数要求;

3) 精度达到要求。

为了缩减进化代数,本文采用贪婪法构造较为优异的Tsube作为初代种群的个体并进行复制。构造过程中,参考文献[28],选择子树的IG作为子树优先入选Tsube的依据。IG是信息论中的一个重要概念,并被广泛的应用在机器学习算法中。其通过统计某一个特征项t在类别C中出现与否的文档数来计算特征项t对类别C的信息增益,本质是考察引入特征前后信息熵的增值,值越大说明引入的特征对于当前类别的划分效果越明显,计算见式(17)。

构造初始种群中较优个体的流程如图4所示,初始个体对应的句法结构集Tsube通过对子树的IG值降序排列逐次获取,直至Tsube中的元素覆盖了全部的情感子句或剩余子树对当前分类基本已不产生影响(IG的阈值取0.01)。

图5 初始种群的构造流程

2.4 Tsube的情感极性判断

本文参照文献[29]使用的Hownet情感词典将情感单词分为积极与消极两类。根据词典将Tsube中入选的句法结构中的情感词的词性进一步细分,如形容词VA分为积极类形容词VA_pos和消极类形容词VA_neg。依据新的Tsube在验证集中的情感倾向(概率是否大于50%)最终将对各子树进行定性。

3 实验验证

3.1 数据集及评价标准

实验数据为第三届自然语言处理与中文计算会议(NLPCC 2014)任务2情感分析部分评测数据(2)下载链接: http://tcci.ccf.org.cn/conference/2014/pages/page04_ans.html。原数据集由22 431条标记好情绪类别的微博评论组成。将happiness、like、surprise情绪归为积极,将sadness、fear、disgust、anger归为消极。删除其中借用表情而非文本表达情感的语句3 536条,保留 3 088条积极情感语句、2 639条消极情感语句和13 168条客观语句,用于模板的自动提取与验证。按照6∶2∶2的比例随机筛选各部分语句组成训练集、验证集和测试集,概况如表3所示。

表3 实验数据概况

预测结果可以根据目前广泛采用的F值指标进行比较,F值为查准率P和召回率R的调和平均值。原则上,F值越大,模型效果越好。

其中,TP表示“预测为情感语句,实际为情感语句”,FP表示“预测为情感语句,实际为非表达情感的语句”,FN表示“预测为非表达情感的语句,实际为表达情感的语句”。

3.2 初始个体及四种操作的示例

仍以“企业效益非常低,口碑也不好,需要推进质量品牌建设”为例,展示压缩空间的四种操作,分枝、嫁接、枝解、剪枝结果依次如图6~9所示。

图6 分枝操作结果示意图

图7 嫁接操作结果示意图

图8 枝解操作结果示意图

图9 剪枝操作结果示意图

分枝过程中,由于Stanford Parser模型会自动删除分词结果中的标点符号,需要提前标记好各片段包含的词条信息作为输入,结合依存树确定各子句。如: 例句包含三个片段,片段1“企业效益非常低”与片段2“口碑也不好”的父节点均为“低”,片段3“需要推进质量品牌建设”的父节点为“好”。因此,片段1与片段2构成子句1,片段3作为子句2。需要注意的是,当单个评论包含重复词时,需要区分标记。

按照初始个体的构造流程,对在情感子句中出现的所有204种子树进行筛选,可得初始情感子树集合,如表4所示。

表4 初始情感子树集合

续表

对204种待确定子树定序,可将情感子树集合编码为具有204个基因位点的个体。

3.3 实验设置与结果分析

3.3.1 验证初始个体对于求解最优子树集的影响

初始种群:

实验组种群: 复制出2 000个表4对应的初始个体。

对照组种群: 随机生成2 000个有且只有33个位点编码为1的个体。

遗传操作:

适应度: 检测一个个体所表示方案的优劣性,本文采用情感子树集合针对验证集语句是否表达情感的预测的F值作为个体的适应度。

选择算子: 采用轮盘赌选择方法。适应度越大的个体被选择的概率越大。

交叉算子: 采用基于位置的多点交叉方法。随机选择两个父代,从一个父代的204个位点中随机选择102个位点复制给子代,并从另一个父代复制余下的102个位点。

变异算子: 随机选择个体及位点进行突变,突变后位点的编码与突变前和为1。

设置种群大小为2 000,最大进化代数为150,交叉概率为0.7,变异概率0.1,选择每代最大适应度作图如10。过程中最大适应度为对照组的87.06%,对应情感子树集见表5。

图10 种群进化过程中最优个体特征曲线

TsubeTsube(AD,NR,nsubj)(VV,SB,auxpass)(AD,SP,discourse)(VV,SP,dep)(IJ,IJ,dep)(VV,SP,nsubj)(JJ,DEG,case)(VV,VA,dep)(JJ,JJ,amod)(VV,VE,ccomp)(JJ,JJ,dep)(VV,VV,advmod:rcomp)(NN,AD,advmod)(VV,VV,xcomp)(NN,CD,dep)[(NN,DT,det),(NN,SP,discourse)]

续表

续表

结果表明: ①利用贪婪法构建的初始解已足够优异;②基于情感子树预测语句是否表达情感的准确率非常高;③再次验证了一个良好的初始种群可以大大提升遗传算法的效率。

3.3.2 验证依存关系与词典结合对情感分析的影响

将表5中的所有情感子树根据各核心词的情感极性拆分成2个或4个,如(VV,VA,dep)结构中VA表示形容词,若对应的词语在情感词典中,则可根据情感词的极性将该子树拆分为(VV,VA_pos,dep)和(VV,VA_neg,dep),得到新的情感子树集合,并在验证集上进行情感倾向的定性。若子树的情感倾向取决于核心词的情感极性,则舍去该子树,若核心词不在情感词典内或子树的情感倾向与核心词的极性相反或无关,则保留该情感子树,最终,得到新的情感极性子树集合,如表6所示。

表6 新的情感极性子树集合

新的情感极性子树数量远少于预期的原因为: 大部分情感子树相关词语并没有出现在情感词典中,且会因为词语本身含义的不同而表达不同的极性。如: (IJ,IJ,dep)表示两个并列语气词,当为“啊哈”时为积极情感,当为“啊呸”时为消极情感,在词典中并未收录该词条。

实验设置:

实验组情感规则: 表5的情感子树筛选出测试集中的情感语句,表6和Hownet情感词典预测情感句的极性。

对照组情感规则: 基于Hownet情感词典预期测试集的情感极性。

将两组情感规则应用到测试集上,最终结果如表7所示。

表7 实验组与对照组的预测结果(%)

从表7可知,基于句法模板与基于词典方法的结合,明显改善了基于词典的预测结果。为了探究改进背后的原因,我们删除了预测集中的所有客观句,重新进行了实验,结果如表8所示。

表8 删除客观句后实验组与对照组的预测结果(%)

实验组结果虽仍优于对照组,但提升效果已经没有表7明显。由此可推断,句法模板的引入,更多地作用于情感句与客观句的分类,即更多地弥补了相关研究所述的基于词典方法的第1类缺陷。

综合以上结果表明: 结合句法关系可以明显改进基于词典的情感分析效果。但在情感句极性的细分上仍有很大提升空间。

4 总结

本文研究基于句法模板的情感分析问题,并在自动提取句法模板方面进行了创新: ①基于依存句法树,定义了分枝、嫁接、枝解、剪枝四种压缩语句的句法特征的操作,大大降低了句法结构的多样性,为自动提取奠定了基础;②利用贪婪法的思想构造了足够优的情感子树集合作为初始种群中的个体,明显降低了求解最优情感子树集合时的进化代数。最终的实验结果也表明,本文自动提取的依存句法关系结构(情感子树),在情感表达与否的判断上具有非常好的效果,可以有效识别部分含有情感词但不表达情感的语句,改善基于词典方法在区分客观句与情感句方面的高误差率;同时,与情感词典结合可以帮助正确区分含有比较级、情态动词等情形时的情感极性,进一步提升基于词典的情感分析方法的效果。不过,在情感句极性的细分方面,句法模板与词典的表现都有较大提升空间,可通过完善情感词典或引入新的方法解决。

猜你喜欢
句法结构极性句法
述谓结构与英语句法配置
跟踪导练(四)
红葱不同极性提取物抑菌活性研究
句法二题
诗词联句句法梳理
基于英汉句法结构对比下的英语长句的翻译
双极性压缩观测光谱成像技术研究
信息结构与句法异位
键的极性与分子极性判断的探究