基于Python的微博文本情感分析判断

一、问题
根据所给数据对微博文本情感分析判断,提交代码和结果(其中结果列表(csv格式)有三列,第一列是序号,第二列是微博文本【review】,第三列是情感属性标签【label】)
二、基本思路
1.情感极性分析是对带有感情色彩的主观性文本进行分析、处理、归纳和推理的过程。按照处理文本的类别不同,可分为基于新闻评论的情感分析和基于产品评论的情感分析。其中,前者多用于舆情监控和信息预测,后者可帮助用户了解某一产品在大众心目中的口碑。
目前常见的情感极性分析方法主要是两种:基于情感词典的方法和基于机器学习的方法。而今天我要介绍的是一种最简单的情感分析方法:基于Python的SnowNLP库的情感分析。SnowNLP是python中用来处理文本内容的,可以用来分词、标注、文本情感分析等,情感分析是简单的将文本分为两类,积极和消极。
2.提取所需数据微博文本,对数据进行预处理,去除空值和重复值,然后导入数据进行情感分析,值越接近1为积极,接近0为消极,设置了判断,对于大于0.01的文本判断为积极,否则为消极。
三、程序(Python)

#加载必要 Pandas 的模块
import pandas as pd
# 读取文本数据
data = pd.read_excel('作业数据-微博爬取原始数据-1.xlsx')
data=data.iloc[:,1]
import numpy as np
from snownlp import SnowNLP
import matplotlib.pyplot as plt
sentimentslist=[]
for i in data:
    s=SnowNLP(i)
    sentimentslist.append(s.sentiments)
plt.hist(sentimentslist,bins=np.arange(0,1,0.01),facecolor='g')
plt.xlabel('Sentiments Probability')
plt.ylabel('Quantity')
plt.title('Analysis of Sentiments')
plt.show()
import numpy as np
y=np.zeros(len(data))
for i in range(len(y)):
    if sentimentslist[i]>=0.01:
        y[i]=1
    else:
        y[i]=0
y=pd.DataFrame(y)
data=pd.concat([data,y],axis=1)
ID=np.arange(1,len(data)+1)
result={'序号':ID,'review':data.iloc[:,0],'label':data.iloc[:,1]}
result=pd.DataFrame(result)
result.to_excel('result.xlsx')

四、结果(截图)
基于Python的微博文本情感分析判断_第1张图片
基于Python的微博文本情感分析判断_第2张图片

你可能感兴趣的:(Python,python,机器学习,数据挖掘)