python实现简单的情感分析python实现简单的情感分析
1 数据导⼊及预处理
1.1 数据导⼊
# 数据导⼊
import pandas as pd
data = pd.read_csv('../data/京东评论数据.csv')
data.head()
1.2 数据描述
# 数据描述
data.describe()
h5常用标签1.3 数据预处理
# 数据预处理
# 取出sku_Id,content字段
data1 = data[['sku_id', 'content']]
大小头c型钢data1.head(10)
2 情感分析
2.1 情感分
# 情感分析
from snownlp import SnowNLP
data1['emotion'] = data1['content'].apply(lambda x: SnowNLP(x).sentiments) data1.head()
# 情感数据描述
data1.describe()
emotion平均值为0.74,中位数为0.96,25%分位数为0.56,可见不到25%的数据造成了整体均值的较⼤下移。
2.2 情感分直⽅图
# 绘制情感分直⽅图
import matplotlib.pyplot as plt
import numpy as np
bins = np.arange(0, 1.1, 0.1)
plt.hist(data1['emotion'], bins, color = '#4F94CD', alpha=0.9)
plt.xlim(0, 1)
plt.xlabel('情感分')
plt.ylabel('数量')
plt.title('情感分直⽅图')
plt.show()
由直⽅图可见,评论内容两级分化较为严重;
3637条评论中有约2200条评论情感分在[0.9,1]区间内;同时,有约500条评论情感分在[0,0.1]区间内。2.3 词云图
# 绘制词云图(这⼉没有做停⽤词处理)
from wordcloud import WordCloud
import jieba
京东python入门教程
myfont = myfont = r'C:\Windows\f'
w = WordCloud(font_path=myfont)
text = ''
for i in data['content']:
text += i
data_cut = ' '.join(jieba.lcut(text))
image = w.to_file('词云图.png')
image
付费ppt模板网站哪个好
2.4 关键词提取
# 关键词提取top10
# 这⼉直接写import jieba运⾏会显⽰没有analyse属性素材模板大全
from jieba import analyse
key_words = act_tags(sentence=text, topK=10, withWeight=True, allowPOS=())
key_words
以上关键词显⽰,消费者⽐较在意⼿机的“屏幕”“拍照”“⼿感”等特性,“华为”“⼩⽶”是出现频次最⾼的两个⼿机品牌。参数说明 :舒圣祥博客
sentence 需要提取的字符串,必须是str类型,不能是list
topK 提取前多少个关键字
withWeight 是否返回每个关键词的权重
allowPOS是允许的提取的词性,默认为allowPOS=‘ns’, ‘n’, ‘vn’, ‘v’,提取地名、名词、动名词、动词
3 积极评论与消极评论
3.1 积极评论与消极评论占⽐
# 计算积极评论与消极评论各⾃的数⽬
pos, neg = 0, 0
for i in data1['emotion']:
if i >= 0.5:
pos += 1
else:
neg += 1
print('积极评论数⽬为:', pos, '\n消极评论数⽬为:', neg)
# 积极消极评论占⽐
import matplotlib.pyplot as plt
pie_labels = 'positive', 'negative'
plt.pie([pos, neg], labels=pie_labels, autopct='%1.2f%%', shadow=True) plt.show()
3.2 消极评论分析
# 获取消极评论的数据
data2 = data1[data1['emotion'] < 0.5]
data2.head()
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论