python實現電商評論的情感分析


  現如今各種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結果:

 

 作圖的結果:

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM