今天參加 NLP 實作內訓課程時得知一個很棒的開源 NLP 套件, 它與 Jieba 一樣也是左岸的 NLP 專家開發的 (但繁體字也能處理), 主要功能是可以做中文情緒分析, 除此之外還能做斷詞, 詞性標註, 關鍵字擷取, 文本分類等任務, 參考 :
一. 安裝 snownlp :
可直接使用 pip install 安裝 :
pip install snownlp
或在 Thonny 編輯器的 "工具/套件管理" 選單搜尋 snownlp 後按 "安裝" :
二. 斷詞與情緒分析 :
安裝好後即可從 snownlp 套件匯入 SnowNLP 類別 (注意大小寫) :
>>> from snownlp import SnowNLP
>>> s=SnowNLP(u'前面就是中正紀念堂了')
>>> type(s)
<class 'snownlp.SnowNLP'>
用 dir() 檢視物件成員 :
>>> dir(s)
['__class__', '__delattr__', '__dict__', '__dir__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__gt__', '__hash__', '__init__', '__init_subclass__', '__le__', '__lt__', '__module__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__setattr__', '__sizeof__', '__str__', '__subclasshook__', '__weakref__', 'bm25', 'doc', 'han', 'idf', 'keywords', 'pinyin', 'sentences', 'sentiments', 'sim', 'summary', 'tags', 'tf', 'words']
其中 words 屬性為斷詞結果 (串列), 而 sentiments 為情緒分析.
>>> s.words
['前面', '就', '是', '中', '正', '紀念堂', '了']
>>> s.sentiments
0.7730989930380656
此句被預測為正評或積極 (較接近 1).
>>> s=SnowNLP(u'看來是沒希望了')
>>> s.words
['看', '來', '是', '沒', '希望', '了']
>>> s.sentiments
0.5395438335580692
此句被預測為中立, 我還以為是分數會很低哩.
>>> s=SnowNLP(u'你是豬嗎?')
>>> s.words
['你', '是', '豬', '嗎', '?']
>>> s.sentiments
0.2727933174049615
這句明顯是負評 (接近 0).
>>> s=SnowNLP(u'你真的棒呆了!')
>>> s.words
['你', '真的', '棒', '呆', '了', '!']
>>> s.sentiments
0.9706627527752877
此句非常接近 1, 當然是正評.
沒有留言:
張貼留言