SnowNLP:處理中文文本的Python庫

jopen 9年前發布 | 25K 次閱讀 SnowNLP 機器學習

SnowNLP是國人開發的python類庫,可以方便的處理中文文本內容,是受到了TextBlob的啟發而寫的,由于現在大部分的自然語言處理庫基本都是針對英文的,于是寫了一個方便處理中文的類庫,并且和TextBlob不同的是,這里沒有用NLTK,所有的算法都是自己實現的,并且自帶了一些訓練好的字典。注意本程序都是處理的unicode編碼,所以使用時請自行decode成unicode。MIT許可下發行。

測試了一下,速度比較慢,性能期望能再提高一下。

from snownlp import SnowNLP

s = SnowNLP(u'這個東西真心很贊')

s.words

[u'這個', u'東西', u'真心',

u'很', u'贊']

s.tags

[(u'這個', u'r'), (u'東西', u'n'),

(u'真心', u'd'), (u'很', u'd'),

(u'贊', u'Vg')]

s.sentiments

0.9769663402895832 positive的概率

s.pinyin

[u'zhe', u'ge', u'dong', u'xi',

u'zhen', u'xin', u'hen', u'zan']

s = SnowNLP(u'「繁體字」「繁體中文」的叫法在臺灣亦很常見。')

s.han

u'「繁體字」「繁體中文」的叫法

在臺灣亦很常見。'

text = u ''' 自然語言處理是計算機科學領域與人工智能領域中的一個重要方向。 它研究能實現人與計算機之間用自然語言進行有效通信的各種理論和方法。 自然語言處理是一門融語言學、計算機科學、數學于一體的科學。 因此,這一領域的研究將涉及自然語言,即人們日常使用的語言, 所以它與語言學的研究有著密切的聯系,但又有重要的區別。 自然語言處理并不是一般地研究自然語言, 而在于研制能有效地實現自然語言通信的計算機系統, 特別是其中的軟件系統。因而它是計算機科學的一部分。 '''

s = SnowNLP(text)

s.keywords(3)

[u'語言', u'自然', u'計算機']

s.summary(3)

[u'因而它是計算機科學的一部分',

u'自然語言處理是一門融語言學、計算機科學、

數學于一體的科學',

u'自然語言處理是計算機科學領域與人工智能

領域中的一個重要方向']

s.sentences

s = SnowNLP([[u'這篇', u'文章'], [u'那篇', u'論文'], [u'這個']]) s.tf s.idf s.sim([u'文章'])

[0.3756070762985226, 0, 0]</pre>

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!