前言
本文使用朴素贝叶斯算法实现 豆瓣Top250电影评价的情感分析与预测。
最近在学习自然语言正负面情感的处理问题,但是绝大部分能搜索到的实践都是Kggle上IMDB影评的情感分析。
所以在这里我就用最基础的朴素贝叶斯算法来对豆瓣的影评进行情感分析与预测。
在这里我参考了 https://github.com/aeternae/IMDb_Review,万分感谢。
朴素贝叶斯分类器
贝叶斯分类是一类分类算法的总称,这类算法均以贝叶斯定理为基础,故统称为贝叶斯分类。
这种算法常用来做文章分类,垃圾邮、件垃圾评论分类,朴素贝叶斯的效果不错并且成本很低。
已知某条件概率,如何得到两个事件交换后的概率,也就是在已知P(A|B)的情况下如何求得P(B|A)。
P(B|A)表示事件A已经发生的前提下,事件B发生的概率,叫做事件A发生下事件B的条件概率。
朴素贝叶斯的公式
P ( B ∣ A ) = P ( A ∣ B ) P ( B ) P ( A ) P(B|A) = \frac{P(A|B)P(B)}{P(A)}P(B∣A)=P(A)P(A∣B)P(B)
一个通俗易懂的视频教程
Youtube https://www.youtube.com/watch?v=AqonCeZUcC4
举个不太恰当的例子
我们想知道做程序员与秃头之间的关系,我们就可以用朴素贝叶斯公式来进行计算。
我们现在想求 P(秃头|做程序员) 的概率, 也就是做程序员就会秃头的概率
我这辈子都不会秃头 (((o(゚▽゚)o))) !!!
代入朴素贝叶斯公式
P ( 秃 头 ∣ 做 程 序 员 ) = P ( 做 程 序 员 ∣ 秃 头 ) P ( 秃 头 ) P ( 做 程 序 员 ) P(秃头|做程序员) = \frac{P(做程序员|秃头)P(秃头)}{P(做程序员)}P(秃头∣做程序员)=P(做程序员)P(做程序员∣秃头)P(秃头)
已知数据如下表
姓名 | 职业 | 是否秃头 |
---|---|---|
奎托斯 | 战神 | 是 |
杀手47号 | 杀手 | 是 |
埼玉 | 超人 | 是 |
灭霸 | 计生办主任 | 是 |
杰森 斯坦森 | 硬汉 | 是 |
某某996程序员 | 程序员 | 是 |
我 | 程序员 | 否 |
基于朴素贝叶斯公式,由以上这张表我们可以求出:
P ( 秃 头 ∣ 做 程 序 员 ) = 1 6 ∗ 6 7 2 7 = 21 42 = 1 2 P(秃头|做程序员) = \frac{\