SnowNLP是國人開發的python類庫,可以方便的處理中文文本內容,是受到了TextBlob的啟發而寫的,由于現在大部分的自然語言處理庫基本都是針對英文的,于是寫了一個方便處理中文的類庫,并且和TextBlob不同的是,這里沒有用NLTK,所有的算法都是自己實現的,并且自帶了一些訓練好的字典。注意本程序都是處理的unicode編碼,所以使用時請自行decode成unicode。MIT許可下發行。
其 github 主頁
我自己修改了上文鏈接中的python代碼并加入些許注釋,以方便你的理解:
from snownlp import SnowNLP# SnowNLP庫:# words:分詞# tags:關鍵詞# sentiments:情感度# pinyin:拼音# keywords(limit):關鍵詞# summary:關鍵句子# sentences:語序# tf:tf值# idf:idf值s = SnowNLP(u'這個東西真心很贊')# s.words # [u'這個', u'東西', u'真心', u'很', u'贊']print(s.words)s.tags # [(u'這個', u'r'), (u'東西', u'n'), (u'真心', u'd')# , (u'很', u'd'), (u'贊', u'Vg')]print(s.sentiments)# s.sentiments # 0.9769663402895832 positive的概率# s.pinyin # [u'zhe', u'ge', u'dong', u'xi', # u'zhen', u'xin', u'hen',# u'zan']4s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')# s.han # u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。'print(s.han)
from snownlp import SnowNLPtext = u'''自然語言處理是計算機科學領域與人工智能領域中的一個重要方向。它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。自然語言處理是一門融語言學、計算機科學、數學于一體的科學。因此,這一領域的研究將涉及自然語言,即人們日常使用的語言,所以它與語言學的研究有著密切的聯系,但又有重要的區別。自然語言處理并不是一般地研究自然語言,而在于研制能有效地實現自然語言通信的計算機系統,特別是其中的軟件系統。因而它是計算機科學的一部分。'''s = SnowNLP(text)print(s.keywords(6)) # [u'語言', u'自然', u'計算機'] 不能用tags輸出關鍵字.s.summary(3) # [u'因而它是計算機科學的一部分', u'自然語言處理是一門融語言學、計算機科學、# 數學于一體的科學', u'自然語言處理是計算機科學領域與人工智能領域中的一個重要方向']s.sentences# print(s.sentences)print(s.sentiments) # 1.0s = SnowNLP([[u'這篇', u'文章'], [u'那篇', u'論文'], [u'這個']])# print(s.tf)# print(s.idf)# print(s.sim([u'文章'])) # [0.3756070762985226, 0, 0]
在編譯運行之前,先得安裝snownlp包,后續還有pylab,pandas模塊:
在VS Code終端(查看->集成終端)里面輸入:
pip install snownlp
pip install pylab
pip install pandas
前提是你安裝了pip,若是pip沒有安裝可以查看我之前的 文章
新聞熱點
疑難解答