python snownlp情感分析簡(jiǎn)易demo(分享)
SnowNLP是國(guó)人開發(fā)的python類庫(kù),可以方便的處理中文文本內(nèi)容,是受到了TextBlob的啟發(fā)而寫的,由于現(xiàn)在大部分的自然語言處理庫(kù)基本都是針對(duì)英文的,于是寫了一個(gè)方便處理中文的類庫(kù),并且和TextBlob不同的是,這里沒有用NLTK,所有的算法都是自己實(shí)現(xiàn)的,并且自帶了一些訓(xùn)練好的字典。注意本程序都是處理的unicode編碼,所以使用時(shí)請(qǐng)自行decode成unicode。MIT許可下發(fā)行。
其 github 主頁
我自己修改了上文鏈接中的python代碼并加入些許注釋,以方便你的理解:
from snownlp import SnowNLP
text = u'''
自然語言處理是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向。
它研究能實(shí)現(xiàn)人與計(jì)算機(jī)之間用自然語言進(jìn)行有效通信的各種理論和方法。
自然語言處理是一門融語言學(xué)、計(jì)算機(jī)科學(xué)、數(shù)學(xué)于一體的科學(xué)。
因此,這一領(lǐng)域的研究將涉及自然語言,即人們?nèi)粘J褂玫恼Z言,
所以它與語言學(xué)的研究有著密切的聯(lián)系,但又有重要的區(qū)別。
自然語言處理并不是一般地研究自然語言,
而在于研制能有效地實(shí)現(xiàn)自然語言通信的計(jì)算機(jī)系統(tǒng),
特別是其中的軟件系統(tǒng)。因而它是計(jì)算機(jī)科學(xué)的一部分。
'''
s = SnowNLP(text)
print(s.keywords(6)) # [u'語言', u'自然', u'計(jì)算機(jī)'] 不能用tags輸出關(guān)鍵字.
s.summary(3) # [u'因而它是計(jì)算機(jī)科學(xué)的一部分', u'自然語言處理是一門融語言學(xué)、計(jì)算機(jī)科學(xué)、
# 數(shù)學(xué)于一體的科學(xué)', u'自然語言處理是計(jì)算機(jī)科學(xué)領(lǐng)域與人工智能領(lǐng)域中的一個(gè)重要方向']s.sentences
# print(s.sentences)
print(s.sentiments) # 1.0
s = SnowNLP([[u'這篇', u'文章'],
[u'那篇', u'論文'],
[u'這個(gè)']])
# print(s.tf)
# print(s.idf)
# print(s.sim([u'文章'])) # [0.3756070762985226, 0, 0]在編譯運(yùn)行之前,先得安裝snownlp包,后續(xù)還有pylab,pandas模塊:
在VS Code終端(查看->集成終端)里面輸入:
pip install snownlp
pip install pylab
pip install pandas
前提是你安裝了pip,若是pip沒有安裝可以查看我之前的 文章
在VS Code中我們可以右鍵模塊名查看定義,便能看到模塊的實(shí)現(xiàn)了.不得不說VS Code很強(qiáng)大,希望微軟能這么一直走下去,走向開源走向跨平臺(tái)??!
然后我隨便提取了《心靈捕手》豆瓣網(wǎng)評(píng),放在了txt中:
It is not ur fault!
我是在電視上偶爾才看到這個(gè)電影的,當(dāng)時(shí)看的時(shí)候真的很感人。 為什么會(huì)有這么天才的人,卻有著這樣子曲折的人生。
是認(rèn)為劇本很好卻沒有被完全拍出來:) 對(duì)演員的表演還是心存質(zhì)疑一點(diǎn)點(diǎn)~ 呵呵
好評(píng)
前幾日剛剛看過,一部觸動(dòng)心靈的電影,尋找真正的人生
這篇影評(píng)寫的很棒,我的眼睛濕潤(rùn)了
很好的片子
最后就是處理的程序了:
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) 評(píng)')
pl.xlabel(u'評(píng) 論 用 戶')
pl.ylabel(u'情 感 程 度')
pl.show()最后的效果:

可能有些不準(zhǔn)確,我也是隨便提取的數(shù)據(jù),不過snownlp還是號(hào)稱情感分析準(zhǔn)確很高的!
以上這篇python snownlp情感分析簡(jiǎn)易demo(分享)就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Python web框架(django,flask)實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)讀寫分離的示例
這篇文章主要介紹了Python web框架(django,flask)實(shí)現(xiàn)mysql數(shù)據(jù)庫(kù)讀寫分離的示例,幫助大家更好的理解和學(xué)習(xí)python,感興趣的朋友可以了解下2020-11-11
Python中高效抓取數(shù)據(jù)的實(shí)戰(zhàn)指南
在數(shù)據(jù)驅(qū)動(dòng)的時(shí)代,網(wǎng)絡(luò)爬蟲已成為獲取信息的核心工具,本文將用通俗的語言,帶您掌握Python爬蟲結(jié)合代理IP抓取數(shù)據(jù)的全流程,希望對(duì)大家有一定的幫助2025-04-04
Python使用Tabulate庫(kù)實(shí)現(xiàn)格式化表格數(shù)據(jù)
在數(shù)據(jù)分析和軟件開發(fā)中,表格數(shù)據(jù)的展示是一個(gè)常見的需求,無論是簡(jiǎn)單的數(shù)據(jù)報(bào)告,還是復(fù)雜的數(shù)據(jù)可視化,表格都是一種直觀且有效的信息展示方式,tabulate庫(kù)是一個(gè)非常實(shí)用的工具,它可以幫助我們輕松地將數(shù)據(jù)格式化為各種表格形式,本文將詳細(xì)介紹tabulate庫(kù)的使用方法2025-02-02
使用Python實(shí)現(xiàn)PDF文本的自動(dòng)替換或修改功能
在處理PDF文檔時(shí),我們有時(shí)會(huì)遇到需要更新文檔中文字內(nèi)容的情況,手動(dòng)打開 PDF 文件,逐一查找并修改文字內(nèi)容是一項(xiàng)繁瑣且容易出錯(cuò)的工作,這篇文章將介紹如何使用Python實(shí)現(xiàn)PDF文本的自動(dòng)替換,需要的朋友可以參考下2025-02-02
一些讓Python代碼簡(jiǎn)潔的實(shí)用技巧總結(jié)
隨著項(xiàng)目代碼行數(shù)的增加,不可避免的遇到軟件架構(gòu)腐敗的問題,所以如何寫出簡(jiǎn)潔的代碼至關(guān)重要,這篇文章主要給大家介紹了一些讓Python代碼簡(jiǎn)潔的實(shí)用技巧,需要的朋友可以參考下2021-08-08
Python基礎(chǔ)之字典常見操作經(jīng)典實(shí)例詳解
這篇文章主要介紹了Python基礎(chǔ)之字典常見操作,結(jié)合實(shí)例形式詳細(xì)分析了Python基本功能、創(chuàng)建、內(nèi)置函數(shù)與相關(guān)使用技巧,需要的朋友可以參考下2020-02-02
對(duì)python當(dāng)中不在本路徑的py文件的引用詳解
今天小編就為大家分享一篇對(duì)python當(dāng)中不在本路徑的py文件的引用詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12

