数据分析师

手机号

验证码

30天自动登录

数据分析师

使用SQL准备数据后Python中的朴素贝叶斯情感分析

来源:CPDA数据分析师网 / 时间:2021-02-04

情感分析是一个分类问题,数据团队会尝试预测文本的正面还是负面
许多公司使用情绪分析来自动分析产品评论,社交媒体评论和调查回复,以量化有关其产品和服务的反馈,在本文中我们将在使用SQL准备文本数据之后,使用Python构建情感分析器,我们将使用朴素贝叶斯算法,这是一种用于情感分析问题的流行算法,让我们开始吧。 

机器学习过程
机器学习过程涉及三个主要步骤-准备数据,训练模型和测试模型,测试模型后,将其部署,部署模型后,应用程序将使用该模型回答问题-在这种情况下,我们将确定文本是肯定的还是否定的,但是它并不止于此,机器学习过程是非常迭代的,一个成功的模型需要随着世界的变化而不断地进行测试,训练和重新创建!

任何机器学习过程的步就是准备训练数据
我们将使用UCI机器学习存储库中的情感标记句子数据集,该数据集包含来自用户评论,以及有关每个评论是肯定的(分数为1)还是否定的(分数为0)的判断,该数据集以CSV格式提供,因此我们可以使用CSV上载功能导入数据,导入数据后,需要将其清除以删除重复项和丢失的数据,使用SQL(这是数据分析人员常用的语言)来完成此操作,这是我用来准备此数据集以进行ML分析的SQL,清除数据后,我们将其用作训练数据。准备将其输入到我们的ML算法(朴素贝叶斯)中以建立我们的模型。在此之前,让我花一些时间来解释朴素贝叶斯算法。

了解朴素贝叶斯
训练阶段
如果我们从“标记语句”数据集中随机选择一个评论,则其为正的概率为P,而其为负的概率(N)为1-P。评论由文字组成。使用所有评论中特定单词的出现频率,我们可以计算每个单词的正值和负值。例如,以下是P,N以及“爱”一词的正负分数的计算。

P =正面评论数量/评论总数
N = 1 – P

正分数(“爱”)=频率总和。正面评论中的“爱” /频率总和。所有评论中的“爱”的总分负得分(“爱”)= 1积极得分(“爱”)

查看完整个训练数据后,我们将得到P&N,在数据集中随机抽取的任何评论的概率分别为正和负,以及训练数据中存在的每个单词的正分数和负分数。假设在训练阶段结束时,P为60%,N为40%,积极得分(“爱”)为90%,积极得分(“ Sisense”)为80%。

测试阶段
给定一个新的评论,该算法现在根据该评论中的各个单词确定该评论的正面得分和负面得分。如果正面得分大于负面得分,则将整体评论视为正面。  

为了计算评论的正面和负面分数,我们的模型使用了训练阶段获得的信息。例如,

正分数(“ Love Sisense”)=正分数(“ Love”)*正分数(“ Sisense”)* P
负分数(“ Love Sisense”)=(1-正分数(“ Love”))*(1-正面分数(“ Sisense”))*(1-P)

正面分数(「爱情Sisense」)= 0.9 * 0.8 * 0.6 = 0.43
负面分数(「爱情Sisense」)= 0.1 * 0.2 * 0.4 = 0.008

因此,“ Love Sisense”评论被归为正面评论。朴素贝叶斯算法假定每个单词独立地对评论的正面或负面贡献。它不考虑单词之间的依赖性。尽管如此,朴素贝叶斯还是一个强大的算法,可以产生强大的结果,尤其是当我们没有大量的训练数据或有关问题域的大量信息时。

建立模型
让我们回到使用朴素贝叶斯算法构建模型的过程,SQL查询的输出可作为数据框使用,建立朴素贝叶斯模型的步是用术语频率表示来表示每个评论,程序包具有一个名为内置对象,它将作为术语频率矩阵表示我们的评论。

测试模型

现在已经构建了模型,我们准备对其进行测试。这是通过在分类器上调用预测方法,然后将审核通过术语频率表示进行测试来完成的。该方法返回评论是肯定的还是否定的。 


返回列表