2013-09-01 118 views
0

我是法國人,是一名前認證網絡安全管理員。 3年前我回到大學獲得語言學學士學位,現在我要加入計算機科學碩士學位,應用於語言學,目的是最終嘗試通過博士學位(但我的目標是:米還沒有:-))。自然語言處理學習哪種語言或工具?

本課程將重點關注語音識別,自動語言翻譯,文本統計分析,語音編碼和解碼以及文本來源的信息抽取。 教授們會讓我們使用我們想用的任何計算機語言來編寫課程中我們將開發的算法和程序。

我曾經開發網絡應用程序作爲一個邊演出大約3 - 4年,我精通Javascript,因爲我寫的軟件在服務器端使用node.js,在客戶端使用瀏覽器。我也對postgresql有一些熟悉。

我現在的編碼風格(如果我們可以稱之爲風格)主要是程序性的,我使用對象原型作爲我的代碼中創建/管理對象的主要方式。對於使用類的概念來管理對象的面嚮對象語言,我沒有太多經驗。因此,我非常有信心,我現在的編程技能肯定是缺乏的,因爲我需要編寫高效的代碼來處理這些東西。

所以我的問題是這樣的:爲了有效編寫適合上述語言區域的算法和數據結構,我最好學習什麼纔是最好的計算機語言?

在此先感謝您的開明答覆。

Sat Cit Ananda。

+0

你可能會發現學習Prolog非常有用。 – Sergio

+0

對於工作,我的大多數前同學使用Java或C++。在學術界,它依次是Java,Python,C++,Prolog,Haskell,Lisp,Perl,Go等。通常情況下,你必須讓不同的工具一起工作。我會說,堅持一種你擅長的語言,但要學會如何讓不同的工具互動。 – prash

+0

只是想確保你已經看過[關於NLP腳本語言的相關問題](http://stackoverflow.com/questions/501062/whats-the-best-scripting-language-for-natural-language-處理) – arturomp

回答

2

你的問題的意見爲主,所以這裏可能是題外話。

在法國,你有Ocaml很多優秀的課程,在INRIA與開發的幾個很好的books(值得注意的是,無論是在法國,Developpement d'Applications en Ocaml通過Chailloux,MANOURY,帕加諾;以及MANOURY Programmation de Droite à Gauche & vice versa)。 J.Pitrat還寫了Textes,Ordinateurs etCompréhension;他最新的書artificial beings: the conscience of a conscious machines也會讓你感興趣。學習幾種編程語言不僅僅是一種編程語言總是有用的(單一編程語言不足以完成自然語言處理;你需要學習幾種編程語言和幾種編程範例 - 功能和對象範例都是有用的,還有prolog)。學習Scheme時,您也可以開始閱讀SICP。通過Queinnec的書Principe d'implementation de Scheme et Lisp - Lisp In Small Pieces的更新版本將更多地瞭解類似Lisp的語言。

的Java也可能是有用的(因爲有些NLP庫在Java中可用)。 CommonLisp,C++ 2011,Haskell ......也是如此。

還需要時間來使用和掌握Linux(及其programming)和免費軟件。

在一般情況下,自然語言處理需要大量的計算機科學(和數學)的。

+0

謝謝您的回答。我會看看你提供的鏈接。 –

0

對於生產NLP系統,Java似乎是最常見的選擇。對於初學者/中級程序員來說,這是一種很好且安全的語言,可以很好地擴展代碼庫大小,具有簡單的語法和廣泛的標準庫,是軟件性能不是絕對優先級的最常用語言之一(或者可以水平/分配性能的地方)。例如,我相信大部分IBM Watson的高層都是用Java編寫的。你也會發現它是CS課程中的主要教學語言之一。