贝叶斯定理是一个计算条件概率的公式。通过已知概率计算未知的概率,比如我们记A 事件发生的概率是P(A),B 事件发生的概率是P(B),则P(A│B)表示观察到B事件发生时,A事件发生的概率,则其数学表达为:
下面将举例说明朴素贝叶斯方法的计算流程,A句 ‘I am happy because I am learning NLP, I am happy, not sad.’(我很高兴,因为我正在学习NLP,我很高兴,而不是悲伤);B句:‘I am sad, I am not learning NLP, I am sad, not happy.’( “我很难过,我没有学习NLP,我很难过,不开心”。)
通过Lower(小写操作)将全部文本转化为小写;删除标点符号;删除停用词;规范化全句用词,以上步骤都属于数据预处理部分。
为了获得每个单词的概率统计信息,创建这些单词的字典,并以正面和负面计算每个单词的出现次数并计算他们出现的频率。
在朴素贝叶斯算法中,我们可以发现每个单词如何对情感产生影响,甚至量化这些影响的程度,正是通过正负两类单词出现的概率之比来计算。让我们举个例子。我们可以看到,“sad”一词出现的可能性在消极类别中比在积极类别中更大。因此,我们将通过公式找到每个单词的积极和消极概率之比,而经过大量的已标注的样本学习和训练之后,我们可以得到一整本字典厚度的每一个单词单独的条件概率。
当我们训练好这样的全单词字典之后,我们只要把新获得的句子也全部经过前文这样的处理,得到我们训练成功的字典中每个单词出现的概率比的乘积。由于数据可能不平衡,并且可能导致特定类别的结果有偏差,因此我们将方程式与先验因子相乘(正面概率/负面概率)。
由于我们采用了所有这些比率的乘积,因此最终得出的数字太大或太小而无法存储在设备中,因此出现了似然对数的概念,充分利用对数函数调整参数的取值区间。
以一个例子作为收尾,该句子的总体对数似然值大于零,表示该句子很可能表示积极。
朴素贝叶斯算法也存在很多缺点,如单词之间彼此独立,当单词组合在一起可能会改变他们的积极/消极属性;单词的先后顺序问题也完全被忽略了,以及否定词等对属性的强烈影响;训练集的选取对训练结果的影响也非常大,训练好的字典也很难具有迁移能力;
本文来自微信公众号“上海市人工智能行业协会”(ID:saia2021)。大作社经授权转载,该文观点仅代表作者本人,大作社平台仅提供信息存储空间服务。