机器学习和自然语言处理
machine-learning
nlp
6
0

假设您认识一个想要学习机器学习和自然语言处理的学生。

他们应该关注哪些特定的计算机科学学科,以及专门设计用于解决这些类型问题的编程语言?

我不是在寻找您喜欢的主题和工具,而是行业标准。

示例 :我猜测了解Prolog和Matlab可能会对他们有所帮助。他们可能还想研究离散结构*,微积分和统计学。

*图和树。功能:属性,递归定义,求解重复。关系:属性,等价关系,偏序。证明技术,归纳证明。计数技术和离散概率。逻辑:命题演算,一阶谓词演算。形式推理:自然演绎,解决。程序正确性和自动推理的应用程序。计算中的代数结构简介。

参考资料:
Stack Overflow
收藏
评论
共 8 个回答
高赞 时间 活跃

Jurafsky和Martin的语音和语言处理http://www.amazon.com/Speech-Language-Processing-Daniel-Jurafsky/dp/0131873210/非常好。不幸的是,第二版草案的章节已发布,因此不再在线免费提供:(

另外,如果您是一个体面的程序员,那么使用NLP程序永远不会太早。想到了NLTK(Python)。它有一本书,您可以免费在线阅读并出版(我认为是由OReilly出版)。

收藏
评论

字符串算法,包括后缀树。微积分和线性代数。各种统计数据。人工智能优化算法。数据聚类技术……还有上百万种其他东西。现在这是一个非常活跃的字段,具体取决于您打算做什么。

选择使用哪种语言并不重要。例如,Python具有NLTK,这是一个非常不错的免费软件包,可用于修补计算语言学。

收藏
评论

提到的斯坦福CS 224:自然语言处理课程已经包括在线视频 (除了其他课程材料)。这些视频未在课程网站上链接,因此很多人可能没有注意到它们。

收藏
评论

普遍的问题,但我当然认为,有限状态自动机和隐马尔可夫模型的知识将很有用。这需要统计学习,贝叶斯参数估计和熵的知识。

潜在语义索引是许多机器学习问题中最常用的工具。其中一些方法相当容易理解。有很多潜在的基础项目。

  1. 寻找共同出现在语料库文档/段落/句子集群。
  2. 对文本语料库的情绪进行分类。
  3. 自动注释或总结文档。
  4. 查找单独文档之间的关系 ,以自动在文档之间生成“图形”。

编辑: 非负矩阵分解 (NMF)是一种工具,由于其简单性和有效性而广受欢迎。很容易理解。我目前正在研究NMF在音乐信息检索中的使用; NMF已显示对于文本语料库的潜在语义索引也很有用。这是一张纸。 PDF格式

收藏
评论

这个相关的stackoverflow问题有一些不错的答案: 对自然语言处理感兴趣的人有什么好的起点?

这是一个很大的领域。先决条件主要包括概率/统计量,线性代数和基础计算机科学,尽管自然语言处理需要更深入的计算机科学背景作为基础(通常涵盖一些基本的AI)。关于特定语言:Lisp的创建是“事后”,用于进行AI研究 ,而Prolog(源于形式逻辑)特别针对自然语言处理,许多课程将使用Prolog,Scheme,Matlab,R或其他语言功能语言(例如,康奈尔大学的课程中使用OCaml ),因为它们非常适合这种分析。

以下是一些更具体的指针:

对于机器学习, Stanford CS 229:机器学习很棒:它包括一切,包括讲座的完整视频(也在iTunes上),课程笔记,问题集等,并且Andrew Ng很好地讲授了这一知识。

请注意前提条件:

要求学生具有以下背景:基本的计算机科学原理和技能的知识,足以编写合理的,平凡的计算机程序。熟悉基本概率论。熟悉基本的线性代数。

该课程使用Matlab和/或Octave。它还建议您阅读以下内容(尽管课程笔记本身很完整):

  • Christopher Bishop, 模式识别与机器学习 。施普林格,2006年。
  • Richard Duda,Peter Hart和David Stork,《 模式分类》 ,第二版。约翰·威利父子(John Wiley&Sons),2001年。
  • Tom Mitchell, 机器学习 。麦格劳·希尔(McGraw-Hill),1997年。
  • Richard Sutton和Andrew Barto, 强化学习:简介 。麻省理工学院出版社,1998

对于自然语言处理, 斯坦福大学NLP小组提供了许多很好的资源。 斯坦福CS 224:自然语言处理入门课程包括所有在线讲座,并具有以下先决条件:

有足够的编程和正规结构经验。编程项目将用Java 1.5编写,因此需要具备Java知识(或愿意学习)。人工智能和/或计算语言学方面的标准概念知识。基本了解逻辑,向量空间和概率。

一些推荐的文本是:

必修的计算语言学课程要求具备基本的计算机编程和数据结构知识,并使用相同的教科书。所需的人工智能课程以及所有讲义和用途也可在线获得:

这是标准的人工智能文本,也值得阅读。

我自己使用R进行机器学习,并真的推荐它。为此,我建议您看一下《统计学习的要素》 ,其全文可在线免费获得。您可能需要参考CRAN上的机器学习自然语言处理视图以了解特定功能。

收藏
评论

我会说概率统计是最重要的前提。尤其是高斯混合模型 (GMM)和隐马尔可夫模型HMM )在机器学习和自然语言处理中都非常重要(如果是入门课程,那么这些主题当然可能是课程的一部分)。

然后,我想说基础CS知识也很有帮助,例如算法形式语言和基础复杂性理论。

收藏
评论

我的建议是以下任何一项或全部(取决于他的数量和关注领域):

牛津计算语言学手册

牛津计算语言学手册
(来源: oup.com

统计自然语言处理的基础

统计自然语言处理的基础

信息检索简介

信息检索导论

收藏
评论

Markdown和 cletus在其网站cforcoding上发布的解析表达语法(PEG)简介怎么

ANTLR似乎是开始进行自然语言处理的好地方。我不是专家。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号