情感分析,也称为“意见挖掘”,近年来备受关注。全球的研究人员不断开发新的技术和架构,以便更容易地检测特定文本背后的语气或情感。随着社交网站、博客网站和电子媒体的指数级增长,以电影或产品评论、用户消息或推荐、讨论论坛中的消息等形式的情感内容也有所增加。及时发现这些情感或观点性消息可以带来巨大的优势——最关键的是货币化。更好地理解大众对产品或服务的情感,可以更好地分析市场趋势、上下文广告和广告推荐系统。虽然在当前情况下,许多先进的机器学习技术和流程存在用于情感分析,但始终了解基础知识是有益的。因此,本文的目标是提供一种数学但详细的想法,即机器学习最古老的工作之一:朴素贝叶斯(NB)分类器的复杂性。
朴素贝叶斯分类器源自贝叶斯统计学的基本理念——条件概率和贝叶斯定理。本文期望读者在概率的基本定义上有扎实的基础。因此,在进一步讨论之前,建议回顾这些定义和公式。条件概率或在事件B发生的事件A发生的概率,表示为P(A|B)
,由联合概率P(A ∩ B)
除以边际概率P(B)
给出。其中Ω
表示样本空间。
从直观上思考,如图2所示,如果已经在椭圆B中,那么在椭圆A中的概率是多少?答案将是,要同时在A中,必须在交集(A∩B)中。因此,概率等同于交集(A∩B)中的元素数量除以B中的元素数量,即(B)。因此,已经有了如前所述的条件概率公式。
现在假设A和B是非空集合,对于A和B,可以写出,可以重新排列上述两个方程来写出。重新排列上述方程,得到贝叶斯定理的最终形式。如果样本空间可以被划分为n个互斥事件,并且如果B是一个事件,其P(B) > 0
,是所有Ai的并集的子集,那么对于每个Ai,广义贝叶斯公式是。
朴素贝叶斯(NB)分类器是一个众所周知的贝叶斯网络分类器范式,是一个基于贝叶斯定理的监督分类模型。NB是一个基于贝叶斯定理的概率分类器,考虑了朴素的独立性假设。它早期在自然语言处理(NLP)社区以不同的名称引入。它仍然是文本分类的流行基线模型,即判断文档属于一个类别还是另一个类别的问题。NB的优势在于它需要较少的训练数据来估计分类所需的参数。凭借其基本驱动公式贝叶斯定理和条件概率模型,尽管NB模型简单且假设坚实可靠,但在大多数用例中证明相当有效,特别是在NLP领域,正如将在下一部分看到的。在此之前,值得一看NB考虑的假设以及它们如何从NLP的角度影响输出。
朴素贝叶斯分类器主要考虑两个假设,有助于降低模型复杂性。1.它做出了独立性假设,即假设语料库/文本中的单词是相互独立的,任何两个/组单词之间不存在相关性。例如,考虑句子“撒哈拉沙漠大部分时间都是阳光明媚和炎热的。”在这种情况下,单词“阳光明媚”和“炎热”在一定程度上依赖于彼此,并且与单词“沙漠”有一定的相关性。朴素贝叶斯假设始终独立。这种朴素的假设并不总是准确的,是NB模型在某些情况下性能低下的原因之一。2.它严重依赖于考虑的语料库中单词的相对频率。这有时会导致模型不准确,因为现有的数据集在现实世界中通常是嘈杂的。
现在已经对NB的基本概念和假设有了透彻的了解,准备看看NB在情感分析中的应用。本文的这一部分将探讨如何利用NB分类器进行情感分析。图3显示了构建所需模型的步骤。每个提到的步骤将在随后的段落中详细解释。
步骤1:收集和注释语料库。为了数据集的目的,考虑一个推文语料库,其中两个被标记为正面推文,两个被标记为负面推文。显然,考虑的数字只是为了确保对概念有更深入的理解,现实世界的场景将包括更多样的情况。因此,在语料库中,如图4所示,句子“I am happy because I am playing chess”和“I am happy, not sad”被标记为正面情感,而句子“I am sad, I am not playing chess”和“I am sad, not happy”被标记为负面情感。
步骤2:预处理。这是开始模型之前需要执行的关键过程之一。这一步中使用的方法可能因时间和用途而异,但通常,在这一步中,移除标点符号和停用词,移除文本中的句柄和URL(如果有),将所有字母转换为小写,并在整个文本上执行词干提取。上述方法的总体效果是它们有助于大大减少词汇量,并输出一个单词向量,然后用于后续步骤。
步骤3:获取词数。在这一步中,首先,获取正面和负面语料库中所有单词的总数,并准备一个如图5所示的表格。
步骤4:获取条件概率。这是最终可以使用文章开头推导出的公式的步骤。这一步利用贝叶斯定理计算单词出现的概率。
有了词数表,尝试获取如图6所示的概率表。将每个类别中的每个单词除以其相应类别中的单词总数,以获得该特定单词出现的概率。例如,单词“I”在正面推文中的词数是3,正面推文中的总词数是13。因此,频率表中“I”的相应值将是(3/13=)0.24。以类似的方式,用其他单元格填写以完成表格。正式地说,通过以下公式计算给定类别的单词的概率。
这里需要注意的一个重要概念是,像“I”、“am”、“playing”和“chess”这样的单词具有相同的概率,换句话说,它们是等概率的——它们不会增加情感(因为它们在计算似然值时被抵消,将在后续步骤中介绍)。另一方面,像“happy”、“sad”和“not”这样的单词在概率上具有显著差异。这些也被称为强词,它们在确定情感时具有很大的权重。
然而,上述分配条件概率的一个缺点是,如果一个单词没有出现在训练中,那么它的出现概率就自动等于零。为了解决这个问题,引入了一个新的概念——拉普拉斯平滑,通过稍微调整贝叶斯定理的公式来避免获得零概率。考虑到拉普拉斯平滑的修改公式因此变为。
其中V表示词汇表中唯一单词的数量。对于考虑的案例,它等于8。
考虑到拉普拉斯平滑后的新概率表如图7所示。请注意,之前在负面类别中概率为零的“because”现在有了非零概率。
步骤5:计算推断。一旦计算出每个单词的概率,剩下的最后一步就是计算一个分数,使能够决定一个推文是正面还是负面情感。大于零的推断分数将表示正面情感,小于零的分数将表示负面情感。等于零的分数将表示中性情感。
因此,为了获得结果的推断,计算以下内容:
score = log(prior) + log-likelihood;
其中第一项称为log prior,第二项称为log-likelihood。