Jurafsky和Martin的语音和语言处理http://www.amazon.com/Speech-Language-Processing-Daniel-Jurafsky/dp/0131873210/非常好。不幸的是,第二版草案的章节已发布,因此不再在线免费提供:(
另外,如果您是一个体面的程序员,那么使用NLP程序永远不会太早。想到了NLTK(Python)。它有一本书,您可以免费在线阅读并出版(我认为是由OReilly出版)。
0
Jurafsky和Martin的语音和语言处理http://www.amazon.com/Speech-Language-Processing-Daniel-Jurafsky/dp/0131873210/非常好。不幸的是,第二版草案的章节已发布,因此不再在线免费提供:(
另外,如果您是一个体面的程序员,那么使用NLP程序永远不会太早。想到了NLTK(Python)。它有一本书,您可以免费在线阅读并出版(我认为是由OReilly出版)。
0
字符串算法,包括后缀树。微积分和线性代数。各种统计数据。人工智能优化算法。数据聚类技术……还有上百万种其他东西。现在这是一个非常活跃的字段,具体取决于您打算做什么。
选择使用哪种语言并不重要。例如,Python具有NLTK,这是一个非常不错的免费软件包,可用于修补计算语言学。
0
普遍的问题,但我当然认为,有限状态自动机和隐马尔可夫模型的知识将很有用。这需要统计学习,贝叶斯参数估计和熵的知识。
潜在语义索引是许多机器学习问题中最常用的工具。其中一些方法相当容易理解。有很多潜在的基础项目。
编辑: 非负矩阵分解 (NMF)是一种工具,由于其简单性和有效性而广受欢迎。很容易理解。我目前正在研究NMF在音乐信息检索中的使用; NMF已显示对于文本语料库的潜在语义索引也很有用。这是一张纸。 PDF格式
0
这个相关的stackoverflow问题有一些不错的答案: 对自然语言处理感兴趣的人有什么好的起点?
这是一个很大的领域。先决条件主要包括概率/统计量,线性代数和基础计算机科学,尽管自然语言处理需要更深入的计算机科学背景作为基础(通常涵盖一些基本的AI)。关于特定语言:Lisp的创建是“事后”,用于进行AI研究 ,而Prolog(源于形式逻辑)特别针对自然语言处理,许多课程将使用Prolog,Scheme,Matlab,R或其他语言功能语言(例如,康奈尔大学的课程中使用OCaml ),因为它们非常适合这种分析。
以下是一些更具体的指针:
对于机器学习, Stanford CS 229:机器学习很棒:它包括一切,包括讲座的完整视频(也在iTunes上),课程笔记,问题集等,并且Andrew Ng很好地讲授了这一知识。
请注意前提条件:
要求学生具有以下背景:基本的计算机科学原理和技能的知识,足以编写合理的,平凡的计算机程序。熟悉基本概率论。熟悉基本的线性代数。
该课程使用Matlab和/或Octave。它还建议您阅读以下内容(尽管课程笔记本身很完整):
对于自然语言处理, 斯坦福大学的NLP小组提供了许多很好的资源。 斯坦福CS 224:自然语言处理入门课程包括所有在线讲座,并具有以下先决条件:
有足够的编程和正规结构经验。编程项目将用Java 1.5编写,因此需要具备Java知识(或愿意学习)。人工智能和/或计算语言学方面的标准概念知识。基本了解逻辑,向量空间和概率。
一些推荐的文本是:
必修的计算语言学课程要求具备基本的计算机编程和数据结构知识,并使用相同的教科书。所需的人工智能课程以及所有讲义和用途也可在线获得:
这是标准的人工智能文本,也值得阅读。
我自己使用R进行机器学习,并真的推荐它。为此,我建议您看一下《统计学习的要素》 ,其全文可在线免费获得。您可能需要参考CRAN上的机器学习和自然语言处理视图以了解特定功能。
0
我会说概率统计是最重要的前提。尤其是高斯混合模型 (GMM)和隐马尔可夫模型 ( HMM )在机器学习和自然语言处理中都非常重要(如果是入门课程,那么这些主题当然可能是课程的一部分)。
然后,我想说基础CS知识也很有帮助,例如算法 , 形式语言和基础复杂性理论。
0
假设您认识一个想要学习机器学习和自然语言处理的学生。
他们应该关注哪些特定的计算机科学学科,以及专门设计用于解决这些类型问题的编程语言?
我不是在寻找您喜欢的主题和工具,而是行业标准。
示例 :我猜测了解Prolog和Matlab可能会对他们有所帮助。他们可能还想研究离散结构*,微积分和统计学。
*图和树。功能:属性,递归定义,求解重复。关系:属性,等价关系,偏序。证明技术,归纳证明。计数技术和离散概率。逻辑:命题演算,一阶谓词演算。形式推理:自然演绎,解决。程序正确性和自动推理的应用程序。计算中的代数结构简介。