現如今各種APP、微信訂閱號、微博、購物網站等網站都允許用戶發表一些個人看法、意見、態度、評價、立場等信息。針對這些數據,我們可以利用情感分析技術對其進行分析,總結出大量的有價值信息。例如對商品評論的分析,可以了解用戶對商品的滿意度,進而改進產品;通過對一個人分布內容的分析,了解他的情緒變化,哪種情緒多,哪種情緒少,進而分析他的性格。怎樣知道哪些評論是正面的,哪些評論是負面的呢?正面評價的概率是多少呢?
利用python的第三方模塊SnowNLP可以實現對評論內容的情感分析預測,SnowNLP可以方便的處理中文文本內容,如中文分詞、詞性標注、情感分析、文本分類、提取文本關鍵詞、文本相似度計算等。大概大于等于0.5,可以判斷為正面評價——積極情感,小于0.5,可以判斷為負面評價——消極情感。
下面分析一組京東上某產品的評論數據并生成折線圖:
部分源數據:
實現過程:
#加載情感分析模塊
from snownlp import SnowNLP
#from snownlp import sentiment
import pandas as pd
import matplotlib.pyplot as plt
#導入樣例數據
aa ='F:\\python入門\\python編程錦囊\\Code(實例源碼及使用說明)\\Code(實例源碼及使用說明)\\Code(實例源碼及使用說明)\\09\\data\\京東評論.xls'
#讀取文本數據
df=pd.read_excel(aa)
#提取所有數據
df1=df.iloc[:,3]
print('將提取的數據打印出來:\n',df1)
#遍歷每條評論進行預測
values=[SnowNLP(i).sentiments for i in df1]
#輸出積極的概率,大于0.5積極的,小于0.5消極的
#myval保存預測值
myval=[]
good=0
bad=0
for i in values:
if (i>=0.5):
myval.append("正面")
good=good+1
else:
myval.append("負面")
bad=bad+1
df['預測值']=values
df['評價類別']=myval
#將結果輸出到Excel
df.to_excel('F:\\python入門\\python編程錦囊\\Code(實例源碼及使用說明)\\Code(實例源碼及使用說明)\\Code(實例源碼及使用說明)\\09\\data\\result2.xls')
rate=good/(good+bad)
print('好評率','%.f%%' % (rate * 100)) #格式化為百分比
#作圖
y=values
plt.rc('font', family='SimHei', size=10)
plt.plot(y, marker='o', mec='r', mfc='w',label=u'評價分值')
plt.xlabel('用戶')
plt.ylabel('評價分值')
# 讓圖例生效
plt.legend()
#添加標題
plt.title('京東評論情感分析',family='SimHei',size=14,color='blue')
plt.show()
Excel結果:
作圖的結果:
以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持我們。
本文標題: Python實現爬取并分析電商評論
本文地址: http://www.cppcns.com/jiaoben/python/321381.html
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态