基于snownlp及朴素贝叶斯的情感分析 |
您所在的位置:网站首页 › 大众点评评价是实时的吗 › 基于snownlp及朴素贝叶斯的情感分析 |
「情感分析」是对带有感情色彩的主观性文本进行分析、处理、归纳和推理的过程。按照处理文本的类别不同,可分为基于新闻评论的情感分析和基于产品评论的情感分析。其中,前者多用于舆情监控和信息预测,后者可帮助用户了解某一产品在大众心目中的口碑。 目前常见的情感极性分析方法主要是两种:基于情感词典的方法和基于机器学习的方法。 中文文本情感分析的机器学习项目,今天的流程如下: 这里的数据为大众点评上的评论数据,主要就是评论文字和打分。我们首先读入数据,看下数据的情况: 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。 定义一个函数,然后用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),这个库可以直接对文本进行情感分析(记得安装),使用方法也是很简单。返回的是积极性的概率。 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 |