基于部首的中文情感分析分级嵌入
Abstract
汉语情感分析中的文本表征通常是在词或字层面上进行的。本文证明了基于部首层面的处理可以大大提高情感分类的性能。特别地,我们提出了两种基于汉语根基的分层嵌入。这些嵌入不仅结合了词根层和字层面的语义,还融合了情感信息。在评价我们的嵌入时,我们在句子层次上对四个不同的数据集进行汉语情感分析。实验结果验证了我们的假设,即词根级语义和情感有助于句子情感的分类,并证明了我们的嵌入优于经典文本特征和流行词以及字层面的嵌入。
Introduction
对于每个自然语言处理(NLP)任务,文本表示始终是第一步。在英语中,单词按空格分割,它们自然被视为文本表示中的基本语素。然后,基于分布假设生成词嵌入。与英语的基本语素是前缀、词等字符的组合不同,汉语的基本语素是词根,它是汉字的(图形)成分。汉字内的偏旁具有各种相对位置。例如,它可以从左到右(‘ 蛤(toad) ’,‘ 秒(second) ’), 从上到下(‘ 岗(hill) ’, ‘ 孬(not good) ’), 从内到外(‘ 国(country) ’,‘ 问(ask) ’) 等等。
它们的存在不仅是装饰性的,而且是功能性的。部首有两个主要功能:发音和意义。由于本文的目的是情绪预测,因此我们对情绪预测函数更感兴趣。例如,部首“疒”带有疾病的含义。任何含有这个词根的汉字都与疾病有关,因此往往表达负面情绪,如‘ 病(illness) ’, ‘ 疯(madness) ’, ‘ 瘫(paralyzed) ’, etc.为了利用词根之间的语义和情感信息,我们决定把词根映射到嵌入(低维的数值表示)。
之所以选择嵌入,而不是像ngram、POS等经典的文本特征,是因为嵌入方法基于分布式假设,极大地探索了语义,并且依赖于令牌序列。相应地,单靠词根可能无法携带足够的语义和情感信息。只有当他们处于某种秩序中时,他们与情感的联系才开始显露出来(Poria等人。2017)。
据我们所知,在这项工作之前,还没有人提出过任何关于部首嵌入专门分析感情的工作。我们首先训练一个纯粹的部首嵌入命名为Rsemantic,希望捕捉部首之间的语义。然后,我们训练sentiment-specific radical embedding,并将其与Rsemantic相结合形成一个 radical embedding称为Rsentic,这个包含了语义和情感信息的编码。在此基础上,我们将两个获得的radical embeddings和汉字嵌入进行集成,形成基于词根的分层嵌入,分别称为Hsemantic 和Hsentic。
论文其余部分按如下方式组成:第一节说明词根嵌入的一般方法和汉语词根嵌入;第二部分对汉字和词根的分解进行了详细的分析;第三部分介绍了我们的分层嵌入模型;第四部分演示了所提出的方法的实验评价;最后,在第五部分对本文进行了总结,并提出了一些今后的改进意见。
Related Works
General Embedding Methods
one-hot表示法是NLP中的初始数字表示法。然而,它通常会导致高维度和稀疏性的问题。为了解决这个问题,提出了分布式表示法或word Embedding (Turian, Ratinov, and Bengio 2010).词嵌入是利用神经网络将词映射到实数低维向量的一种表示方法。其核心思想是基于分布假设,对如何表示上下文单词以及上下文单词与目标单词的关系进行建模。因此,语言模型是一个自然的解决方案。孟加拉国等国。(孟加拉等)2003)介绍了2001中的神经网络语言模型(NNLM)。
他们没有使用计数来建模ngram语言模型,而是建立了一个神经网络。词嵌入是建立语言模型的副产品。2007年,Mnih和Hinton提出了一个对数双线性语言模型(LBL)(Mnih和Hinton 2007),该模型建立在NNLM的基础上,随后升级为分层LBL(HLBL)(Mnih和Hinton 2009)和反向量LBL(ivLBL)(Mnih和Kavukcuoglu 2013)。而不是像上面那样建模NGRAM模型,Mikolov等人。(Mikolov等)2010)提出一种基于递归神经网络的模型以直接估计给定上下文的目标词的概率。
自从2008年引入C&W模型(Collobert和Weston 2008)以来,人们开始设计模型,模型的目标不再是语言模型,而是嵌入本身。C&W将目标词放置在输入层,并且只输出一个节点,该节点表示输入词序列的可能性。2013年底,Mikolov等人。介绍了连续词袋模型(CBOW)和跳跃图模型(Skip-gram),该模型将上下文词放在输入层,目标词放在输出层,跳跃图模型交换CBOW的输入和输出。他们还提出了负抽样,大大加快了训练。
Chinese Radical Embedding
(Chen et al. 2015) 2015年开始将中文分解为汉字,提出了一种汉字增强的嵌入模型(CWE)。 (Sun et al. 2014)开始将汉字分解为字根,并开发出增强字根的汉字嵌入。然而,他们只从每个字符中选择一个词根来增强嵌入。(Shi et al. 2015)开始训练纯部首嵌入用于短文本分类、中文分词和网络搜索排名。Yin et al.扩展纯部首嵌入通过引入多粒度汉语词嵌入。然而,上面的嵌入都没有考虑合并情感信息,并且将部首的嵌入应用于情感分类的任务(Cambria 2016)。为了弥合这种鸿沟,本文专门开发了基于词根的分层汉语嵌入用于情感分析。
Decomposition of Chinese Characters
中国文字可以追溯到公元前1200年至公元前1050年。它起源于甲骨文,它是刻在“龙骨”上的标志性符号。
Chinese Radicals
由于上述讨论的第二阶段,所有现代汉字都可以分解为部首。部首是字符的图形成分。字符中的一些部首起着象音素的作用。举个例子,部首‘ 丙’,出现在字符‘ 柄(handle) ’的右半部,象征着这个角色的发音。人们甚至有时能够通过识别汉字内部的某些部首来正确地预测他或她所不知道的汉字的发音。
字符中的其他一些词根的作用类似于承载字符语义的词素。举个例子, ‘ 木(wood) ’,它本身既是一个汉字,又是一种部首。例如汉字‘ 林(jungle) ’是由2个 ‘ 木’ 组成的,意思就是丛林。汉字 ‘ 森(forest) ’是由3个‘木’组成的,意思就是森林。在另一个例子中,部首“父”是单词“父亲”的正式形式。它出现在汉字“爸”的顶部,这个汉字确切地表示父亲,但不太正式,就像英语中的“dad”。
此外,一个汉字的意义可以从其部首的整合中得出。一个很好的例子 (Shi et al. 2015)是汉字‘朝’ 。这个汉字是由 ‘ 十’, ‘ 日’, ‘ 十’ 和‘ 月’ 这四个部首组成的。这四个自由基是从象形图演变而来的。‘ 十’代表草。‘ 日’ 代表太阳。‘ 月’代表月亮。这四者的结合意味着太阳取代了草地上的月亮,这实质上是“morning”这个词。毫不奇怪,这个汉字的意思是“morning”。这可能继续下去。如果词根“氵”的意思是水附着在字符“朝”的左边,那么它是另一个字符“潮”。从字面上看,这个字的意思是早晨的水。事实上,这个“潮”意味着潮汐,它符合它的字面意思。
总而言之,部首比单独的汉字承载更多的信息。汉字级研究只能研究汉字表示的语义。然而,深层语义信息和线索可以在部首层次分析中找到(Peng, Cambria, and Hussain 2017)。这促使我们运用深度学习技术来提取这些信息。在此之前,正如我们在相关作品中所讨论的,大部分作品都是英文的。由于英语在许多方面与汉语有很大不同,特别是在分解方面,我们在表1中进行了比较。
PIC1
从表1可以看出,字母级是组成英语的最低水平。但是,汉语中的等值水平比字符低一个等级,这是一个部首的层面。不同于英语,语义隐藏在每个汉字中。第二,汉字可以由单字或多字构成。此外,汉语句子中的词之间没有空格。以上观察表明,普通的英语词语嵌入不能直接应用于汉语。额外的处理,如分词,将引入错误,需要首先进行。
此外,如果一个新词或甚至一个新字符超出了词汇量(OOV),正常的词级或字符级除了给出一个随机向量之外没有合理的解决方案。本文提出了分级中文嵌入方法。
Hierarchical Chinese Embedding
在本节中,我们首先介绍用于训练分层嵌入的深度神经网络。然后,我们讨论了我们的分层部首嵌入。最后,我们提出了分层嵌入模型。
Skip-Gram Model
我们采用Skip-Gram神经嵌入模型提出的(Mikolov et al. 2013a)与负采样优化技术(Yin et al. 2016)。在这一部分中,我们总结了训练目标和模型。Skip-Gram模型可以理解为一个单词上下文版本CBOW模型(Mikolov et al. 2013a)在面板C上工作,其中C是目标词的上下文词的数目。与CBOW模型相反,目标单词在输入层,而上下文单词在输出层。通过生成最可能的上下文单词,可以训练权重矩阵,提取嵌入向量。
具体地说,它是一个隐层神经网络 (Rong 2014)。对于每个输入字,它用输入向量 Vwi表示。
隐藏层定义为:
PIC1
其中h代表隐藏层,Wi是输入隐权矩阵W的第i行。在输出层,输出C多项式分布,给定每个输出用隐藏输出矩阵计算为:
PIC1
wc,j是在输出层上的第c个面板的第j个单词; wO,c 是输出层的第c个上下文单词;WI是输入词向量;YC,j是在输出层的第c个面板上的第j个单元的输出;UC,j是在输出层的第c个面板上的第j个单元的净输入。此外,目标函数是使下面的公式最大化:
PIC1
其中Wj是上下文C中的第j个单词,给定目标词w。

Radical-Based Embedding
传统的部首研究像(Sun et al. 2014)只有从每一个汉字中去掉一个部首,才能提高汉字的嵌入性。而且,据我们所知,迄今为止还没有人提出过具有情感特征的汉语部首嵌入。因此,我们提出以下两个部首的嵌入式中文情感分析。
受汉字可分解为部首,且这些部首具有语义这一事实的启发,我们直接将汉字分解为部首,并按从左到右的顺序进行连接。我们把部首作为文本中的基本单位。特别地,对于任何句子,我们将每个汉字分解为它的部首,并将这些不同字符的汉字连接成一个新的部首字符串。然后对语料库中的所有句子进行了上述预处理。最后,利用skip-gram模型建立了部首语料库的部首嵌入模型。我们称这种类型的部首嵌入为语义词根嵌入(Rsemantic),因为从这种类型的语料库中提取的主要信息是词根之间的语义。为了提取词根之间的情感信息,我们发展了第二类词根嵌入,即词根嵌入(Rsentic)。
在研究词根之后,我们发现词根本身并不传达太多的情感信息,而携带情感信息的是不同词根的顺序或组合。因此,我们利用现有情感词典的优势作为我们的资源来研究序列。和以前一样,我们从两个不同的流行的汉语情感词典,Hownet(Dong and Dong 2006)和NTUSD(Ku,Liang, and Chen 2006)中收集所有的情感词,并将它们分解成词根。然后采用skip-gram模型来学习情感相关的自由基嵌入(Rsentiment)。
PIC1
由于我们希望部首嵌入同时具有语义信息和情感信息,因此我们对前两个嵌入进行融合处理。融合公式给出如下:
PIC1
其中Rsentic 是整合语义和情感信息的最终词根嵌入;
Rsemantic是语义嵌入,Rsentiment是情感嵌入;
W是融合的权重。如果W等于0,则 Rsentic是纯语义嵌入。如果W等于1,那么Rsentic是纯情感嵌入。
为了得到最佳的融合参数,我们对四个真实的中国情感数据集的分离发展子集进行了测试,即: Chn2000, It168, Chinese Treebank (Li et al. 2014) and Weibo dataset (details in next section).
我们训练一个卷积神经网络(CNN)对数据集中的句子情感极性进行分类。我们使用的特征是sentic radical嵌入,但是在不同的融合参数值下应用这些特征。在图1中示出了四个数据集上的不同融合值的分类精度。如图1所示的启发式算法,我们取最佳值0.7的融合参数。
Hierarchical Embedding
分层嵌入是基于不同的嵌入级别将捕获不同语义级别的假设。根据表1中汉语的层次结构,我们已经在词根层次上探讨了语义和情感。下一个更高的级别是字符级,后面是字级(多字符字)。然而,我们只选择字符级嵌入(Csemantic)来集成到我们的分层模型中,因为字符自然地通过Unicode进行分割(不需要预处理或分割)。现有的中文分词器虽然可以达到一定的精度,但是仍然会带来分词错误,从而影响词嵌入的性能。在层次化模型中,我们还使用skip-gram模型来训练独立的汉字嵌入。然后,我们将字符嵌入与语义根嵌入(Rsemantic)和感情根嵌入(Rsentic)融合以形成两种类型的分层嵌入:分别为Hsemantic 和Hsentic。该融合公式与根部嵌入的融合公式相同,只是根据我们的开发测试得出不同的融合参数值为0.5。在图2中描绘了分层模型的图形说明。
PIC1
Experimental Evaluation
在这一部分中,我们评估了我们提出的关于汉语句子级情感分类任务的方法。首先,我们介绍了用于评估的数据集。然后,我们演示了实验设置。最后,给出了实验结果并对它们进行了解释。
Dataset
我们的实验中使用了四个句子级的汉语情感数据集。第一个是微博数据集(Weibo),它是NLP&CC中文微博的集合,大约有2000个博客,分为正向和负向两个类别。第二个数据集是由李等人介绍的中文树库(Li et al. 2014)。对于每个情感类别,在将情感值映射到极性之后,我们得到了超过19000个句子。第三个数据集CHN2000,包含大约2000个来自Cuffels的酒店评论。最后一个数据集IT168,大约有1000个数字产品复述。所有这些数据集在句子层面上被标记为积极或消极。为了防止过度实验,我们对所有实验进行5次交叉验证。

Experimental Setting
由于在分类任务中通常使用嵌入向量作为特征,因此我们将我们提出的嵌入与三个基本特征进行比较:字符二元组、单词嵌入和汉字嵌入。在选择分类模型时,我们利用了最新的机器学习工具箱scikit-learn。
在实验中应用了四种经典的机器学习分类器:
线性SVC(LSVC),Logistic回归(LR),高斯核朴素贝叶斯(NB)和多层感知器(MLP)分类器。在评估这些经典机器学习分类器上的嵌入特征时,给定句子单元的特定粒度,计算平均嵌入向量来表示每个句子。例如,如果一个句子被分解成一串词根,那么这个句子的词根嵌入向量就是它的成分词根嵌入的算术平均值(平均值)。此外,我们还以与(Kim 2014)中提出的相同的方式应用CNN,只是我们将嵌入向量维数减少到128。
Results and Discussion
PIC1
表2将二元组特征与语义根嵌入、情感根嵌入、语义层次嵌入和感情层次嵌入在四个不同数据集上进行了比较。
PIC1
类似地,表3还将提出的嵌入特征与word2vec和character2vec特征进行了比较。
在这四个数据集中,我们提出的特征与CNN分类器一起工作获得了最好的性能。在微博数据集中,sentic分层嵌入的性能略好于character2vec,提高不到1%。然而,在CTB和CHN2000数据集中,语义分层的三条基线特征为2~6%。在IT168数据集中,MLP模型中的sentic 分层嵌入仅次于bigram特征。
这个结果并不令人惊讶,因为bigram 特征可以被理解为具有2大小的滑动窗口。使用多层感知器分类器,其性能可以与CNN分类器并行。尽管如此,与CNN分类器一起工作的其他三个提议的特性比任何分类器的所有基线特征都要好。除上述观察外,我们还得到了以下分析。
首先,深度学习分类器在嵌入特征方面效果最好。在经典分类器上,所有嵌入特征的性能急剧下降。然而,即使我们提出的特征在经典机器学习分类器中的性能与CNN相比大大下降,它们仍然与其他基线特征并行或优于其他基线特征。此外,所提出的特征的性能从未被调参。经过未来的调参,可以期待更好的性能。
其次,所提出的嵌入特征确实揭示了一些能够促进句子层次情感分析的信息。虽然我们并不确定这些额外的信息到底位于哪里,因为我们提出的四个嵌入特征的性能并不健壮(没有一个特征在所有四个数据集上都达到最佳性能),但我们证明了部首级别的嵌入对中国人的情绪分析是有帮助的。
Conclusion
本文提出了基于中文词根的层次嵌入方法,特别针对情感分析设计了四种基于词根的嵌入方法:词根语义嵌入、词根情感嵌入、层次语义嵌入和层次情感嵌入。通过在四个中文数据集上进行句子级情感分类实验,我们证明了所提出的嵌入方法优于最先进的文本和嵌入特征。最重要的是,我们的研究提供了第一条证据,表明汉语根基层次和层次层次的嵌入可以改善汉语的情感分析。
同时,本文还提出了今后的工作方向。首先,由于本文只在特征级融合了不同的嵌入,因此一种可能的改进是在模型级进行融合,其中我们将融合来自不同嵌入的分类结果。其次,我们要对汉语部首进行更深层次的分析。在本文中,我们对待每一个具有同等重要性的字符,这是不理想的。由于同一字符中的词根具有不同的功能,对情感的贡献也不同,因此每个字符中的加权词根分析有望进一步提高性能。