机器学习和自然语言处理 [关闭]
Posted
技术标签:
【中文标题】机器学习和自然语言处理 [关闭]【英文标题】:Machine Learning and Natural Language Processing [closed] 【发布时间】:2011-01-15 01:28:46 【问题描述】:假设您认识一位想学习机器学习和自然语言处理的学生。
他们应该关注哪些特定的计算机科学科目,以及专门为解决这些类型的问题而设计的编程语言?
我不是在寻找您最喜欢的主题和工具,而是在寻找行业标准。
示例:我猜想了解 Prolog 和 Matlab 可能会对他们有所帮助。他们可能还想学习离散结构*、微积分和统计。
*图表和树。功能:属性、递归定义、求解递归。关系:性质、等价、偏序。证明技术,归纳证明。计数技术和离散概率。逻辑:命题演算,一阶谓词演算。形式推理:自然演绎、解析。应用程序正确性和自动推理。计算中的代数结构简介。
【问题讨论】:
一个相关的(主题)问题是datascience.stackexchange.com/questions/36463/… 【参考方案1】:我的建议是以下之一或全部(取决于他的数量和感兴趣的领域):
The Oxford Handbook of Computational Linguistics:
(来源:oup.com)
Foundations of Statistical Natural Language Processing:
Introduction to Information Retrieval:
【讨论】:
【参考方案2】:Prolog 只会在学术上帮助他们,它也仅限于基于逻辑约束和语义 NLP 的工作。 Prolog 还不是一种行业友好的语言,因此在现实世界中还不实用。而且,matlab 也是一种基于学术的工具,除非他们正在做很多基于科学或量化的工作,否则他们真的不需要它。首先,他们可能想拿起“Norvig”书并进入 AI 世界,在所有领域打下基础。了解一些基本的概率、统计、数据库、操作系统、数据结构,并且很可能对编程语言有了解和经验。他们需要能够向自己证明人工智能技术为何有效以及在哪些方面无效。然后更详细地研究机器学习和 NLP 等特定领域。事实上,norvig 书在每一章之后都提供参考资料,因此他们已经有很多可供进一步阅读的内容。有很多参考资料可供他们通过互联网、书籍、期刊论文获得指导。不要只是阅读本书尝试用编程语言构建工具,然后推断“有意义”的结果。学习算法是否真的按预期学习了,如果不是,为什么会这样,如何解决。
【讨论】:
【参考方案3】:Stanford CS 224:自然语言处理课程已经包括videos online(除了其他课程材料)。这些视频没有链接到课程网站上,所以很多人可能没有注意到它们。
【讨论】:
+1 哇,老问题,但感谢您的更新。 此链接上不再有任何视频,@michau。【参考方案4】:这个相关的 *** 问题有一些很好的答案:What are good starting points for someone interested in natural language processing?
这是一个很大的领域。先决条件主要包括概率/统计、线性代数和基础计算机科学,尽管自然语言处理需要更深入的计算机科学背景才能开始(通常涵盖一些基本的人工智能)。关于特定语言:Lisp 是由 "as an afterthought" for doing AI research 创建的,而 Prolog(源于形式逻辑)专门针对自然语言处理,许多课程将使用 Prolog、Scheme、Matlab、R 或其他函数式语言(例如 @987654323 @) 因为它们非常适合这种分析。
这里有一些更具体的指针:
对于机器学习,Stanford CS 229: Machine Learning 非常棒:它包含了所有内容,包括完整的讲座视频(也在 iTunes 上)、课程笔记、习题集等,Andrew Ng 教得非常好。
注意先决条件:
学生应具备以下背景: 基本的计算机科学原理和技能,足以写作 一个相当重要的计算机程序。熟悉基本概率论。 熟悉基本的线性代数。
本课程使用 Matlab 和/或 Octave。它还推荐以下阅读材料(尽管课程笔记本身非常完整):
克里斯托弗·毕晓普,Pattern Recognition and Machine Learning。斯普林格,2006 年。 Richard Duda、Peter Hart 和 David Stork,Pattern Classification,第 2 版。约翰威利父子公司,2001 年。 汤姆·米切尔,Machine Learning。麦格劳-希尔,1997 年。 理查德·萨顿和安德鲁·巴托,Reinforcement Learning: An introduction。麻省理工学院出版社,1998 年对于自然语言处理,NLP group at Stanford 提供了许多很好的资源。入门课程Stanford CS 224: Natural Language Processing 包括all the lectures online 并具有以下先决条件:
足够的编程经验 和正式的结构。编程 项目将使用 Java 1.5 编写, 如此了解Java(或愿意 自己学习)是必需的。 标准概念的知识 人工智能和/或 计算语言学。基本的 熟悉逻辑,向量空间, 和概率。
一些推荐的文字是:
丹尼尔 Jurafsky 和詹姆斯 H. 马丁。 2008.Speech and Language Processing: An Introduction to Natural Language Processing,计算语言学和语音识别。第二版。普伦蒂斯霍尔。 Christopher D. Manning 和 Hinrich Schütze。 1999.Foundations of Statistical Natural Language Processing.麻省理工学院出版社。 詹姆斯·艾伦。 1995 年。Natural Language Understanding。本杰明/卡明斯,第 2 版。 Gerald Gazdar 和 Chris Mellish。 1989 年。Natural Language Processing in Prolog。艾迪生-韦斯利。 (此功能免费在线提供) 弗雷德里克·杰利内克。 1998.Statistical Methods for Speech Recognition。麻省理工学院出版社。先决条件computational linguistics course 需要基本的计算机编程和数据结构知识,并使用相同的教科书。人工智能必修课is also available online连同all the lecture notes并使用:
S。罗素和 P. Norvig,Artificial Intelligence: A Modern Approach。第二版这是标准的人工智能文本,也值得一读。
我自己使用R 进行机器学习,并且非常推荐它。为此,我建议查看The Elements of Statistical Learning,其全文可免费在线获得。您可能需要参考 CRAN 上的 Machine Learning 和 Natural Language Processing 视图以了解特定功能。
【讨论】:
【参考方案5】:广泛的问题,但我当然认为有限状态自动机和隐马尔可夫模型的知识会很有用。这需要统计学习、贝叶斯参数估计和熵的知识。
潜在语义索引是许多机器学习问题中常用但最近使用的工具。有些方法很容易理解。有很多潜在的基础项目。
-
在文本语料库中查找共现以进行文档/段落/句子聚类。
对文本语料库的情绪进行分类。
自动注释或总结文档。
在单独的文档之间查找关系以自动在文档之间生成“图表”。
编辑:非负矩阵分解 (NMF) 是一种工具,由于其简单性和有效性而广受欢迎。这很容易理解。我目前正在研究使用 NMF 进行音乐信息检索; NMF 也被证明对文本语料库的潜在语义索引很有用。这是一篇论文。 PDF
【讨论】:
【参考方案6】:Jurafsky 和 Martin 的 Speech and Language Processing http://www.amazon.com/Speech-Language-Processing-Daniel-Jurafsky/dp/0131873210/ 非常好。不幸的是,第二版章节草稿现在已经发布,不再在线免费:(
此外,如果您是一名优秀的程序员,那么玩弄 NLP 程序永远不会太早。 NLTK 浮现在脑海中(Python)。它有一本书,你可以在网上免费阅读(我认为是由 OReilly 出版的)。
【讨论】:
【参考方案7】:我想说可能和统计是最重要的先决条件。尤其是 高斯混合模型 (GMM) 和 隐马尔可夫模型 (HMMs) 在机器学习和自然语言处理中都非常重要(当然这些主题可能是其中的一部分)如果是介绍性的课程)。
那么,我想说的是基本的 CS 知识也很有帮助,例如算法、形式语言和基本的复杂性理论。
【讨论】:
【参考方案8】:字符串算法,包括后缀树。微积分和线性代数。各种统计数据。人工智能优化算法。数据聚类技术……以及其他一百万种东西。目前这是一个非常活跃的领域,具体取决于您打算做什么。
您选择使用哪种语言进行操作并不重要。例如 Python 就有 NLTK,这是一个非常不错的免费软件包,用于修补计算语言学。
【讨论】:
【参考方案9】:cletus 在他的网站cforcoding 上发布的Markdown and an Introduction to Parsing Expression Grammars (PEG) 怎么样?
ANTLR 似乎是开始自然语言处理的好地方。不过我不是专家。
【讨论】:
ANTLR 和类似工具面向形式语言,具有定义明确、明确的语法。几十年来,NLP 研究人员一直在尝试使用这些工具,却发现它们根本行不通。以上是关于机器学习和自然语言处理 [关闭]的主要内容,如果未能解决你的问题,请参考以下文章