自然语言处理(NLP)-1.2 情感分析与朴素贝叶斯法(Sentiment Analysis with Naïve Bayes)

1.概率论基础

1.1 单事件概率

        定义:一个事件发生的概率

        例如:设事件A表示"一个文本是正向文本",则其发生概率P(A) = 正向文本数 / 总文本数

                  下图中,绿色格表示正向文本、橙色格表示负向文本,则P(A) = 绿格数 / 总格数 = 13/20 = 0.65

                   即表示从该语料库中任取一个文本其是正向文本的概率为0.65

        

1.2 多事件概率

        定义:多个事件发生的概率

        例如:设事件"正向文本出现happy",由两个子事件构成,即

            A:一个文本是正向文本

            B:该文本中出现happy

            其组合概率P(A,B) = P(A∩B) = 3/20

        

1.3 条件概率

        定义:在已知事件B已经发生的情况下,事件A发生的概率,记作P(A|B)

        计算法则:P(A|B) = \frac{P(AB)}{P(B)}

        功能:能有效降低搜索空间

        例:在已知一个单词是happy的情况下,该文本是正向文本的概率为P(Positive|"happy") = P(Positive ∩ "happy") / P("happy")

               此时只需要在蓝色圈中进行搜索,极大减少了搜索范围

        

1.4 贝叶斯定理

        定义:计算已知事件Y发生情况下,事件X的发生概率,由条件概率推广而来

        公式:P(X|Y) = \frac{P(Y|X)P(X)}{P(Y)}

        推导过程(选修):

            


2.朴素贝叶斯法(Naïve Bayes)

2.1 基本概念

    概述:朴素贝叶斯法是基于贝叶斯定理和条件独立假设的分类方法;属于概率分类器,是生成模型;实现简单,学习与预测效率高,常作为比较基准

    简要流程:对于给定训练数据,首先基于条件独立假设学习输入输出的联合概率分布;然后基于模型,对给定的输入x,利用贝叶斯定理求出后验概率最大的输出y

    条件独立假设:

        定义:用于分类的特征在类确定的条件下都是条件独立的,即

            

        功能:该假设极大降低了计算复杂度、简化了模型,但同时牺牲了一定分类准确度

根据机器学习三要素,任何模型都由模型、学习准则(策略)、优化算法(算法)构成,其含义如下:

    模型:一个映射函数,输入数据输出预测结果,即该机器学习方法的功能和目的

    学习准则:评价模型好坏的标准,预测值与真实值的差异的期望,可以认为是损失函数

    优化算法:一个最优化问题,寻找最优模型的方法,即最小化损失函数的方法,机器学习的训练过程就是求解最优化问题的过程

2.2 模型

朴素贝叶斯模型

    定义:输入数据x,输出其最有可能出现在的类别y=c_k

       

    数学推导(选修):

       

2.3 学习策略

极大似然估计(MLE)

        概述:在朴素贝叶斯法中,学习意味着对先验概率P(Y=c_k)和条件概率P(X=a_j|Y=c_k)进行估计,因此可以使用极大似然估计法分别对这两部分进行估计

        方法:

            先验概率的极大似然估计:

                    

            条件概率的极大似然估计:

                    

2.4 优化算法

后验概率最大化准则

        定义:朴素贝叶斯法将结果分到后验概率最大的类中,就等价于期望风险最小化

           

        数学推导(选修):

                

2.5 优化技巧

2.5.1 拉普拉斯平滑 (Laplacian Smoothing)

        原因:由于朴素贝叶斯法中通过累乘来计算最终概率,因此只要其中一个值为0,最终结果就会变为0,失去意义

        功能:防止出现概率为0的情况,且仍保证概率和为1

        方法:计算条件概率时,分子+1,分母+V(词汇表中不同单词的个数);

            

            例子:

                

2.5.2 对数似然 (Log Likelihood)

    (1)概率比值(ratio)

        定义:用正向条件概率/负向条件概率;越大于1越正向,越接近0越负向,等于1即中性

            ratio(w_i)=\frac{P(w_i|Pos)}{P(w_i|Neg)}

        功能:判断一个词是正向还是负向

        例:对于happy,ratio("happy") = 0.14 / 0.1 = 1.4 > 1,因此其为正向情感词

            

    (2)对数先验(log prior)

        定义:对数先验 = log(正向样本数 / 负向样本数)

            log prior=log(\frac{P(pos)}{P(neg)})=log(\frac{D_{pos}}{D_{neg}})

        功能:修正不平衡数据集的影响;对于已经平衡的数据集(正向文本数=负向文本数),其对数先验为0,不产生影响

    (3)对数似然(log likelihood)

        定义:对概率比值再求log

            \lambda (w)=log\frac{P(w|pos)}{P(w|neg)}

        原因:计算时连乘了很多小数,可能发生数值下溢

        功能:可以避免数值过小发生下溢

        例:

            

    (4)对数先验+对数似然

        功能:判断整个文本的情感倾向

        定义:计算对数先验+对数似然的和;其值越大于0就越正向,越小于0就越负向,等于0为中性

                

        例子:

                


3.利用朴素贝叶斯法进行情感分析

3.1 整体流程

    总体流程:

        (1)获取数据

        (2)数据预处理

            

        (3)构建正负词频表:统计语料库中各个单词分别在正负文本中出现次数

            

        (4)计算条件概率表:统计各单词在正向/负向文本中出现次数,分别除正向/负向文本总数,得到各单词在正向文本/负向文本中出现的概率

            

            

        (5)计算各单词的对数似然λ:

            

            

        (6)计算对数先验:修正不平衡数据集的影响

            

        (7)进行预测:若对数先验+对数似然 >0 则为正向情感,反之为负向情感

            

3.2 模型评价

    准确度:即 预测正确文本数 / 总本文数

       

3.3 朴素贝叶斯法的其它应用

   

3.4 问题 / 缺点

    (1)条件独立假设

        原因:由于朴素贝叶斯法中使用了条件独立假设,假设句子中各单词间都是独立的,但显然一个句子的上下文间存在联系,因此会造成一定的错误

        例子:如下两句话,若不考虑上下文,将无法准确预测出空缺处单词

           

    (2)非平衡数据集

        原因:在实际情况下,数据集往往是非平衡的,且存在许多噪音,该模型无法解决这些问题

    (3)其他问题

        去标点:某些情况下,标点会表达情感,甚至改变整句话含义

           

        去停用词:中性词/非情感词在某些语境下也会表达情感

           

        语句顺序:不同的语序可能表达完全不同的含义

           

        反讽/夸张:对人类很容易理解,但机器无法理解其深层含义


4.编程实战

作业/编程实战:使用朴素贝叶斯实现情感分类

代码:https://github.com/Ogmx/Natural-Language-Processing-Specialization

内容汇总:https://blog.csdn.net/weixin_43093481/article/details/114989382

可将代码与数据下载至本地,使用jupyter notebook打开
 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Ogmx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值