python snownlp情感分析簡易demo(分享)
SnowNLP是國人開發(fā)的python類庫,可以方便的處理中文文本內(nèi)容,是受到了TextBlob的啟發(fā)而寫的,由于現(xiàn)在大部分的自然語言處理庫基本都是針對英文的,于是寫了一個方便處理中文的類庫,并且和TextBlob不同的是,這里沒有用NLTK,所有的算法都是自己實現(xiàn)的,并且自帶了一些訓(xùn)練好的字典。注意本程序都是處理的unicode編碼,所以使用時請自行decode成unicode。MIT許可下發(fā)行。
其 github 主頁
我自己修改了上文鏈接中的python代碼并加入些許注釋,以方便你的理解:
from snownlp import SnowNLP text = u''' 自然語言處理是計算機科學領(lǐng)域與人工智能領(lǐng)域中的一個重要方向。 它研究能實現(xiàn)人與計算機之間用自然語言進行有效通信的各種理論和方法。 自然語言處理是一門融語言學、計算機科學、數(shù)學于一體的科學。 因此,這一領(lǐng)域的研究將涉及自然語言,即人們?nèi)粘J褂玫恼Z言, 所以它與語言學的研究有著密切的聯(lián)系,但又有重要的區(qū)別。 自然語言處理并不是一般地研究自然語言, 而在于研制能有效地實現(xiàn)自然語言通信的計算機系統(tǒng), 特別是其中的軟件系統(tǒng)。因而它是計算機科學的一部分。 ''' s = SnowNLP(text) print(s.keywords(6)) # [u'語言', u'自然', u'計算機'] 不能用tags輸出關(guān)鍵字. s.summary(3) # [u'因而它是計算機科學的一部分', u'自然語言處理是一門融語言學、計算機科學、 # 數(shù)學于一體的科學', u'自然語言處理是計算機科學領(lǐng)域與人工智能領(lǐng)域中的一個重要方向']s.sentences # print(s.sentences) print(s.sentiments) # 1.0 s = SnowNLP([[u'這篇', u'文章'], [u'那篇', u'論文'], [u'這個']]) # print(s.tf) # print(s.idf) # print(s.sim([u'文章'])) # [0.3756070762985226, 0, 0]
在編譯運行之前,先得安裝snownlp包,后續(xù)還有pylab,pandas模塊:
在VS Code終端(查看->集成終端)里面輸入:
pip install snownlp
pip install pylab
pip install pandas
前提是你安裝了pip,若是pip沒有安裝可以查看我之前的 文章
在VS Code中我們可以右鍵模塊名查看定義,便能看到模塊的實現(xiàn)了.不得不說VS Code很強大,希望微軟能這么一直走下去,走向開源走向跨平臺??!
然后我隨便提取了《心靈捕手》豆瓣網(wǎng)評,放在了txt中:
It is not ur fault!
我是在電視上偶爾才看到這個電影的,當時看的時候真的很感人。 為什么會有這么天才的人,卻有著這樣子曲折的人生。
是認為劇本很好卻沒有被完全拍出來:) 對演員的表演還是心存質(zhì)疑一點點~ 呵呵
好評
前幾日剛剛看過,一部觸動心靈的電影,尋找真正的人生
這篇影評寫的很棒,我的眼睛濕潤了
很好的片子
最后就是處理的程序了:
from snownlp import SnowNLP import pandas as pd import pylab as pl txt = open('F:/_analyse_Emotion.txt') text = txt.readlines() txt.close() print('讀入成功') sentences = [] senti_score = [] for i in text: a1 = SnowNLP(i) a2 = a1.sentiments sentences.append(i) # 語序... senti_score.append(a2) print('doing') table = pd.DataFrame(sentences, senti_score) # table.to_excel('F:/_analyse_Emotion.xlsx', sheet_name='Sheet1') # ts = pd.Series(sentences, senti_score) # ts = ts.cumsum() # print(table) x = [1, 2, 3, 4, 5, 6, 7, 8] pl.mpl.rcParams['font.sans-serif'] = ['SimHei'] pl.plot(x, senti_score) pl.title(u'心 靈 捕 手 網(wǎng) 評') pl.xlabel(u'評 論 用 戶') pl.ylabel(u'情 感 程 度') pl.show()
最后的效果:
可能有些不準確,我也是隨便提取的數(shù)據(jù),不過snownlp還是號稱情感分析準確很高的!
以上這篇python snownlp情感分析簡易demo(分享)就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python中pow()和math.pow()函數(shù)用法示例
這篇文章主要介紹了Python中pow()和math.pow()函數(shù)用法,結(jié)合具體實例形式分析了Python使用pow()和math.pow()函數(shù)進行冪運算的相關(guān)操作技巧,需要的朋友可以參考下2018-02-02實踐Python的爬蟲框架Scrapy來抓取豆瓣電影TOP250
這篇文章主要介紹了實踐Python的爬蟲框架Scrapy來抓取豆瓣電影TOP250的過程,文中的環(huán)境基于Windows操作系統(tǒng),需要的朋友可以參考下2016-01-01使用Python實現(xiàn)將PDF轉(zhuǎn)為圖片
這篇文章主要為大家詳細介紹了python如何借用第三方庫Spire.PDF for Python,從而實現(xiàn)將PDF轉(zhuǎn)為圖片的功能,感興趣的小伙伴可以跟隨小編一起學習一下2023-10-10