POST TIME:2021-07-12 15:48
大數(shù)據(jù)文摘出品
來源:airev
編譯:DD、Andy
數(shù)年前,當(dāng)小編剛踏足NLP領(lǐng)域時(shí),還沒有太多相關(guān)課程,找學(xué)習(xí)資料就頗費(fèi)功夫;如今,當(dāng)網(wǎng)上充斥著各種良莠不齊公開課時(shí),從中挑選一門適合自己的又成了另一種頗費(fèi)功夫,特別對于選擇困難綜合癥患者。
該篇作者根據(jù)自己多年的實(shí)踐經(jīng)驗(yàn),對網(wǎng)上諸多NLP公開課進(jìn)行了評分與評論,很有參考價(jià)值。此外,作為涉足NLP也有數(shù)年的小編,也推薦不妨先挑一門Code-first課,強(qiáng)推Fast.AI,之后再用大學(xué)公開課繼續(xù)深入,比如伯克利的Info256 以及斯坦福有名的cs224n,之后想再深入理論可以試試CMU的cs11-747.
接下來,我們就來看看作者對15節(jié)NLP課程的測評~
如果你的標(biāo)準(zhǔn)很高,那么選擇一門符合你需求的網(wǎng)課就會(huì)變成了一件很困難的事。因?yàn)榇蟛糠志W(wǎng)課都不全面,并不值得花太多時(shí)間在上面。
那么如果有人給你提供了一個(gè)關(guān)鍵的學(xué)習(xí)路徑,并告訴你每個(gè)模塊講了什么,你該按照什么樣的順序去學(xué)習(xí)、進(jìn)階,你會(huì)怎么想?那一定是——完美!
這就是為什么我會(huì)寫這篇NLP選課指南,利用了我8年的機(jī)器學(xué)習(xí)實(shí)踐經(jīng)驗(yàn)作為參考。我個(gè)人一共完成或?yàn)g覽了15個(gè)最有名的課。在下面這份嚴(yán)格的評論中,我將重點(diǎn)放在它們提供的實(shí)踐以及商業(yè)知識(shí)上。
無論你是剛開始接觸NLP還是想在業(yè)務(wù)中實(shí)現(xiàn)一個(gè)最新算法,這篇文章都將為你提供巨大價(jià)值。下面就來看一下這條學(xué)習(xí)路徑,并挑你最感興趣的課程吧!
我理想中的NLP課程是這樣的:
圍繞著實(shí)踐問題展開的;只涵蓋對實(shí)踐有用的信息,夾雜一些更深入的理論知識(shí)作為補(bǔ)充資料;內(nèi)容是與時(shí)俱進(jìn)的,至少每次業(yè)界有重大新聞,它都能及時(shí)更新相應(yīng)內(nèi)容;由一群業(yè)界經(jīng)驗(yàn)豐富的專家編寫的;包含能解決業(yè)務(wù)實(shí)際問題的真實(shí)代碼。
但理想很豐滿,現(xiàn)實(shí)……很骨感。
代碼至上的網(wǎng)課們
A Code-First Introduction to NLP course
課程鏈接:
https://github.com/fastai/course-nlp
授課人:Fast AI
專業(yè)評分:8/10
工具和庫:IPython notebooks, PyTorch, Fast.AI, spacy, sklearn, nltk
我的建議:
我個(gè)人很享受這種由上而下的學(xué)習(xí)方式。這門課內(nèi)容非常扎實(shí)(毫無疑問,這是Jeremy Howard本人創(chuàng)建的課程),它很實(shí)用且內(nèi)容在新算法的更新上很及時(shí)(最近更新到2019年夏天)。
缺點(diǎn):
它缺少一些業(yè)界的實(shí)操案例,只關(guān)心算法的實(shí)際用法。
強(qiáng)推這門課!
SpaCy Tutorial
課程鏈接:
https://github.com/yuibi/spacy_tutorial
授課人:Yuibi Fujimoto
專業(yè)評分:7/10
工具和庫:spacy,prodigy,sklearn
我的建議:
很完整、實(shí)用的指南。它只涉及到了spacy,而這也是很多人的真實(shí)需求。這門課對內(nèi)容細(xì)節(jié)的把握非常到位。
Natural Language Processing
課程鏈接:
https://github.com/yandexdataschool/nlp_course/tree/master
授課人:Yandex
專業(yè)評分:7/10
工具和庫:keras,nltk,gensim,sklearn,bokeh,matplotlib
我的建議:
這是一門很新的實(shí)戰(zhàn)課程,它涉及到了最重要的一些領(lǐng)域。但同樣地,它也沒有涉及到現(xiàn)實(shí)任務(wù)的實(shí)戰(zhàn),只是專注于算法原理和它們直接的應(yīng)用。
Natural Language Processing
課程鏈接:
https://www.coursera.org/learn/language-processing
授課人:俄羅斯國立高等經(jīng)濟(jì)大學(xué)計(jì)算機(jī)系(HSE Faculty of Computer Science) / Yandex
專業(yè)評分:3/10
工具和庫: nltk, sklearn, tensorflow, genism,starspace
我的建議:
這是一門很簡潔、基礎(chǔ)的課程,它只涉及到一些很基礎(chǔ)的理論。
缺點(diǎn):
這門課不是很全面,也缺乏關(guān)于最新算法和實(shí)際業(yè)務(wù)案例內(nèi)容。而且,它只使用tensorflow,沒有涉及到keras,對于學(xué)習(xí)深度學(xué)習(xí)來說,這并不是一個(gè)很好的方式。
Advanced NLP with spaCy
課程鏈接:
https://course.spacy.io/en/
授課人:Explosion AI
專業(yè)評分:8/10
工具和庫:spacy
我的建議:
這門課也只涉及到spacy,但是范圍更廣。它簡單友好的操作界面深得我心。簡短,但強(qiáng)推的一門課!在評分項(xiàng)目中,也有涉及到業(yè)界實(shí)操的內(nèi)容!
Coursera-Natural Language Processing Certification in TensorFlow
課程鏈接:
https://www.coursera.org/learn/natural-language-processing-tensorflow
授課人:Laurence Moroney
專業(yè)評分:2/10
工具和庫:Tensorflow
我的建議:
這門簡短的課程介紹了一些基礎(chǔ)知識(shí),比如:分詞、一些基礎(chǔ)的詞嵌入方法和序列模型。授課方式是理論+小測驗(yàn)。對新手來說,我并不推薦這門課程,因?yàn)樗鄙偬鄡?nèi)容。
Edx-Natural Language Processing Course
課程鏈接:
http://www.edx.org/course/natural-language-processing-nlp-2
授課方:微軟
專業(yè)評分:7/10
我的建議:
這門課程介紹了機(jī)器學(xué)習(xí)和NLP領(lǐng)域中可使用的各種方法,你不光能學(xué)到經(jīng)典算法、深度學(xué)習(xí)算法,還能了解到深度情感相似模型以及在現(xiàn)實(shí)工作中如何使用它們。每個(gè)模塊都有自己的測驗(yàn)和代碼作業(yè),可以很好地幫助你理解學(xué)到的內(nèi)容。
Codecademy-Natural Language Processing
課程鏈接:
https://www.codecademy.com/learn/natural-language-processing
專業(yè)評分:5/10
工具和庫:nltk, re
我的建議:
這門課時(shí)長約10小時(shí),算是NLP入門級別的課程,內(nèi)容包含:正則表達(dá)式、文本處理、詞向量、tf-idf。是一門更適合完全沒有NLP基礎(chǔ)的人的課程。
DataCamp-Natural Language Processing Fundamentals in Python
課程鏈接:
https://www.datacamp.com/courses/natural-language-processing-fundamentals-in-python
授課人:Katharine Jarmul
專業(yè)評分:7/10
工具和庫:nltk, re, genism, polyglot, spacy, sklearn
我的建議:
這門課主要講的是如何解決一些小問題。它介紹了一些生成詞向量和預(yù)處理的技巧,像tf-idf和spacy。我認(rèn)為這也是一門比較適合剛?cè)腴T、需要一些實(shí)戰(zhàn)經(jīng)驗(yàn)的新手課程。因此我們決定在最后的對比中不把它加入比較。
大學(xué)公開課
伯克利 - Applied Natural Language Processing
課程鏈接:
http://people.ischool.berkeley.edu/~dbamman/info256.html
授課人:David Bamman
專業(yè)評分:8/10
我的建議:
這門課比較適合有python編程經(jīng)驗(yàn),但不了解nlp的人。在這門課中,你會(huì)用到目前流行的python庫,如:sklearn、keras、spacy,去解決分類、回歸問題。我認(rèn)為,這種強(qiáng)制性的學(xué)期制課程比較適合學(xué)生黨學(xué)習(xí)。
華盛頓大學(xué)(UW) - Natural Language Processing
課程鏈接:
https://courses.cs.washington.edu/courses/cse517/17wi/
授課人:Yejin Choi
專業(yè)評分:6/10
我的建議:
這門課面向的是想學(xué)習(xí)nlp基礎(chǔ)方法理論的新手。這門網(wǎng)課是在2017年錄制的,所以你無法從里面找到任何現(xiàn)在最新的內(nèi)容。它涉及到的當(dāng)時(shí)(2017)最新的內(nèi)容有:序列、語義和深度學(xué)習(xí)相關(guān)內(nèi)容。但我認(rèn)為,學(xué)這門課的人需要在課后有自己的探索和研究,去鞏固學(xué)到的知識(shí)。
牛津 - Deep Learning for Natural Language Processing
課程鏈接:
https://www.cs.ox.ac.uk/teaching/courses/2016-2017/dl/
授課人:Phil Blunsom
專業(yè)評分:8/10
我的建議:
這門課需要你有機(jī)器學(xué)習(xí)方面的經(jīng)驗(yàn),以及很強(qiáng)的數(shù)學(xué)背景(包括:概率、線性代數(shù)和連續(xù)數(shù)學(xué))。你將會(huì)學(xué)到從RNN、BPTT到針對神經(jīng)網(wǎng)絡(luò)優(yōu)化GPU的很多知識(shí)和技能。我建議學(xué)完這門課的學(xué)生再去學(xué)習(xí)一下最新的模型和理論,因?yàn)樗]有實(shí)時(shí)更新相關(guān)內(nèi)容。
以色列特拉維夫大學(xué) - Advanced Methods in Natural Language Processing
課程鏈接:
https://www.cs.tau.ac.il/~joberant/teaching/nlp_spring_2019/index.html
授課人:Jonathan Berant
專業(yè)評分:7/10
我的建議:
這門課教授的是NLP領(lǐng)域中最新的一些方法。它只需要你有一定的機(jī)器學(xué)習(xí)背景,nlp背景并不是必須的。而且,授課方準(zhǔn)備了很多值得閱讀的報(bào)告,這也非常有助于學(xué)習(xí)。
斯坦福 - From Languages to Information
課程鏈接:
https://web.stanford.edu/class/cs124/
授課人:Dan Jurafsky
專業(yè)評分:6/10
我的建議:
雖然這是門NLP課程,但它也涉及到很多機(jī)器學(xué)習(xí)方面的內(nèi)容。其中,關(guān)于社交網(wǎng)絡(luò)的內(nèi)容在其他網(wǎng)課中并沒有很好地展開,可以算是這門課的一個(gè)亮點(diǎn)。通過這門課,你可以收獲很廣的知識(shí)面,但對于只鉆研nlp的人來說,我并不是很推薦這門課。
斯坦福cs224n - Natural Language Processing with Deep Learning
課程鏈接:
http://web.stanford.edu/class/cs224n/
授課人:Chris Manning, Matthew Lamm
專業(yè)評分:8/10
我的建議:
這是面向項(xiàng)目的最新課程,包括這個(gè)領(lǐng)域的最新進(jìn)展。要上這門課,你需要有數(shù)學(xué)和編程的基礎(chǔ)(Python或強(qiáng)大的C++能力)。我只會(huì)推薦有一定經(jīng)驗(yàn)的人去上這門課,你會(huì)從中學(xué)到更深入的知識(shí)。
總結(jié)
在分析完所有課程后,我得出的結(jié)論是:在最新的算法和企業(yè)項(xiàng)目實(shí)例方面,沒有任何一門課是足夠全面的。它們大部分都缺少實(shí)戰(zhàn)練習(xí),而這大大地阻礙了知識(shí)的吸收。
現(xiàn)在,讓我們來總結(jié)一下工程師在學(xué)習(xí)一門NLP課程時(shí)遇到的主要挑戰(zhàn):
課程內(nèi)容很快就會(huì)過時(shí),我希望它始終包含最新(不一定是復(fù)雜的)知識(shí);沒有或過少的實(shí)踐練習(xí)來增強(qiáng)在課程中學(xué)到的理論知識(shí);如果卡住,沒有人能幫助你進(jìn)行練習(xí);課程以算法原理為重點(diǎn),而不是如何解決實(shí)際問題。
許多不合標(biāo)準(zhǔn)的課程甚至都已不再更新。人們掉入了坑中并為此付出代價(jià),卻沒有從中收獲太多實(shí)際價(jià)值。