現在的專業叫language and informatics,課程從語言學(語義,文本,語料,認知等),到編程,再到語音識別,情感分析,演算法交叉在一起,不禁想問,究竟是語言學更重要,還是計算機編程,或數學更重要?如果想一心一意在這個領域深入走下去,應該怎麼-逐步-深入學習,按什麼順序,每個階段到什麼程度,既能把學到的聯繫起來不至於忘掉,又不至於偏離重點?(本人本科學的是外語,所以編程和高等數學基礎很弱。比如研究生兩年內,畢業三年內,各學科尤其是編程,數學,應該掌握什麼到什麼水平呢?)


對計算語言學來說,如果想要深入學習,三者是缺一不可。首先從學科本身來講,就是用數學形式化的思路來研究語言,同時藉助計算機強大的計算能力去嘗試更好地利用語言。

從歷史上來看確實是經過了規則派和統計派之間的爭鬥,近些年因為數據的增多和計算能力的增強統計派佔了一些上風。

但這並不是說語言學知識不重要,相反,現在語言學的知識對相關的研究人員更是核心競爭力。統計方法的紅利是有限的,不能夠過分誇大,否則直接去做機器學習就好了,本領域還有什麼活力。現今的發展亦是如此,可以看到不少子任務的提升都遇到了瓶頸,原因就是隻依賴統計方法是有盡頭的,這時候就更需要有語言學上的insight指明道路。


我說個學習的順序吧。最好一開始學習簡單的編程。瞭解分詞、停用詞、詞性標註、分句這些基本方法。瞭解一些語言模型(Ngram),瞭解常用演算法(tfidf, LDA)背後的原理。一定要用個實際的文本數據去實踐一下這些基礎和演算法。但不用深究背後的數學原理,做出來就好了。要後續繼續進步,就要補足數學。在現在的NLP領域,不懂語言學完全找得到工作,但不懂編程和數學就很難找到工作。看李航老師的《統計學習方法》,學好概率統計。最後是語言學的知識。我相信語言學在現在的NLP領域是屠龍之技,在工業界基本無用,學術界也地位堪憂。但我相信語言學甚至語言哲學在NLP領域必然是有作用的,雖然我還沒去學習和印證。但現在的統計學習方法只管療效不管背後的語言原理,在工業界確實無可厚非,但在科學精神上並不是一個好的現象。若不瞭解背後的原理,其實也就相當於知識沒有進步。未來NLP真正的突破點應該會在語言學上。所以如果你要從事科研工作,那我真心希望學好語言學。

從來不認為NLP是交叉學科~~~

這只是一個計算機專業,至少從30年前就已經這樣了。不再需要語言學家定義專家系統了。而是通過數學建模不斷的將語言抽象成數學表示。

有句很經典的話是:我的團隊每多一個語言學家,我的系統水平就會下降一些。

所以,我覺得重要性是編程&>=數學》語言學。

如果你本科學的外語,還想從事相關技術類工作就去學編程,否則語言學家至少在現在的主流工業界和學術界不大喫香。

數學做到:概率方面可以看懂LDA,矩陣方面可以看懂SVD;

編程做到:至少使過一些流行的工具做過一些簡單的項目。如CRF++,GIZA++,Lucene,Weka等~

當然到底需不需要語言學家去拯救現在的統計學習方法的自然語言處理一直都是一個在熱議的問題。但是如果一個語言學家連現在的潮流方法都沒有掌握,都不知道對手的方法優缺點有什麼,都不知道對手的方法怎麼實現,光打打嘴炮,誰也不會相信你的。

如果你想超別人,那就先抄別人~

PS。。。相比於英文,中文真的有語法這個東西嗎= =


推薦閱讀:
查看原文 >>
相關文章