基于snownlp及朴素贝叶斯的情感分析

您所在的位置:网站首页 大众点评评价是实时的吗 基于snownlp及朴素贝叶斯的情感分析

基于snownlp及朴素贝叶斯的情感分析

2024-02-25 20:26| 来源: 网络整理| 查看: 265

「情感分析」是对带有感情色彩的主观性文本进行分析、处理、归纳和推理的过程。按照处理文本的类别不同,可分为基于新闻评论的情感分析和基于产品评论的情感分析。其中,前者多用于舆情监控和信息预测,后者可帮助用户了解某一产品在大众心目中的口碑。 目前常见的情感极性分析方法主要是两种:基于情感词典的方法和基于机器学习的方法。

中文文本情感分析的机器学习项目,今天的流程如下: 在这里插入图片描述

数据情况和处理 数据情况

这里的数据为大众点评上的评论数据,主要就是评论文字和打分。我们首先读入数据,看下数据的情况:

import numpy as np import pandas as pd data = pd.read_csv('comment_dazhongdianping.csv',encoding="utf-8-sig") data.head() print(data)

在这里插入图片描述

情感划分

对star字段看唯一值,打分有1,2,4,5。 在这里插入图片描述 中文文本情感分析属于我们的分类问题(也就是消极和积极),这里是分数,那我们设计代码,让分数小于3的为消极(0),大于3的就是积极(1)。

定义一个函数,然后用apply方法,这样就得到了一个新列(数据分析里的知识点)

#分数小于3的为消极(0),大于3的就是积极(1) def make_label(star): if star > 3: return 1 else: return 0 #结果写入一个新列sentiment data['sentiment'] = data.star.apply(make_label) print(data)

在这里插入图片描述

工具包(snownlp)

我们首先不用机器学习方法,我们用一个第三库(snownlp),这个库可以直接对文本进行情感分析(记得安装),使用方法也是很简单。返回的是积极性的概率。

from snownlp import SnowNLP text1 = '这个东西不错' text2 = '这个东西很垃圾' s1 = SnowNLP(text1) s2 = SnowNLP(text2) #显示分词 print(",".join(s1.words)) print(",".join(s2.words)) #显示情感值 print(s1.sentiments,s2.sentiments) # result 0.8623218777387431 0.21406279508712744

这样,我们就定义大于0.6,就是积极的,同样的方法,就能得到结果。

# 用snownlp进行情感分析,定义大于0.6,就是积极的 def snow_result(comemnt): s = SnowNLP(comemnt) if s.sentiments >= 0.6: return 1 else: return 0 #结果写入一个新列snlp_result data['snlp_result'] = data.comment.apply(snow_result) print(data)



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3