高阶贝叶斯:帮你精准划重点的宝贝模型

高阶贝叶斯:帮你精准划重点的宝贝模型

我们会根据客户在网上的评价和评分,为他们的网络形象发展提供一些建议。通常,我们会分离文字的评论和数字的评分,来理解文字评论中是否提到了对客户发展有影响的重要维度,以及在这些维度中,评价者们是否满意。

举个例子,我们可能在网上识别了100条提到价格的评价。如果我们观察这些评价里的评分,可能会发现80%的评价都很正面,平均评分达到了4颗星。然而,这个方法有一个缺陷:一个提到价格的正面评价,并不一定对这个餐厅价格表示了肯定。比如这条评价:

这是一条5星评价,但它无疑是觉得餐厅的定价不合理的。因此,我们需要一个模型告诉我们一个评价中的一个句话或一个部分的情感,从而知道这些不同部分的态度是如何导致了最终的评分。我在这里将会介绍一些的我们研究过、使用过,然后基准化的一些情感挖掘工具。

朴素贝叶斯是第一个也是最简单的文本情感分类工具。它基于贝叶斯条件概率公式:

我们用词汇包来代表文本,词汇包中包含一组特征 — 不同的单词“w”出现了“f”次。“w”表示句子中不同的单词,f表示这一单词出现的次数/频率。朴素贝叶斯认为不同单词的出现频率是相互独立的,通过贝叶斯公式,我们可以推出每一个单词出现f次(Event B)的前提下,句子表达了正面情感的 (Event A) 的概率。

事实上,只要我们的数据集够大,我们就能推导出句子是正面评价(Event  A)的概率,和每个特征及他们交集的概率(Event B)。用10,000个标记过的句子作为training set去训练这个模型,我会得到一组非常有用的特征来判断句子的态度是积极的还是消极的。下图10个特征是我们通过朴素贝叶斯分类器得到的:

这个方法执行起来最为简单,它最大的优点就是完全透明。当我们处理文本数据时,我们能够清楚地知道这个分类器找到了一些情感上非常积极或者消极的单词,并且完全依照这些单词来对句子进行 negative 和 positive的分类。

当然,这个方法有一些缺点。

首先,它无法识别态度中立的词汇。事实是,一个单词可以有积极或消极的含义,但没有一个单词是表示中立的。一个句子中缺乏非常积极或消极的单词或结构,可能表示这个句子的评价非常中立。词汇包没有解决这一问题。

其次,这个模型无法理解情感的强烈程度和否定。比如,我们对比“good”和“quite good”,包含“good”的句子可能更容易被识别成正面评价。我们尝试用一些方法解决这个问题:比如增加一些合成词识别(也就是把“quite good“当成一个词来处理),或者用合成词,而不是单个单词来训练这个模型,但两种方法都没有改进我们的模型。绝大部分情况下,这个模型都无法识别否定,因为这个模型无法考虑词语顺序。

总而言之,朴素贝叶斯分析并不能很好地解决局部情感分析问题。在一段很长的文本中,如果频繁地出现了“sensational”,“tasty”这种词汇,作者很有可能在表达积极的情感。但当我们的目的是局部情感分析,我们希望我们的工具能处理短句或者部分内容(因为我们已经有了星级评分来表达评论者的总体情感)。在这些短评论中,我们没有足够的词语来整合,因此我们需要精确地理解语义结构。

词汇包代表不是一个精确分析的好方法。比如,有一个评价是“The food could have been more tasty”,我们能够识别“tasty“是正面的,但却不能识别”could have been more“含有否定意义。很多短句都有这样的意义不明之处,如果我们只依赖一个小范围的句子数据集,我们的精确度会从77%降到65%。

为了改进朴素贝叶斯模型,让它进一步适应我们的短句情感分析挑战,我增加了一些规则,来识别否定和情感强度指标,一些微妙的语义和其他一些经常出现在情感表达中,并会改变句意的语义结构。比如有一句评价是“the food wasn’t very tasty”,我们希望知道“not very tasty” 比“not tasty”和“not tasty at all”负面程度要低。

我们利用朴素贝叶斯模型训练的结果来建立一个含有积极和消极词汇的词汇表。当我们处理一个句子时,我们会给每一个单词进行正面和负面的判定,并给出评分,然后通过一个精确的语义结构分析计算出整体分数。我们的语义分析是通过开源库spaCy建立的词性标注和依存关系语法分析的pipelines是进行的。我们制定了一个积极、消极和中立分数的评分标准。中立的分数由既不积极也不消极的单词数量占句子总单词数量的比例决定。

我们通过深度学习分析了这些分数和情感之间的关系。下图是我们得到的消极、中立和积极句子的分析:

这个模型很好地帮我们判定了一个句子表达的情感是积极的还是消极的 (75%的精确度),但在判断中立态度和情感缺失方面还有待改进(在test set里,80%的中立态度判断都是错的)。这个模型确实优于朴素贝叶斯模型,但75%的精确度不足以支持我们做出任何进一步的决定。

原文作者:Samuel Pilcer

翻译作者:喝豆奶的Narcia

美工编辑:喝豆奶的Narcia

校对审稿:卡里

原文链接:https://medium.com/@samuelpilcer/sentiment-analysis-frequency-based-models-288c0accdd12

阅读原文