自然語言處理的學習路線?

做過一些分詞,文本檢索,分類相關的簡單工作,現在想系統的學習自然語言處理的知識,該如何規劃自己的學習路線?


自然語言處理有一套嚴整的理論體系,如果希望系統學習可以參考Stanford NLP Group幾位教授的三本教科書,基本都有中文翻譯版本。以下按照我心目中的淺易程度排序:

Christopher D. Manning, Prabhakar Raghavan, and Hinrich Schütze. 2008.Introduction to Information Retrieval. Cambridge University Press.


Christopher D. Manning and Hinrich Schütze. 1999. Foundations of Statistical Natural Language Processing. Cambridge, MA: MIT Press.


Daniel Jurafsky and James H. Martin. 2008. Speech and Language Processing: An Introduction to Natural Language Processing, Speech Recognition, and Computational Linguistics. 2nd edition. Prentice-Hall.


謝邀。

我不是從課堂學來的,不太清楚正規的學習途徑是怎樣。不過,一定要先懂得基本統計學、應用數學知識,懂得機器學習、信息工程理論,懂得編程。

然後就要學點語理學,在機器學習的基礎上學懂自然語言處理的基本模型。同時學習使用相關的package,如nltk, gensim等。

最好是通過做一個project去實踐。


題主 和 我 情況類似,應該也是 "野生" NLPer。我的工作主要是文本數據挖掘,和 NLP 相關性 很強。我一開始只關心一兩個小點,後面自己慢慢系統地補足。我說一下自己的學習路線吧。

我參考了兩本書 作為學習的藍圖,並且主要章節(機器翻譯和語音識別 沒看)都認真看了一兩遍。
(1) 統計自然語言處理(第2版)宗成慶 著
(2) 語音與語言處理(英文版 第2版)Daniel Jurafsky, James H. Martin 著

這兩本書分別是 中文 和 英文 中 比較權威的書籍, 並且知識點全面。出版時間也比較新。以這兩本為學習主線 配合 其他的書籍和論文作為 輔助。

另外 自然語言處理 與 機器學習 十分相關,我參考相關的幾本書,主要推薦兩本:
(3) 機器學習 周志華 著
本書比較易懂, 看完 前10章,頗有收穫。然而一開始看的是 范明 翻譯的 機器學習導論,但比較晦澀,就不推薦了。看到國人寫出這樣的好書,還是值得高興的。

(4) 統計學習方法 李航 著
這本書蠻難啃的, 我按需看了一半,其中 CRF 這本講的比較全。

配合性的其他書籍主要有:
(5) 計算語言學(修訂 版)劉穎 著
比較偏語言學一點,數學理論比較少,相對簡單一點, 看一遍 收益也有不少

(6) 自然語言處理簡明教程 馮志偉 著
相對簡單,稍微略顯啰嗦,不過感覺 HMM 這本書講的最易懂。

(7) 自然語言處理的形式模型 馮志偉 著
這本和 (6) 比,增加不少 深度 和 難度,建議按需慢慢啃。我啃了幾章,覺得蠻有用。

(8) 自然語言處理基本理論和方法 陳鄞 編
哈工大出的書,純粹為 配合 超星視頻 而買。

(9) Java自然語言處理(影印版 英文版) Richard M Reese 著
學了總要實踐吧,Java 還是 要比 Python 靠譜。

(10) 本體方法及其應用 甘健侯 等 著
(11) 本體與辭彙庫(英文影印版)典居仁(Chu-Ren Huang)等 編
這兩本書對 信息抽取 有一定幫助,不感興趣的可以略過。

以上所有列出的圖書我都有紙介質 (能買則買, 買不到就列印)

另外超星學術視頻 (網路上可以找到資源):
(12)自然語言理解 宗成慶(中科院)
看了感覺是配套 宗成慶書的初版

(13)自然語言處理 關毅(哈工大)
看起來還算蠻簡單,和(8)幾乎是配套的

(14) Stanford 的 NLP 課程(Youtube)
Dan Jurafsky Chris Manning: Natural Language Processing

(15) Michael Collins 的Coursera課程 和 主頁
Michael Collins:Natural Language Processing


假設你是計算機出生,並且希望系統紮實的學習自然語言處理的話,我推薦下面這個github上的內容:JustFollowUs/Natural-Language-Processing,希望對你有幫助。

如果有什麼不足或者哪邊出錯了,歡迎大家指出,我們一定會及時更新錯誤,希望能幫到更多的希望學習自然語言處理的學習愛好者。

如果有更好的方案,非常非常歡迎大家去https://www.zhihu.com/question/54536094上一起分享。


說說我學NLP的過程中看的書吧:
1.宗成慶 《統計自然語言處理處理》
很全面,基本上涉及了自然語言處理的所有知識

2.《Natural Language processing with Python》
非常實用的工具書,叫你怎麼用Python實際進行操作,上手處理文本或者語料庫。
以下兩本書都是我在我們學校借的英文原版,如果找不到可以去搜中文譯本~

3. 稍微進階一點的 Philipp Koehn 《Statistical Machine Translation》
如果你對機器翻譯感興趣,可以繼續看這本
這本書的中文版也是宗成慶老師翻譯的,可以去找找

4.更新兩本這幾天剛好在看的,《編程集體智慧》,應該也是可以找到中文翻譯版PDF的,主要圍繞機器學習這一領域來加深你的編程功底,每一個例子都有非常完整的代碼,可以學習到很多!

5.《Pattern Recognition and Machine Learning》
沒啥好介紹的,機器學習經典書籍~但是晦澀,晦澀,晦澀…入坑需謹慎,我可能快要從入門到放棄了…

如果我還有看什麼書,我應該會不定期更新一下這條回答吧,也當是給自己做個記錄~

差不多就這些啦,如果看完這些應該能夠順利入門了,剩下的就是自己上手去做!


我正在做一個話題識別的項目,哪個中文分詞比較好?


coursera上有些不錯的課程,是很好的起點


推薦閱讀:

金融市場計算機化的交易程序是如何根據新聞進行自動交易的?目前這種技術的應用廣泛嗎?
自然語言處理怎麼最快入門?
截至 2016 年 3 月,機器學習、數據挖掘、計算機視覺等的泡沫有多大?
為什麼 Google 翻譯只重演算法不重語言學的語法結構和規則?
有誰可以解釋下word embedding?

TAG:自然語言處理 |