1. 程式人生 > >最好的入門自然語言處理(NLP)的資源清單

最好的入門自然語言處理(NLP)的資源清單

Melanie Tosik目前就職於旅遊搜尋公司WayBlazer,她的工作內容是通過自然語言請求來生產個性化旅遊推薦路線。回顧她的學習歷程,她為期望入門自然語言處理的初學者列出了一份學習資源清單。

目錄:

·  線上課程

·  圖書館和開放資源

·  活躍的部落格

·  書籍

·  資料集

·  NLP之社交媒體

·  其它

displaCy網站上的視覺化依賴解析樹

記得我曾經讀到過這樣一段話,如果你覺得有必要回答兩次同樣的問題,那就把答案發到部落格上,這可能是一個好主意。根據這一原則,也為了節省回答問題的時間,我在這裡給出該問題的標準問法:“我的背景是研究**科學,我對學習NLP很有興趣。應該從哪說起呢?”

在您一頭扎進去閱讀本文之前,請注意,下面列表只是提供了非常通用的入門清單(有可能不完整)。 為了幫助讀者更好地閱讀,我在括號內添加了簡短的描述並對難度做了估計。最好具備基本的程式設計技能(例如Python)。

線上課程

1.Dan Jurafsky 和 Chris Manning:自然語言處理[非常棒的視訊介紹系列] (YouTube)

2.斯坦福CS224d:自然語言處理的深度學習[更高階的機器學習演算法、深度學習和NLP的神經網路架構]

3.Coursera:自然語言處理簡介[由密西根大學提供的NLP課程]

圖書館和開放資源

1.spaCy(網站,部落格)[Python; 新興的開放原始碼庫並自帶炫酷的用法示例、API文件和演示應用程式]

2.自然語言工具包(NLTK)(網站,圖書)[Python; NLP實用程式設計介紹,主要用於教學目的]

3.斯坦福CoreNLP(網站)[由Java開發的高質量的自然語言分析工具包]

活躍的部落格

1.自然語言處理部落格(HalDaumé)

2.Google研究部落格

3.語言日誌部落格(Mark Liberman)

書籍

1.言語和語言處理(Daniel Jurafsky和James H. Martin)[經典的NLP教科書,涵蓋了所有NLP的基礎知識,第3版即將出版]

2.統計自然語言處理的基礎(Chris Manning和HinrichSchütze)[更高階的統計NLP方法]

3.資訊檢索簡介(Chris Manning,Prabhakar Raghavan和HinrichSchütze)[關於排名/搜尋的優秀參考書]

4.自然語言處理中的神經網路方法(Yoav Goldberg)[深入介紹NLP的NN方法,和相對應的入門書籍]

資料集

1.Nicolas Iderhoff已經建立了一份公開的、詳盡的NLP資料集的列表。除了這些,這裡還有一些專案,可以推薦給那些想要親自動手實踐的NLP新手們:

2.基於隱馬爾可夫模型(HMM)實現詞性標註(POS tagging).

3.使用CYK演算法執行上下文無關的語法解析

4.在文字集合中,計算給定兩個單詞之間的語義相似度,例如點互資訊(PMI,Pointwise Mutual Information)

5.使用樸素貝葉斯分類器來過濾垃圾郵件

6.根據單詞之間的編輯距離執行拼寫檢查

7.實現一個馬爾科夫鏈文字生成器

8.使用LDA實現主題模型

9.使用word2vec從大型文字語料庫,例如維基百科,生成單詞嵌入。

NLP之社交媒體

1.Twitter:#nlproc,NLPers上的文章列表(由Jason Baldrige提供)

2.Reddit 社交新聞站點:/r/LanguageTechnology

3.Medium釋出平臺:Nlp

其它

1.如何在TensorFlow中構建word2vec模型[學習指南]

2.NLP深度學習的資源[按主題分類的關於深度學習的頂尖資源的概述]

3.最後一句話:計算語言學和深度學習——論自然語言處理的重要性。(Chris Manning)[文章]

4.對分散式表徵的自然語言的理解(Kyunghyun Cho)[關於NLU的ML / NN方法的獨立講義]

5.帶淚水的貝葉斯推論(Kevin Knight)[教程工作簿]

6.國際計算語言學協會(ACL)[期刊選集]

7.果殼問答網站(Quora):我是如何學習自然語言處理的?