數據挖掘、機器學習、自然語言處理這三者是什麼關係?這幾個怎麼入門啊?

本題已收錄至知乎圓桌:機器之能 X 語言之美,更多「人工智慧」相關話題歡迎關注討論。

本人菜鳥一枚,本科學機器學習、數據挖掘、自然語言處理零基礎,目前正在學統計學習方法,由於英語比較差,吳恩達的課聽不下去,所以有點無從下手,希望有經驗的大牛們給指點迷津,指導下這些怎麼學習。ps:本人對演算法和數據分析比較感興趣,機器學習、數據挖掘、自然語言處理哪一個更適合?這三個哪一個更有發展潛力?


題主的問題太多了,每個展開都可以講很多~

作為自然語言處理(NLP)方向的研究生,我來回答一下題主關於自然語言處理如何入門的問題吧,最後再YY一下自然語言處理的前途~

有點話我想說在前頭:

不管學什麼東西,都要跟大牛去學,真正的大牛可以把一件事解釋的清清楚楚。

If you can"t explain it simply, you don"t understand it well enough.

跟大牛學東西,你不會覺得難,一切都覺得很自然,順利成章的就掌握了整套的知識。

不過很遺憾,大牛畢竟是少數,願意教別人的大牛更少,所以如果遇到,就不要強求語言了吧~

開始進入正題,我將介紹如何從零基礎入門到基本達到NLP前沿:

----------NLP零基礎入門----------

首推資料以及唯一的資料:

Columbia University, Micheal Collins教授的自然語言課程

鏈接&>&> Michael Collins

Michael Collins,絕對的大牛,我心目中的偶像,這門課是我見過講NLP最最最清楚的!尤其是他的講義!

Collins的講義,沒有跳步,每一步邏輯都無比自然,所有的縮寫在第一次出現時都有全拼,公式角標是我見過的最順眼的(不像有的論文公式角標反人類啊),而且公式角標完全正確(太多論文的公式角標有這樣那樣的錯標,這種時候真是坑死人了,讀個論文跟破譯密碼似的),而且幾乎不涉及矩陣表示……(初學者可能不習慣矩陣表示吧)。

最關鍵的是,Collins的語言措辭真是超級順暢,沒有長難句,沒有裝逼句,沒有語法錯誤以及偏難怪的表示(學術圈大都是死理工科宅,語文能這麼好真實太難得了)。《數學之美》的作者吳軍博士在書中評價Collins的博士論文語言如小說般流暢,其寫作功底可見一般。

舉兩個例子,如果有時間,不妨親自體驗下,靜下心來讀一讀,我相信即使是零基礎的人也是能感受到大師的魅力的。

1.語言模型(Language Model)

http://www.cs.columbia.edu/~mcollins/lm-spring2013.pdf

2.隱馬爾可夫模型與序列標註問題(Tagging Problems and Hidden Markov Models)

http://www.cs.columbia.edu/~mcollins/hmms-spring2013.pdf

現在Michael Collins在coursera上也開了公開課,視頻免費看

鏈接&>&> Coursera

比看講義更清晰,雖然沒有字幕,但是不妨一試,因為講的真的好清楚。

其在句法分析與機器翻譯部分的講解是絕對的經典。

如果能把Collins的課跟下來,講義看下來,那麼你已經掌握了NLP的主要技術與現狀了。

應該可以看懂部分論文了,你已經入門了。

----------NLP進階----------

Collins的NLP課程雖然講的清晰,不過有些比較重要的前沿的內容沒有涉及(應該是為了突出重點做了取捨),比如語言模型的KN平滑演算法等。

此外,Collins的課程更注重於NLP所依賴的基礎演算法,而對於這些演算法的某些重要應用並沒涉及,比如雖然講了序列標註的演算法隱馬爾可夫模型,條件隨機場模型,最大熵模型,但是並沒有講如何用這些演算法來做命名實體識別、語義標註等。

Stanford NLP組在coursera的這個課程很好的對Collins的課進行了補充。

鏈接&>&> Coursera

本課程偏演算法的應用,演算法的實現過的很快,不過上完Collins的課後再上感覺剛剛好~

(這兩門課是Coursera上僅有的兩門NLP課,不得不佩服Coursera上的課都是精品啊!)

----------進階前沿----------

上完以上兩個課後,NLP的主要技術與實現細節就應該都清楚了, 離前沿已經很近了,讀論文已經沒問題了。

想要繼續進階前沿,就要讀論文了。

NLP比起其它領域的一個最大的好處,此時就顯現出來了,NLP領域的所有國際會議期刊論文都是可以免費下載的!而且有專人整理維護,每篇論文的bibtex也是相當清晰詳細。

鏈接&>&> ACL Anthology

關於NLP都有哪些研究方向,哪些比較熱門,可以參考:當前國內外在自然語言處理領域的研究熱點難點? - White Pillow 的回答

NLP是會議主導,最前沿的工作都會優先發表在會議上。關於哪個會議檔次比較高,可以參考谷歌給出的會議排名:

Top conference頁面

也可以參考各個會議的錄稿率(一般來說越低表示會議檔次越高):

Conference acceptance rates

基本上大家公認的NLP最頂級的會議為ACL,可以優先看ACL的論文。

-------------------------

最後簡單談一下這三者哪個更有發展潛力……作為一個NLP領域的研究生,當然要說NLP領域有潛力啦!

這裡YY幾個未來可能會熱門的NLP的應用:

語法糾錯

目前文檔編輯器(比如Word)只能做單詞拼寫錯誤識別,語法級別的錯誤還無能為力。現在學術領域最好的語法糾錯系統的正確率已經可以接近50%了,部分細分錯誤可以做到80%以上,轉化成產品的話很有吸引力吧~無論是增強文檔編輯器的功能還是作為教學軟體更正英語學習者的寫作錯誤。

結構化信息抽取

輸入一篇文章,輸出的是產品名、售價,或者活動名、時間、地點等結構化的信息。NLP相關的研究很多,不過產品目前看並不多,我也不是研究這個的,不知瓶頸在哪兒。不過想像未來互聯網信息大量的結構化、語義化,那時的搜索效率絕對比現在翻番啊~

語義理解

這個目前做的並不好,但已經有siri等一票語音助手了,也有watson這種逆天的專家系統了。繼續研究下去,雖然離人工智慧還相去甚遠,但是離真正好用的智能助手估計也不遠了。那時生活方式會再次改變。即使做不到這麼玄乎,大大改進搜索體驗是肯定能做到的~搜索引擎公司在這方面的投入肯定會是巨大的。

機器翻譯

這個不多說了,目前一直在緩慢進步中~我們已經能從中獲益,看越南網頁,看阿拉伯網頁,猜個大概意思沒問題了。此外,口語級別的簡單句的翻譯目前的效果已經很好了,潛在的商業價值也是巨大的。

不過……在可預見的近幾年,對於各大公司發展更有幫助的估計還是機器學習與數據挖掘,以上我YY的那些目前大都還在實驗室里……目前能給公司帶來實際價值的更多還是推薦系統、顧客喜好分析、股票走勢預測等機器學習與數據挖掘應用~


機器學習比較偏底層,也比較偏理論,機器學習本身不夠炫酷,結合了具體的自然語言處理以及數據挖掘的問題才能炫酷。

機器學習好像內力一樣,是一個武者的基礎,而自然語言和數據挖掘的東西都是招式。如果你內功足夠深厚,招式對你來說都是小意思。但機器學習同時也要求很高的數學基礎,基本上我讀到自然語言處理的博士,看機器學習頂會有些論文還是如讀天書。而現在如果我們只講,工程實現,有很多開源工具可以使用,你所需要的只是知道這些工具都是幹嘛用的就好~~~

我不知道為什麼,很多中國本科生對機器學習特別特別特別的狂熱,但對矩陣,概率論又有著老紙早他媽不想念這門課了,終於過了的思想。我一直覺得,如果你真的矩陣,概率,微積分學的不好,早日勤動手,多編程,對日後找工作很有利!!!這三不管你學啥,一定不要捨本逐末的放棄了程序員最基礎的編程功夫。

最後:人工智慧就是有多少人工就有多少智能。不要被百度,谷歌等吹牛逼的軟文迷惑了雙眼。。。

我希望每個本科生:會一門腳本語言,熟悉java,了解c++ == 。。。 自己動手做過一個完整的網站,一個完整的移動App。上個OJ,AC上百題~~~ 數學之類的不讀博士沒知乎上吹的這麼重要。好好努力,勤動手,還有希望你學好英語,早日放棄百度知道,投奔stackoverflow,這樣一定是你挑百度或者阿里~~


《統計學習方法》是指李航那本?不適合初學者,術語太多,乾貨滿滿,在introduction那一章連個例子都捨不得舉,簡直看不下去(我沒說這本書不好,只是不適合初學者,等你學的差不多了以後再來看這本書會有長進的)。

Andrew Ng的課指的是什麼?網易公開課還是Coursera上的公開課?前者上不下去的話正常。後者比前者壓縮掉了很多內容,把長視頻切成了短視頻,還有作業等互動環節,聽不懂可以開字幕。要是這樣你都聽不下去,要麼說明你該學英語了,要麼說明你該學數學了:把機器學習的三駕馬車——高等數學、線性代數、概率統計——好好補一補吧。

我不知道機器學習、數據挖掘、自然語言處理哪一個更有潛力,但我覺得你得先把數學和英語學好才能有潛力。


先去國內前20,米國前100的學校混一個數學/統計/計算機,並且和數據相關的學位在說吧

機器學習的職位,目前供需嚴重不平衡。很多人調過一兩個庫的幾個演算法就堂而皇之的把機器學習加到簡歷裡面去了,濫竽充數的現象很嚴重。所以對於新人來說,沒有學歷基本上就是被秒刷的命。


機器學習是個廣義的概念,非常廣。

用到計算機視覺中,即計算機視覺中的機器學習;

用到信號處理中,即信號處理中的機器學習;

用到自動控制中,即自動控制中的機器學習;

用到自然語言處理中,即自然語言處理中的機器學習。。。


機器學習有兩個基礎非常重要:英語和數學

基本上沒有這兩個基礎寸步難行,而且NG在Coursera上的課可以說是基礎的基礎了,課後作業等也非常簡單,如果這個都看不下去的話,那真的是無緣了,Coursera還有一門台大的《機器學習基石》可以作為NG的課的進階,其實公開課和書籍只能作為基礎,最重要的是看論文看文獻。


你好, andrew ng 在 coursera 上的課 Machine Learning 其實相當簡單 而且那門課帶中文字幕的 只要會最基本的矩陣運算規則和微積分就能碾壓作業 建議沉下心去看看

我覺得你基本找不到比它跟簡單的介紹材料, 看不懂就放棄吧. 是的 那門課其實根本算不上入門, 只能算介紹...


一點小建議:作為一個業內人士,首先我的建議就是放棄「我的英語比較差」這個想法。作為母語非英語的所有人都不是天生英語就比較好的。程序員還好,題主所說的3門學問,如果不能熟練的閱讀英文材料,將寸步難行。如果有強烈的興趣甚至要考慮出國讀書。

下面就題主問的三項來解答:「機器學習、數據挖掘、自然語言」

首先要認識到這三項並不是獨立的選項,機器學習需要數據挖掘和自然語處理的支撐,自然語處理需要數據挖掘的支撐,數據挖掘需要大數據的支撐。最終所有的根源都要落實在大數據上,而這一切的頂點就是人工智慧。從這個層面上來看數據挖掘是比較基礎的部分,目前也有比較成熟的解決方案,只要你有數據不愁找不到工具。各種資料庫(mongodb,Hive,Pig,HBase,RedShift),分散式系統(Hadoop, Spark),編程語言(Python和R)都是為其開發的或者擅長處理大數據。所謂學習數據挖掘已經逐漸變成熟練掌握這些工具的過程了。當然如果有興趣,也可以參與各種分散式系統的開發,不過基本上你能想到的所有好用的演算法,前人都已經寫好了集成進去了。

自然語處理,在這個世界上除了谷歌,蘋果,微軟,IBM還沒有其他能夠挑戰此領域並且獲得受人矚目的成就的公司。因為現在自然語處理就是方法很落後,手段很暴力。基本上常用的技術在10幾20年前就出現了,只不過那時候沒有誰擁有上萬台計算機來處理自然語,現在倒是有了。可離實用還有很長的路要走(可以看一下IBM的沃特森,基本上也就代表現階段最強的自然語處理的水平了)。

最後就是機器學習了,這一點除了我之外已經有很多人強調過了——「機器學習只是被過度神話了!」。說白了現在的機器學習技術就是「戰五渣」,誰上誰後悔。目前除了以「深度學習」為代表的人工神經網路之外其他的大部分常用的學習方法都是統計學習。不僅要喂足了料,還要精心調教,還不一定出貨,出了也基本上不準。如果恰好結果符合預期,只能說「運氣真好」。不過也正是因為這樣,機器學習才作為一項前沿學科,很多科學家去研究,據我目測,這一波深度學習熱應該已經過去了吧。按這個節奏,不知道10年之後又會有什麼技術點燃機器學習的熱情也說不定。

好了吐槽完了,我覺得題主可能先試試數據挖掘看看,挺好玩的~


NLP是ML的具體應用,DM現在一般作為對ML中unsupervised learning的一種叫法,早年也和ML混用。


你想的有點多,其實你都還不了解機器學習,NLP為何物,如何來的喜歡?只是因為聽的太多了,看到別人都說這個好,有錢途,才變成「喜歡」的。其實你喜歡數學嗎,微積分,線代,概率論先學好再說,然後再去名校讀個博士。如果不想讀博士,還是別搞機器學習什麼了,好好做好碼農該做的東西,練好編程比搞那些實際的多


大數據在沒有證明自己改變世界之前,無法說明人工智慧的正確方向是大數據。簡單來說即便現在的Google 走的方向也很有可能完全錯到底了。

你看狗粉再瞧不起Apple ,也沒法否認Google 的市值被Apple 狠狠踩在腳下。這從側面反映了Google 現在在人工智慧和機器學習領域的成就。

我是侯世達理論的支持者。如果是對人工智慧方向感興趣,可以看看GEB《哥德爾、艾舍爾、巴赫:集異璧之大成》 侯世達【摘要 書評 試讀】圖書

如果百度的大數據能準確預言下一個改變世界的方向、技術、公司,它現在的市值絕對不止700億,保守估計至少是Apple 的幾倍。


我以前也跟你差不多心想是Stanford 去讀phd還是去CMU讀phd,結果後來發現自己想多了


知乎首答,寫個短的。本人現在大三,計算機本科。目前在國立台灣大學做交換生。

第一個和第三個問題我不懂,坐等大牛回答。我只結合自己的情況說一下第二個問題。

NG的課程我以前看過一部分,講的風格我覺得在乾貨之前都比較好懂(笑)。但是天朝的學子接受起來可能有困難。台灣大學的林軒田老師的machine learning至少在本科生教育上做的很好。他們有個team經常去各種比賽上刷獎。我目前在修他的機器學習課程,覺得質量不錯。現在coursera上也有同步課程。

傳送門:Coursera.org

個人覺得機器學習的很多方法都是從統計學上借鑒過來的,所以現在在補統計學的知識。同時作為一個理論性比較強的領域,線性代數和高等數學的知識起碼是要具備的(至少人家用矩陣寫個公式再做梯度下降你要看明白是在幹嘛)。

我在大陸的mentor是做機器翻譯的。我說我感覺這個領域現在是步履維艱,結果被我mentor教育了。現在微博數據好像挺好用的,數據抓過來跑一跑能出點票房預測什麼的(其實非常吊了,反正我不會QAQ)。記得有本Python自然語言處理,NLTK還自帶語料庫,用來入門不錯。起碼要熟悉正則語言,再學個腳本語言。雖然Python已經很好用了,你要不要考慮下linux shell。以後混不下去了可以去給運維打下手。這東西又不是C語言,入門又沒什麼用,所以沒什麼30天精通NLP之類。而且自己研究NLP也面臨著許多問題。首先你自己沒有可研究的問題,沒有動力。其次,研究資料也不算好找(雖然好像有免費的)。去年mentor給了我個5M的樹庫,還囑咐我說是有版權的,不能給別人。(笑)

其實我自己都懷疑讀研的時候要不要換個方向(請行里行外的師兄來勸我兩句,要不要去做別的啊!!QAQ)

最後說一句,機器學習之類我覺得是國內大學所謂計算機專業比較偏向CS而不是CE的部分了。雖然工程性很重要,但是和軟體工程什麼的比起來Science的成分總要更大一些。我是比較喜歡理學才來學這個東西。當然我的認識可能不對,我姑妄說之。

Talk is cheap, 我還是去code吧...


已經有幾個關於如何入門的回答,補充一下這三者的關係。數據挖掘和機器學習都是基於數據的科學。數據挖掘側重於從數據中獲取知識來供人類決策。知識來自與數據,結果往往是抽象的知識,大多數情況下並不直接進行決策。這是其主要特徵。例如我們可以從大量春運數據中發現哪些站點人流量大從而調整運行圖。獲取人流量知識的過程,就是數據挖掘的一種簡單應用。

機器學習則不同,它代表著一類技術。如果機器能夠通過觀測數據使得其處理某一任務的性能有所提升,那麼它可以稱為機器學習。例如,一個統計機器翻譯系統或者神經網路機器翻譯系統在初始狀態下並不會翻譯。當其處理了大量訓練數據(訓練過程)之後,其翻譯性能就能得到提高,因此我們可以說這兩種方法是機器學習。反之,如果我們面對的是一個通過手寫規則生成的基於規則的機器翻譯系統,則它並不能通過觀測更多數據獲得任何提升。那麼它就不是一個機器學習系統。一個機器學習技術必須有五個組成部分:模型,數據,學習演算法,推導演算法和評測準則。模型在學習演算法觀測數據的過程中得到優化,推導演算法對新的數據進行推導,評測準則告訴我們任務性能是否提高。

機器學習是解決問題的一種方法,但未必是唯一的方法,也未必是最優的方法。例如,如果我們要做的不是漢語到英語的翻譯,而是C語言到機器代碼的翻譯,那麼手寫規則的編譯器要遠遠強於機器學習做出來的編譯器 (儘管基於機器學習編譯器也是有可能實現的)。

自然語言處理則是一個很寬泛的概念,絕大多數與自然語言相關的技術都可以被歸類為自然語言處理,包括解析、翻譯、語音識別、摘要、自動修改、對話等等。根據所要完成的任務不同,可能需要融合大量不同的技術。例如,如果我們的任務是從大量文本語料中找出關於某個商品的評論,那麼我們需要信息獲取技術。如果進一步地我們需要判斷商品的評價是正面還是負面,我們就需要Sentiment Analysis技術。許多自然語言技術都有機器學習實現(並且機器學習效果最好),但並不代表機器學習就是自然語言處理的全部(如傳統的搜索技術就往往不用機器學習)。


NG的課要是聽不懂就不建議繼續了 統計學習方法不建議初學看 英語不好還要自學的 還是換方向吧 漢語資料幾乎沒有

方向哪個好? 一樣的 大家搞得都差不多 這就好比五十米欄和一百米一樣 差不多 各有側重

你指大數據指什麼 機器學習方面毫無疑問是百度 基礎架構應該也是


talk is cheap,show me the code

你的問題在於,讀的書不多,想得卻太多

= = 發現這些熱語都可以評論這個問題。。。

數據挖掘相對簡單。

吳恩達的課已經很簡單了,本科低年級的學生都可以完成。

看3遍統計學習方法,然後把所有演算法實現。

ok,然後你再來問,自己是去百度,還是阿里。


機器學習和數據挖掘的關係,引:


我把題目腦補成了挖掘機、編程。。。


給大家介紹一個螞蟻金服資深演算法專家西亭出的機器學習入門教程,視頻+PPT+練習,總結的非常的到位和優秀

課程鏈接:機器學習入門:概念原理及常用演算法 - 阿里雲大學

第1 章 : 機器學習概念、原理和應用場景

課時1:機器學習基礎概念 提示信息 - 阿里雲大學 - 官方網站,雲生態下的創新人才工場

課時2:機器學習的領域 提示信息 - 阿里雲大學 - 官方網站,雲生態下的創新人才工場

課時3:機器為什麼能學習 提示信息 - 阿里雲大學 - 官方網站,雲生態下的創新人才工場

第2 章 : 機器學習常用演算法

課時4:監督學習 - 線性回歸 提示信息 - 阿里雲大學 - 官方網站,雲生態下的創新人才工場

課時5:非線性回歸、過度擬合、模型選擇 http://t.cn/R0WYop0

課時6:有監督學習分類 提示信息 - 阿里雲大學 - 官方網站,雲生態下的創新人才工場

課時7:無監督學習 http://t.cn/R0WYDIm

第3 章 : 總結與練習

課時8:總結與練習 http://t.cn/R0WThDB


改成 數據、挖掘機器學習、自然語言處理就好學了。


推薦閱讀:

參與大數據競賽應該看什麼書?
kaggle上有哪些好的競賽項目?哪些適合入門,哪些適合進階
為什麼xgboost/gbdt在調參時為什麼樹的深度很少就能達到很高的精度?
如何看待mahout和milib之間的關係,mahout真的死了么?
天池大數據競賽和Kaggle、DataCastle的比較,哪個比較好?

TAG:互聯網 | 數據挖掘 | 機器學習 | 自然語言處理 | 大數據 |