免費資源列表:想學自然語言處理的打包帶走!
豐富的免費資源列表可以幫助人們學習自然語言處理,其中包括文字分類、序列標註、機器翻譯等的解釋。
自然語言處理(NLP)是計算機系統理解人類語言的能力,是人工智慧(AI)的子集。網上有多種資源可以幫助你開發和學習自然語言處理方面的專業知識。
在這篇博文中,我們列出了為初學者和中級學習者提供的學習資源。
初學者的自然語言資源
初學者可以遵循兩種方法,即傳統機器學習和深度學習,開始使用自然語言處理。這兩種方法彼此非常不同。以下這是兩種方法之間的區別。
(1)傳統機器學習
傳統的機器學習演算法很複雜,通常不易理解。以下是一些資源,可幫助你開始使用機器學習來學習自然語言處理(NLP):
·Jurafsky和Martin的語音和語言處理是傳統自然語言處理的廣受好評的經典。可以在這裡進行了解。
https://towardsdatascience.com/why-deep-learning-is-needed-over-traditional-machine-learning-1b6a99177063
·對於更實用的方法,你可以嘗試使用Natural Language Toolkit
http://www.nltk.org/book/
(2)深度學習
深度學習是機器學習的一個子領域,由於人工神經網路的引入,它遠遠優於傳統的機器學習。初學者可以從採用這個資源開始學習:
https://web.stanford.edu/~jurafsky/slp3/
•CS 224n:這是開始使用深度學習進行自然語言處理的最佳課程。本課程由史丹佛大學提供,可在此處學習
http://web.stanford.edu/class/cs224n/。
•Yoav Golberg的免費和付費書籍是開始深度學習自然語言處理的重要資源。可在此處訪問免費版本,此處提供完整版本。
https://www.amazon.com/Language-Processing-Synthesis-Lectures-Technologies/dp/1627052984
•所有演算法的非常全面的描述可以在Jacob Einsenstein的GATECH NLP課程筆記中找到,該課程幾乎涉及所有自然語言處理(NLP)方法。你可以在此處訪問GitHub上的註釋。
https://github.com/jacobeisenstein/gt-nlp-class/blob/master/notes/eisenstein-nlp-notes.pdf
從業者的自然語言資源
如果你是實踐資料科學家,將需要三種型別的資源:
-
快速入門指南/瞭解熱門和新趨勢
-
特定問題的方法調查
-
定期關注部落格文章
快速入門指南/瞭解熱門和新趨勢
人們可以從Otter等人的深度學習自然語言處理調查開始。可以在這裡學習。
https://arxiv.org/abs/1807.10854
•Young等人的一份調查報告試圖總結基於深度學習的自然語言處理的所有內容,並建議從業者開始使用自然語言處理。可以在此處訪問該論文。
https://arxiv.org/abs/1708.02709
•你可以參考本文來了解LSTM和迴圈神經網路(RNN)的基礎知識,這些基礎知識在自然語言處理中經常使用。LSTMs的另一個引用的調查文章就在這裡可以學習:
這是一篇有趣的論文,用於瞭解RNN隱藏狀態的工作原理。可以在這裡訪問。
我推薦以下兩篇你可能沒有閱讀過的博文:
1. http://colah.github.io/posts/2015-08-Understanding-LSTMs
2. https://distill.pub/2016/augmented-rnns/
•卷積神經網路(Convents)可用於理解自然語言。通過閱讀本文,你可以直觀地瞭解Convent如何在自然語言處理(NLP)中工作。
https://arxiv.org/abs/1801.06287
•Bai等人在本文中強調了卷積神經網路(Convents)和迴圈神經網路(RNN)之間的比較。所有它的pytorch(在很大程度上,閱讀深度學習程式碼不是用pytorch編寫的)程式碼是開源的,就像讓你感受到哥斯拉v/s金剛或福特野馬與雪佛蘭卡瑪洛之間的競賽(如果你喜歡(ed)那種型別的東西),那麼誰會贏!
特定問題的方法調查
從業者需要的另一類資源是對這種型別問題的回答:"我必須訓練一個演算法來做X,我能應用的最酷(也很容易獲得)的東西是什麼?"。
以下是你需要的內容:
文字分類
人們解決的第一個問題是什麼?主要是文字分類。文字分類可以是將文字分類為不同類別或檢測文字中的情緒/情感的形式。
我想強調一下這個ParallelDots部落格中描述的關於情感分析的不同調查的簡單閱讀。雖然該調查是針對情感分析技術的,但它可以擴充套件到大多數文字分類問題。
我們的(ParallelDots)調查技術略遜一籌,旨在引導你使用很好的資源來理解概念。我指出的Arxiv調查論文將非常具有技術性,需要你閱讀其他重要論文以深入理解某個主題。建議的方法是使用我們的連結熟悉主題並享受其樂趣,但是請務必閱讀我們推薦的詳盡指南。(Oakley'博士的課程講的是關於分塊的地方,在你深入學習之前,你首先嚐試在這裡和那裡學習一些知識)。記住,除非你詳細瞭解這些技術,否則很難在新的情況下應用概念。
https://www.coursera.org/learn/learning-how-to-learn
還有另一項關於情感分析演算法的調查(由Linked大學和UIUC的人員進行)。
就像在影像中訓練ImageNet分類的模型可以針對任何分類任務進行微調一樣,在維基百科上訓練用於語言建模的自然語言處理(NLP)模型現在可以在相對較少量的資料上傳輸學習文字分類。以下是來自OpenAI和Ruder的兩篇論文,以及如何處理這些技術的介紹。
1. https://arxiv.org/abs/1801.06146
2.https://s3-us-west-2.amazonaws.com/openai-assets/research-covers/language-unsupervised/language_understanding_paper.pdf。
Fast.ai有一個更友好的文件來在這裡應用這些方法。
http://nlp.fast.ai/classification/2018/05/15/introducting-ulmfit.html
如果你要轉移學習兩個不同的任務(不是從Wikipedia語言建模任務轉移),這裡將提到使用Convents的技巧。
https://arxiv.org/abs/1801.06480
恕我直言,這種方法將慢慢涉及所有其他分類方法(從視覺中發生的簡單推斷)。我們還發布了關於Zero Shot Text分類的工作,該分類在沒有任何資料集培訓的情況下獲得了良好的準確性,並且正在開發下一代產品。我們構建了自定義文字分類API,通常稱為自定義分類器,你可以在其中定義自己的類別。你可以在這裡免費檢視。
https://www.paralleldots.com/custom-classifier
序列標註
序列標註是一種標註具有不同屬性的單詞的任務。這些包括詞性標註、命名實體識別、關鍵字標註等。
我們在這裡為這些任務的方法寫了一篇有趣的評論。
https://blog.paralleldots.com/data-science/named-entity-recognition-milestone-models-papers-and-technologies/
今年COLING的研究論文為這些問題提供了一個很好的資源,它為訓練序列標記演算法提供了最佳指導。你可以在這裡訪問。
https://arxiv.org/abs/1806.04470
機器翻譯
最近幾天自然語言處理(NLP)最大的進步之一就是發現了可以將文字從一種語言翻譯成另一種語言的演算法。谷歌的系統是一個16層LSTM(它不需要dropout,因為他們有大量的資料可供訓練),並提供最先進的翻譯結果。
一些媒體對此進行了誇張的報導,聲稱"Facebook公司將不得不放棄發明自己語言的人工智慧"。以下是其中一些報導。
1.https://gadgets.ndtv.com/social-networking/news/facebook-shuts-ai-system-after-bots-create-own-language-1731309
2.https://www.forbes.com/sites/tonybradley/2017/07/31/facebook-ai-creates-its-own-language-in-creepy-preview-of-our-potential-future/#1d1ca041292c
有關機器翻譯的詳盡教程,請參閱Philip Koehn的研究論文。並檢視使用深度學習機器翻譯(我們稱之為NMT或神經機器翻譯)的具體評論。
以下是我最喜歡的幾篇論文:
•Google的這篇論文主要內容是如何在有大量資金和資料時端到端地解決問題。
https://arxiv.org/abs/1609.08144
•Facebook的Convolutional NMT system((僅僅因為其很酷的卷積方法),其程式碼在這裡作為庫釋出。
https://github.com/facebookresearch/fairseq
•http://marian-nmt.github.io/是C ++中快速翻譯的框架
•http://opennmt.net/使每個人都能夠訓練他們的NMT系統。
問題答案
這將是下一個"機器翻譯"。有許多不同型別的問答任務。從選項中進行選擇,從段落或知識圖中選擇答案,並基於影像(也稱為視覺問題回答)回答問題,並且存在不同的資料集以瞭解現有方法的狀態。
•SQuAD資料集是一個回答資料集的問題,用於測試演算法閱讀理解和回答問題的能力。微軟公司今年早些時候發表了一篇論文,聲稱他們已達到人類級別的準確性。這篇論文可以在這裡找到。另一個重要的演算法(我覺得最酷)是Allen AI的BIDAF及其改進。
https://blogs.microsoft.com/ai/microsoft-creates-ai-can-read-document-answer-questions-well-person/
•另一組重要的演算法是Visual Question Answering,它可以回答有關影像的問題。Teney等人從VQA 2017挑戰的論文是一個很好的入門資源。
•可以使用Tra在大型文件中回答問題(例如,Google精彩集錦在最初的幾個結果中如何回答你的查詢)
•在現實生活中,對大型文件(比如Google Highlights如何在前幾個結果中回答查詢)的提取式問題回答可以使用傳輸學習(因此很少有註釋)完成,如本文中所示。有一篇非常好的論文批駁了問題解答演算法的"理解"一篇非常好的論文批評了對問答方法的"理解"。
釋義、句子相似度或推理
比較句子的任務。自然語言處理(NLP)有三個不同的任務:句子相似性、複述檢測和自然語言推理(NLI),每個都需要比上一個更多的語義理解。 MultiNLI及其子集Stanford NLI是NLI最著名的基準資料集,近年來成為研究的焦點。還有MS釋義語料庫和Quora語料庫用於釋義檢測,以及用於STS的SemEval資料集(語義文字相似性)。可在此處找到此領域中高階模型的良好調查。應用NLI在臨床領域非常重要(可以瞭解正確的醫療程式,副作用和藥物的交叉影響等)。如果你希望在特定域中應用該技術,那麼在醫學領域應用NLI的這個教程是一個很好的參考。
這是我在這個領域最喜歡的論文列表
•相互作用空間的自然語言推理(Natural Language Inference over Interaction Space)它突出了一種非常巧妙的方法,用於將DenseNet(卷積神經網路用於句子表示)。這是實習專案的結果,這使得它更酷!
•Omar Levy小組的研究論文表明,即使是簡單的演算法也能完成任務。這是因為演算法仍然沒有學習"推理"。
•BiMPM是預測釋義一個很好的模型。
•我們還有一項關於釋義檢測的新工作,它將句子網路應用於句子表示之上,並已在今年的AINL會議上被接受。
其他領域
以下是一些更詳細的調查檔案,以獲取有關你在製作自然語言處理(NLP)系統時可能遇到的其他任務的研究資訊。
•語言建模(LM-語言建模是學習語言的無監督表示的任務。這是通過預測給定前N個單詞的句子的第(n+1)個單詞來完成的。這些模型具有兩個重要的實際用途,即自動完成,並且如上所述作為文字分類的轉移學習的基礎模型。如果你有興趣瞭解如何根據搜尋歷史自動完成手機/搜尋引擎中的LSTM工作,你應該閱讀。 •關係提取 - 關係提取是提取句子中存在的實體之間關係的任務。給定的句子"A與r to B相關",給出三元組(A,r,B)。這裡有關於該領域研究工作的調查。這是一篇我發現非常有趣的研究論文。它使用BIDAF進行零射擊(zero-shot)關係提取(也就是說,它可以識別甚至沒有訓練識別的關係)。
•對話系統 - 隨著聊天機器人革命的開始,對話系統現在開始流行。許多人將對話系統作為意圖檢測、關鍵字檢測、問答等模型的組合,而其他人則嘗試端到端地對其進行建模。 JD.com團隊對對話系統模型進行了詳細調查。此外還有Parl.ai,這是Facebook AI的一個框架。
•文字摘要 - 文字摘要用於從文件中獲取精簡文字(段落/新聞文章等)。有兩種方法可以做到這一點:提取和抽象摘要。雖然抽取式摘要從文章中提供了具有最高資訊內容的句子(以及幾十年來可用的內容),但抽象概括的目的是像人類一樣編寫摘要。Einstein AI的這一演示將抽象的總結帶入主流研究。
•自然語言生成(NLG) - 自然語言生成是計算機旨在以人類的方式編寫的研究。這可能是故事、詩歌、影像標題等。其中,目前的研究已經能夠在影像標題上做得很好,其中LSTM和注意機制相結合,使得輸出可用於現實生活中。
需要關注的部落格
這是一個部落格列表,我們強烈推薦給有興趣跟蹤自然語言處理(NLP)研究新內容的人。
•Einstein AI - https://einstein.ai/research
•Google AI blog - https://ai.googleblog.com/
•WildML - http://www.wildml.com/
•DistillPub - https://distill.pub/
•StudiPub - http://ruder.io/
如果你喜歡這篇文章,請關注我們的部落格。我們在這裡經常提出資源清單。https://www.paralleldots.com/text-analysis-apis
你還可以嘗試基於自然語言處理的文字分析API。可以閱讀有關應該瞭解的機器學習演算法,以便成為資料科學家。
https://blog.paralleldots.com/data-science/machine-learning/ten-machine-learning-algorithms-know-become-data-scientist/
你還可以在此處檢視ParallelDots AI API的免費演示。
https://www.paralleldots.com/text-analysis-apis
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31545819/viewspace-2215638/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 有趣的自然語言處理資源集錦自然語言處理
- 自然語言處理常用資源筆記分享自然語言處理筆記
- 自然語言處理背後的資料科學自然語言處理資料科學
- 12 種自然語言處理的開源工具自然語言處理開源工具
- 自然語言處理(NLP)系列(一)——自然語言理解(NLU)自然語言處理
- 自然語言處理NLP(四)自然語言處理
- 自然語言處理(NLP)概述自然語言處理
- HanLP 自然語言處理 for nodejsHanLP自然語言處理NodeJS
- 語義理解和研究資源是自然語言處理的兩大難題自然語言處理
- 自然語言處理中的遷移學習(下)自然語言處理遷移學習
- 自然語言處理中的遷移學習(上)自然語言處理遷移學習
- 自然語言處理的最佳實踐自然語言處理
- 精通Python自然語言處理 3 :形態學Python自然語言處理
- [譯] 自然語言處理真是有趣!自然語言處理
- 自然語言處理:分詞方法自然語言處理分詞
- 牛津大學xDeepMind自然語言處理 第13講 語言模型(3)自然語言處理模型
- 機器學習工作坊 - 自然語言處理機器學習自然語言處理
- 自然語言處理中的語言模型預訓練方法自然語言處理模型
- 《深度學習進階:自然語言處理》中的網址深度學習自然語言處理
- 自然語言處理NLP快速入門自然語言處理
- 配置Hanlp自然語言處理進階HanLP自然語言處理
- 自然語言處理之jieba分詞自然語言處理Jieba分詞
- 人工智慧 (06) 自然語言處理人工智慧自然語言處理
- 自然語言處理與情緒智慧自然語言處理
- Pytorch系列:(六)自然語言處理NLPPyTorch自然語言處理
- 精通Python自然語言處理 2 :統計語言建模Python自然語言處理
- 探索自然語言處理:語言模型的發展與應用自然語言處理模型
- 中國語文(自然語言處理)作業自然語言處理
- hanlp自然語言處理包的基本使用--pythonHanLP自然語言處理Python
- 《NLP漢語自然語言處理原理與實踐》學習四自然語言處理
- 自然語言處理NLP(6)——詞法分析自然語言處理詞法分析
- 自然語言處理怎麼最快入門?自然語言處理
- 精通Python自然語言處理 1 :字串操作Python自然語言處理字串
- 深度解析自然語言處理之篇章分析自然語言處理
- 自然語言處理(NLP)路線圖 - kdnuggets自然語言處理
- 人工智慧--自然語言處理簡介人工智慧自然語言處理
- 牛津大學xDeepMind自然語言處理 第9講(下)語音模型自然語言處理模型
- python自然語言處理學習筆記(八)—— 句法分析Python自然語言處理筆記