作家
登录

详解基于朴素贝叶斯的情感分析及 Python 实现

作者: 来源: 2017-07-12 14:31:52 阅读 我要评论

相对于「 基于词典的分析 」,「 基于机械进修 」的就不须要大年夜量标注的词典,然则须要大年夜量标记的数据,比如:

比如输入一个句子

照样下面这句话,如不雅它的标签是:

办事质量 - 中 (共有三个级别,好、中、差)

然后你在输入一条评论,来断定标签级别

假设对于某个数据集,随机变量C表示样本为C类的概率,F1表示测试样本某特点出现的概率,套用根本贝叶斯公式,则如下所示:

详解基于朴实贝叶斯的情感分析及 Python 实现

上式表示对于某个样本,特点F1出现时,钙揭捉?本被分为C类的前提概率。那么若何用上式来对测试样本分类呢?

举例来说,有个测试样本,其特点F1出现了(F1=1),那么就计算P(C=0|F1=1)和P(C=1|F1=1)的概率值。前者大年夜,则钙揭捉?本被认为是0类;后者大年夜,则分为1类。

对该公示,有几个概念须要熟亲信

先验概率(Prior)。P(C)是C的先验概率,可以大年夜已有的练习集上钩算分为C类的样本占所有样本的比重得出。

似然(likelihood)。即上式P(F1|C),表示如不雅知道一个样本分为C类,那么他的特点为F1的概率是若干。

对于多个特点而言,贝叶斯公式可以扩大如下:

详解基于朴实贝叶斯的情感分析及 Python 实现

分子中存在一大年夜串似然值。当特点很多的时刻,这些似然值的计算是极其苦楚的。如今该怎么办?

2、朴实的概念

为了简化计算,朴实贝叶斯算法做了一假设:“朴实的认为各个特点互相自力”。这么一来,上式的分子就简化成了:

P(C)P(F1|C)P(F2|C)...P(Fn|C)。

╮(╯-╰)╭,其是机械进修,经由过程大年夜量已经标签的数据练习出一个模型,

如许简化过后,寂?骛来就便利多了。

其次,因为朴实贝叶斯的工作道理是计算P(C=0|F1...Fn)和P(C=1|F1...Fn),并取最大年夜值的那个作为其分类。而二者的分母是一模一样的。是以,我们又可以省略分母计算,大年夜而进一步简化计算过程。

证据(Evidence)。即上式P(F1),表示对于某测试样本,特点F1出现的概率。同样可以大年夜练习集中F1特点对应样本所占总样本的比例得出。

别的,贝叶斯公式推导可以或许成立有个重要前期,就是各个证据(evidence)不克不及为0。也即对于随便率性特点Fx,P(Fx)不克不及为0。而显示某些特点未竽暌箍如今测试集中的情况是可以产生的。是以实现上平日要做一些小的处理,例如把所有计数进行+1(加法腻滑 additive smoothing,又叫拉普拉斯腻滑 Laplace smothing)。而如不雅经由过程增长一个大年夜于 0 的可调参数 alpha 进行腻滑,就叫 Lidstone 腻滑。

详解基于朴实贝叶斯的情感分析及 Python 实现

  基于朴实贝叶斯的情感分类

原始数据集,只抽了10条

详解基于朴实贝叶斯的情感分析及 Python 实现

读数据

攫取excel文件,用的pandas库的DataFrame的数据类型

分词

这个假设是认为各个特点之间是自力的,看上去确切是个很不科学的假设。因为很多情况下,各个特点之间是慎密接洽的。然而在朴实贝叶斯的大年夜量应用实践实际注解其工作的相当好。

对每个评论分词,分词典同时去除停用词,获得如下词表

每个列表是与评论一一对应的

详解基于朴实贝叶斯的情感分析及 Python 实现

统计

这里统计什么呢?统计两种数据

1. 评论级其余次数

这里有三个级别分别对应c0 → 好 2c1 → 中 3c2 → 差 5

2. 每个词在句子中出现的次数

获得一个字典数据evalation [2, 5, 3]半价 [0, 5, 0]划算 [1, 1, 0]不错 [0, 2, 0]·········不满 [0, 1, 0]重要 [0, 1, 0]清跋扈 [0, 1, 0]具体 [0, 1, 0]每个词(特点)后的 list坐标位:0,1,2分别对应好,中,差

以上工作完成之后,就是把模型练习好了,只不过数据越多越精确

测试

世纪联华(百联西郊购物中间店)的点评 一个号称国际大年夜都会,收银处的人办事立场差到顶点。银联晃荡30-10,还弗成以连单。
宁馨的点评 国庆晃荡,用62开首的信用卡可以6.2元买一个印有银联卡标记的冰淇淋,有喷鼻草,巧克力和抹茶三种口味可选,我选的是喷鼻草口味,味道很浓烈。别的随便率性花费都可以10元买两个马卡龙,个头虽不是很大年夜,但很好吃,不是很甜的那种,不会认为腻。标签:办事质量 - 中

  朴实贝叶斯

1、贝叶斯定理

获得结不雅

c2-差

【编辑推荐】

  1. 挨踢部落坐诊第三期:Python在大年夜数据处理上的优势分析
  2. 神经收集中 BP 算法的道理与 Python 实现源码解析
  3. R vs Python:R是如今最好的数据科学说话吗?
  4. 一文详解神经收集 BP 算法道理及 Python 实现
  5. 情感计算是人机交互核心?谈深度进修在情感分析中的应用
【义务编辑:张子龙 TEL:(010)68476606】

  推荐阅读

  如何修补和保护Linux内核堆栈冲突漏洞CVE-2017-1000364

在 Linux 内核中发清楚明了一个名为 “Stack Clash” 的严重安然问题,进击者可以或许应用它来破坏内存数据并履行随便率性代码。进击者可以应用这个及另一个马脚来履行随便率性>>>详细阅读


本文标题:详解基于朴素贝叶斯的情感分析及 Python 实现

地址:http://www.17bianji.com/lsqh/36168.html

关键词: 探索发现

乐购科技部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与乐购科技进行文章共享合作。

网友点评
自媒体专栏

评论

热度

精彩导读
栏目ID=71的表不存在(操作类型=0)