1. 程式人生 > 程式設計 >Python實現爬取並分析電商評論

Python實現爬取並分析電商評論

  現如今各種APP、微信訂閱號、微博、購物網站等網站都允許使用者發表一些個人看法、意見、態度、評價、立場等資訊。針對這些資料,我們可以利用情感分析技術對其進行分析,總結出大量的有價值資訊。例如對商品評論的分析,可以瞭解使用者對商品的滿意度,進而改進產品;通過對一個人分佈內容的分析,瞭解他的情緒變化,哪種情緒多,哪種情緒少,進而分析他的性格。怎樣知道哪些評論是正面的,哪些評論是負面的呢?正面評價的概率是多少呢?

  利用python的第三方模組SnowNLP可以實現對評論內容的情感分析預測,SnowNLP可以方便的處理中文文字內容,如中文分詞、詞性標註、情感分析、文字分類、提取文字關鍵詞、文字相似度計算等。大概大於等於0.5,可以判斷為正面評價——積極情感,小於0.5,可以判斷為負面評價——消極情感。

  下面分析一組京東上某產品的評論資料並生成折線圖:

部分源資料:

Python實現爬取並分析電商評論

實現過程:

#載入情感分析模組
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('京東評論情感分析',size=14,color='blue')
plt.show()

Excel結果:

Python實現爬取並分析電商評論

作圖的結果:

Python實現爬取並分析電商評論

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支援我們。