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

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

1. nltk的安裝

資料1.1: 黃聰:Python+NLTK自然語言處理學習(一):環境搭建  http://www.cnblogs.com/huangcong/archive/2011/08/29/2157437.html   這個圖文並茂, 步驟清晰, 值得一看. 我想我沒必要再重新寫一遍了, 因爲我當時也是按照他這樣做的.

資料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

資料1.3: Ubuntu上安裝NLTK出現的問題與解決方法 http://www.cnblogs.com/mengshu-lbq/archive/2012/09/19/2694135.html 需要的看看吧

資料1.4: 安裝nltk遇到的小問題 http://blog.upupbug.com/?p=106 

資料1.5  安裝nltk後導入語料的時候出錯, 一般是一些依賴包沒安裝 http://blog.tianya.cn/blogger/post_show.asp?BlogID=762305&PostID=8954744

資料1.6 NLTK中文化處理及文字筆畫音調剖析工具整合套件 http://tm.itc.ntnu.edu.tw/CNLP/?q=node/5 臺灣一個大學對nltk的介紹

資料1.7 windows下如何安裝NLTK,並使用模塊nltk?http://zhidao.baidu.com/question/567881533.html

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自然語言處理》學習筆記索引。 他翻譯了很多, 中英文夾雜的,精神可嘉,做法不可取。不知道別人早就翻譯完了這本書嗎?

資料2.2: 黃聰:Python+NLTK自然語言處理學習(二):常用方法(similar、common_contexts、generate) http://www.cnblogs.com/huangcong/archive/2011/08/29/2158054.html  

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

資料2.3 黃聰:Python+NLTK自然語言處理學習(三):計算機自動學習機制 http://www.cnblogs.com/huangcong/archive/2011/08/29/2158447.html  

這一篇也挺淺顯易懂的.

資料2.4 python中nltk.parse_cfg是幹什麼用的 求例子 http://zhidao.baidu.com/question/552627368.html 

3.nltk初中級應用

資料3.1: 可愛的 Python: 自然語言工具包入門 http://www.ibm.com/developerworks/cn/linux/l-cpnltk/

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

資料3.2 詞性標註 http://blog.csdn.net/fxjtoday/article/details/5841453 這篇文章介紹了默認的詞性標註類(比如, 所有的詞都標註爲名詞), 基於規則標註詞性, 基於正則表達式標註詞性, n-gram標註詞性等等.

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

資料3.4 使用nltk從非結構化數據中抽取信息 http://blog.csdn.net/fxjtoday/article/details/5871386  這篇主要介紹了命名實體識別

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詞性標註集差不多的中文分詞工具,當然,不一樣也沒事。

資料4.1 使用python結巴分詞對中文資料進行分詞 https://github.com/fxsjy/jieba 結巴分詞的github主頁

資料4.2 基於python的中文分詞的實現及應用 http://www.cnblogs.com/appler/archive/2012/02/02/2335834.html

資料4.3  對Python中文分詞模塊結巴分詞算法過程的理解和分析 http://ddtcms.com/blog/archive/2013/2/4/69/jieba-fenci-suanfa-lijie/

資料4.4 賓州中文樹庫標記以及其解釋, Penn Chinese Treebank Tag Set http://blog.csdn.net/neutblue/article/details/7375085

5.nltk的高級應用入門

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

下面是些入門資料。

資料1: 通過nltk的機器學習方法實現論壇垃圾帖的過濾 http://blog.sina.com.cn/s/blog_630c58cb0100vkw3.html

資料2:利用nltk建立一個簡單的詞庫 http://blog.sina.com.cn/s/blog_630c58cb0100vkix.html

資料3:利用概率分佈進行關聯規則挖掘 http://blog.sina.com.cn/s/blog_630c58cb0100vll0.html

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), 歡迎來參與討論.

作者:糊糊 
原文連接:https://blog.csdn.net/huyoo/article/details/12188573 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章