nltk中文python
① 使用python中的NLTK包調用Stanford CoreNLP API服務
NLTK(Natural Language Toolkit)是Python中用於自然語言處理的包,提供了多種功能如分詞、詞性標注和詞形還原,並內置多種語言的停用詞。其使用例子包括:
Stanford CoreNLP是由斯坦福大學自然語言處理團隊開發的自然語言處理軟體,提供了文本分詞、詞性標注、詞形還原等功能,支持GUI界面操作及程序API調用。相比於NLTK,CoreNLP在句子成分解析、情感分析等方面性能更優。
由於NLTK的局限性,在需要進行復雜自然語言處理任務時,調用CoreNLP API服務成為必要。NLTK通過介面與CoreNLP集成,使用戶能夠利用其強大功能。
在NLTK中調用CoreNLP API服務的過程如下:
首先,確保使用的是NLTK 3.4.5版以及CoreNLP 3.9.2版。下載CoreNLP軟體後,將其存放在安全位置,如:
~/Desktop/畢業論文/stanford-corenlp-full-2018-10-05
使用命令行工具,切換至CoreNLP軟體文件夾所在路徑,開啟API服務。成功後,通過瀏覽器訪問http://localhost:9000,即可驗證服務是否開啟。
完成API服務啟動後,即可在Python中使用NLTK調用CoreNLP進行句子成分解析。示例代碼如下:
② 如何用 Python 中的 NLTK 對中文進行分析和處理
我感覺用nltk 處理中文是完全可用的。其重點在於中文分詞和文本表達的形式。
中文和英文主要的不同之處是中文需要分詞。因為nltk 的處理粒度一般是詞,所以必須要先對文本進行分詞然後再用nltk 來處理(不需要用nltk 來做分詞,直接用分詞包就可以了。嚴重推薦結巴分詞,非常好用)。
中文分詞之後,文本就是一個由每個片語成的長數組:[word1, word2, word3…… wordn]。之後就可以使用nltk 裡面的各種方法來處理這個文本了。比如用FreqDist 統計文本詞頻,用bigrams 把文本變成雙片語的形式:[(word1, word2), (word2, word3), (word3, word4)……(wordn-1, wordn)]。
再之後就可以用這些來計算文本詞語的信息熵、互信息等。
再之後可以用這些來選擇機器學習的特徵,構建分類器,對文本進行分類(商品評論是由多個獨立評論組成的多維數組,網上有很多情感分類的實現例子用的就是nltk 中的商品評論語料庫,不過是英文的。但整個思想是可以一致的)。
另外還有一個困擾很多人的Python 中文編碼問題。多次失敗後我總結出一些經驗。
Python 解決中文編碼問題基本可以用以下邏輯:
utf8(輸入) ——> unicode(處理) ——> (輸出)utf8
Python 裡面處理的字元都是都是unicode 編碼,因此解決編碼問題的方法是把輸入的文本(無論是什麼編碼)解碼為(decode)unicode編碼,然後輸出時再編碼(encode)成所需編碼。
由於處理的一般為txt 文檔,所以最簡單的方法,是把txt 文檔另存為utf-8 編碼,然後使用Python 處理的時候解碼為unicode(sometexts.decode('utf8')),輸出結果回txt 的時候再編碼成utf8(直接用str() 函數就可以了)。
③ python中的nltk是什麼
nltk(natural
language
toolkit)是python的自然語言處理工具包。自然語言是指人們日常交流使用的語言,如英語,印地語,葡萄牙語等。「自然語言處理」(Natural
Language
Processing
簡稱NLP)包含所有用計算機對自然語言進行的操作,從最簡單的通過計數詞出現的頻率來比較不同的寫作風格,到最復雜的完全「理解」人所說的話,至少要能達到對人的話語作出有效反應的程度。