pandas之中文分詞,詞雲,情感分析,語義分析4


中文情感分析 - SnowNLP


情感分析(Sentiment analysis,SA),又稱傾向性分析、意見抽取(Opinion extraction)、意見挖掘(Opinion mining)、情感挖掘(Sentiment mining)、主觀分析(Subjectivity analysis)

情感分析是對帶有情感色彩的主觀性文本進行分析、處理、歸納和推理的過程

情感分析的目的是為了找出說話者/作者在某些話題上或者針對一個文本兩極觀點的態度。這個態度或許是他或她的個人判斷或是評估,也許是他當時的情感狀態(就是說,作者在做出這個言論時的情緒狀態),或是作者有意向的情感交流(就是作者想要讀者所體驗的情緒)

文本情感分析的應用非常廣泛,如網絡輿情風險分析,信息預測等。如通過Twitter用戶情感預測股票走勢,電影票房、選舉結果等,均是將公眾情緒與社會事件對比,發現一致性,並用於預測

 

首先安裝SnowNLP中文情感分析庫:

pip install snownlp

SnowNLP(Simplified Chinese Text Processing),是一個python語言編寫的類庫,可以方便的處理中文文本內容,其開發受到了TextBlob的啟發

import pandas as pd
import matplotlib.pyplot as plt
from snownlp import SnowNLP

 

案例分析

  1. 數據載入  
  2. 數據預處理
  3. 將所有數據打分
  4. 將分數合並會原表格
  5. 計算指標
df = pd.read_excel('data/飯店留言數據.xlsx')
# 截取一部分 columns(comments&date)
0	這輩子最愛吃的火鍋,一星期必吃一次啊!最近才知道他家還有免費雞蛋羹………………炒雞好吃炒雞嫩...	2017-05-14 16:00:00
1	第N次來了,還是喜歡?……<br><br>從還沒上A餐廳的樓梯開始,服務員已經在那迎賓了,然...	2017-05-10 16:00:00
2	大姨過生日,姐姐定的這家A餐廳的包間,服務真的是沒得說,A餐廳的服務也是讓我由衷的欣賞,很久...	2017-04-20 16:00:00
3	A餐廳的服務哪家店都一樣,體貼入微。這家店是我吃過的排隊最短的一家,當然也介於工作日且比較晚...	2017-04-25 16:00:00
4	因為下午要去天津站接人,然后我倩前幾天就說想吃A餐廳,然后正好這有,就來這吃了。<br>來的...	2017-05-21 16:00:00
5	A餐廳是我們的定點單位,單位大聚小聚都來這,所以享受VIP待遇,來了不用等位。這的菜品新鮮,...	2017-05-05 16:00:00

# 2
df.info()

# 3
def aaa(x):
    return SnowNLP(x).sentiments

grade = df['comments'].apply(aaa)
grade  # 科學計數法

# 4 
df['grade'] = grade
df.head()

# 5
# 平均分
df.grade.mean()
# 中位數
df.grade.median()
# 快速分布
df.grade.describe()
基礎結論:中位數比平均值高很多,說明有少量異常低的評分拉低了均值

可視化

df2 = df[['date', 'grade']].set_index('date').sort_index()
# 看分數分布情況,直方圖最合適
df2.plot.hist()
df2.plot.kde()
plt.scatter(df2.index, df2['grade'])
plt.boxplot(
    df['grade'],  # 數據
    showmeans = True, # 是否顯示平均值,默認不顯示

    widths = 0.5, # 柱子寬度

    vert = True, # 默認True縱向,False橫向
    patch_artist = True,  # 是否填充顏色
    boxprops = {'facecolor':'#ffff00','color':'green'}, # 箱體樣式
)

plt.grid(linewidth=0.2)

#以分數排序,查看打分准確率、

結論

准確率比瞎猜高,但達不到人工打分准確率

SnowNLP庫的訓練基准數據是基於電商銷售產品訓練的,對飯店留言數據的打分准確率一般

做情感分析最好用戶自行實現(網站增加打分功能,用戶自行打分)

  

  

 


免責聲明!

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



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