1. 程式人生 > >python的nltk中文使用和學習資料彙總幫你入門提高

python的nltk中文使用和學習資料彙總幫你入門提高

nltk是一個python工具包, 用來處理和自然語言處理相關的東西. 包括分詞(tokenize), 詞性標註(POS), 文字分類, 等等現成的工具.

1. nltk的安裝

資料1.2: 把python自然語言處理的nltk_data打包到360雲盤,然後共享給朋友們 http://www.cnblogs.com/ToDoToTry/archive/2013/01/18/2865941.html 這個是作者將接近300M的nltk_data上傳到百度雲了, 我覺得, 可以試試下載, 畢竟使用資料1中nltk自帶的download()方法, 從官方網站下載所有的資料包需要很長時間.

補充: 有人說, 這個下載的連結已經失效了, 我把我用的nltk2.0的data目錄裡的zip檔案打包傳到百度雲盤了, 290多M, 上傳我費了好多時間, 你們可以去下載: http://pan.baidu.com/s/1hq7UUFU

2. nltk初步使用入門

資料2.1  PYTHON自然語言處理中文翻譯 NLTK 中文版.pdf http://ishare.iask.sina.com.cn/f/23996193.html 中文版的《PYTHON自然語言處理》 這是一個好書,強烈推薦。這本書雖然早就有人翻譯成中文了,但是還有些精力旺盛的博主還在翻譯,比如這位 http://www.cnblogs.com/yuxc/archive/2011/08/29/2157415.html 《Python自然語言處理》學習筆記索引。 他翻譯了很多, 中英文夾雜的,精神可嘉,做法不可取。不知道別人早就翻譯完了這本書嗎?

這篇, 初步介紹瞭如何開始使用nltk的語料和他的一些常用方法. 有點python基礎的可以直接看了.之所以放在這裡, 還是因為, 只有安裝好了才可以進行到這一步.

這一篇也挺淺顯易懂的.

3.nltk初中級應用

這個是ibm的磚家寫的資料, 但是這個不能作為入門資料, 可以歸結到初級應用資料. 對於那些動手能力弱的人, 這個文章真的不是那麼好懂的, 所以不適合入門看, 而適合那些喜歡寫程式碼, 喜歡鼓搗折騰的人看.

資料3.3: Classify Text With NLTK http://blog.csdn.net/fxjtoday/article/details/5862041 別看標題是英文的, 實際上內容是中英文混合的, 不過這個比上面一篇簡單些. 主要就是使用nltk對一些姓名 性別進行訓練, 並預測測試語料中的姓名是啥性別. 這篇文章能夠讓你對 分類, 樣本特徵稍微有個初步入門.

4.使用nltk來處理中文資料

nltk 怎麼樣使用中文?這是個大問題。這麼個工具目前只能比較好的處理英文和其他的一些拉丁語系,誰讓別人的單詞與單詞之間有個空格隔開呢!中文漢字一個挨一個的,nltk在分詞這一關就過不去了,分詞沒法分,剩下的就都做不了。唯一能做的, 就是對網上現有的中文語料進行處理,這些語料都分好了詞,可以使用nltk進行類似與英文的處理。

python處理中文首先需要設定一下文字的編碼, 檔案的首行加上: #coding utf-8 這個是給python直譯器識別的,然後檔案儲存的時候,還需要儲存為utf-8的編碼。

這些編碼設定完了, ntlk還是處理不了中文。

nltk處理中文的第一步障礙就是中文資料不是分好詞的, 詞語與詞語之間沒有空格。要使用nltk對中文進行處理, 首先的第一步就是中文分詞(臺灣叫中文斷詞)。

目前python中文分詞的包,我推薦使用結巴分詞。 使用結巴分詞,之後,就可以對輸出文字使用nltk進行相關處理。

當然中文分詞, 不應該成為使用nltk的障礙,或許很多人認為,既然用nltk,那麼nltk就應該支援中文。但是我們得認清現實,現實就是nltk就是不支援處理中文,因此,這個給國內很多自然語言處理的研究人員有了研究的空間了,nltk既然沒做中文分詞,那麼中國人就應該自己做了這個。一個口碑比較好的中文分詞工具就是ICTCLAS中文分詞。

當然,我個人覺得中國人自己開發的純python實現的結巴分詞也不錯。

總的來說,nltk不提供中文分詞,不應該糾結於此,並止步不前,我們完全可以使用其他的中文分詞工具,將需要處理的資料分好詞,然後再使用nltk進行處理,因此,這裡就不多說中文分詞的那點事了。如果你因為中文分詞而分心,並轉向到中文分詞的研究之中,那麼你就掉入了另外一個深坑之中。牢記本文的主題是nltk。當然需要多囉嗦一點的就是,nltk的預設詞性標註集使用的是Penn Treebank 的詞性標註集,因此,你選用中文分詞模組的時候,最好能夠使用和penn詞性標註集差不多的中文分詞工具,當然,不一樣也沒事。

5.nltk的高階應用入門

啥叫高階啊? 就是基礎掌握了之後,開始運用實際工作了,就叫高階。比如什麼統計推薦,評分,機器翻譯,文字分類,輿情監控等等都是高階應用。

下面是些入門資料。

6. nltk的精通

何謂精通? 精通就是熟練的表達你的想法。

何謂精通一個工具? 就是你想做什麼, 你就能用這個工具順利的完成。do everything you want with nltk.

至於如何精通,建議多看英文資料和多動手操練。nltk官方文件, 一些參與nltk的大學研究機構,北大,清華的語言研究以及國際語言研究機構acl所發的論文等等。

假設你目前真的熟練的掌握了nltk的各種玩法了,那麼, 你精通的標誌就是改造nltk, 使它功能更強,更優,更快,更方便。

比如:

6.1 整合結巴分詞到nltk的分詞器之中

6.2 在國內多弄幾個地方,放置nltk_data資料包,方便大家下載

6.3 給nltk提供語料

等等,剩下的由你來補充。

最後說一句: nltk的中文資料確實不多,坑爹吧?相信很多人卡在了中文分詞那一步。。。堅定的要求用nltk進行中文分詞的朋友,還是先跳過這一步吧. 另外, 喜歡python和自然語言處理的朋友可以加我的QQ群:Python自然語言處理群(220373876), 歡迎來參與討論.