Ste*_*ano 41 math nlp machine-learning
假设您认识一名想要学习机器学习和自然语言处理的学生.
他们应该关注哪些具体的计算机科学科目以及专门设计哪些编程语言来解决这些类型的问题?
我不是在寻找你最喜欢的科目和工具,而是寻找行业标准.
示例:我猜测知道Prolog和Matlab可能对他们有所帮助.他们也可能想要研究离散结构*,微积分和统计.
*图形和树木.函数:属性,递归定义,解决重现.关系:属性,等价,偏序.证明技术,归纳证明.计数技术和离散概率.逻辑:命题演算,一阶谓词演算.正式推理:自然演绎,分辨率.用于编程正确性和自动推理的应用程序.计算中代数结构的介绍.
Sha*_*ane 54
这个相关的stackoverflow问题有一些很好的答案:对自然语言处理感兴趣的人有什么好的起点?
这是一个非常大的领域.先决条件主要包括概率/统计,线性代数和基本计算机科学,尽管自然语言处理需要更加密集的计算机科学背景(经常覆盖一些基本的AI).关于特定的语言:Lisp是用于进行人工智能研究的"事后补充",而Prolog(以其在形式逻辑中的根源)特别针对自然语言处理,许多课程将使用Prolog,Scheme,Matlab,R或其他功能语言(例如OCaml用于康奈尔大学的这门课程),因为它们非常适合这种分析.
以下是一些更具体的指针:
对于机器学习,斯坦福CS 229:机器学习很棒:它包括一切,包括讲座的完整视频(也在iTunes上),课程笔记,问题集等,而且Andrew Ng教授的非常好.
请注意先决条件:
学生应具备以下背景知识:基本计算机科学原理和技能知识,其水平足以编写一个合理的非平凡计算机程序.熟悉基本概率论.熟悉基本线性代数.
该课程使用Matlab和/或Octave.它还建议以下读数(虽然课程说明本身非常完整):
对于自然语言处理,斯坦福大学的NLP小组提供了许多优秀的资源.Stanford CS 224:自然语言处理入门课程包括所有在线讲座,并具有以下先决条件:
在编程和正式结构方面有足够的经验.编程项目将使用Java 1.5编写,因此需要了解Java(或者自己学习的意愿).了解人工智能和/或计算语言学中的标准概念.基本熟悉逻辑,向量空间和概率.
一些推荐的文本是:
必备计算语言学课程需要基本的计算机编程和数据结构知识,并使用相同的教科书.所需的人工智能课程也可在线获取,并附有所有讲义和用途:
这是标准的人工智能文本,也值得一读.
我自己使用R进行机器学习,并且真的推荐它.为此,我建议查看统计学习要素,全文可在线免费获取.您可能需要参考CRAN上的机器学习和自然语言处理视图以获取特定功能.
字符串算法,包括后缀树.微积分和线性代数.不同的统计数据.人工智能优化算法.数据聚类技术......以及其他一百万种东西.这是一个非常活跃的领域,取决于你打算做什么.
你选择使用什么语言并不重要.例如,Python有NLTK,这是一个非常好的免费软件包,用于修补计算语言学.