我是法国人,并且是以前的认证网络安全管理员。 3年前我回到大学攻读语言学学士学位,现在我将申请语言学专业的计算机科学硕士学位,目的是最终尝试通过博士学位(但我是还没有:-))。
该课程将侧重于语音识别,自动语言翻译,文本统计分析,语音编码和解码,以及文本来源的信息抽象。 教授们将让我们使用我们想要使用的任何计算机语言来编写我们将在课程中开发的算法和程序。
我曾经开发网络应用程序作为一个大约3 - 4年的侧面演出,我精通Javascript,因为我编写的软件在服务器端使用node.js,在客户端使用浏览器。我对postgresql也很熟悉。
我目前的编码风格(如果我们可以称之为样式)主要是程序性的,我使用对象原型作为我在代码中创建/管理对象的主要方式。我对使用类的概念来管理对象的面向对象语言没有多少经验。因此,我非常有信心我目前的编码技巧对于编写有效代码来处理这些内容所需的内容肯定是缺乏的。
所以我的问题是:为了有效地编写适合上述语言区域的算法和数据结构,我学习哪种最好的计算机语言?
提前感谢您的开明答案。
Sat Cit Ananda。
答案 0 :(得分:3)
你的问题是基于意见的,所以可能在这里偏离主题。
在法国,您在Ocaml上开设了很多优秀的课程,这些课程是INRIA开发的,其中有好几个books(特别是法语,Developpement d'Applications en Ocaml,Chailloux ,Manoury,Pagano;以及Manoury的Programmation de Droite à Gauche & vice versa。 J.Pitrat还写了 Textes,OrdinateursetCompréhension;他的最新着作artificial beings: the conscience of a conscious machines也会让你感兴趣。
学习几种编程语言,不仅仅是一种,总是有用的(单一的编程语言不足以完成自然语言处理;你需要学习几种编程语言和几种编程范式 - 功能和对象范例都很有用,还有prolog)。您还可以在学习Scheme时开始阅读SICP。通过Queinnec的书Principe d'implementation de Scheme et Lisp了解更多关于类似Lisp的语言 - Lisp In Small Pieces的更新版本也将教会你很多。
Java也可能有用(因为一些NLP库在Java中可用)。 CommonLisp,C ++ 2011,Haskell ......也是。
还需要时间来使用和掌握Linux(及其programming)和免费软件。
一般来说,自然语言处理需要大量的计算机科学(和数学)。
答案 1 :(得分:0)
对于生产NLP系统,Java似乎是最常见的选择。对于初学者/中级程序员来说,它是一个很好的安全语言,可以很好地扩展代码库大小,具有简单的语法和庞大的标准库,并且它是最常用的语言之一,其中软件性能不是绝对的首要任务(或者可以水平/分配性能的表现。我相信例如IBM Watson的大部分更高层是用Java编写的。您也会发现它是CS课程的主要教学语言之一。