学习自然语言处理的先决条件是什么?

时间:2010-01-05 14:54:16

标签: nlp

我计划今年学习自然语言处理。

但是当我开始阅读关于这个主题的介绍性书籍时,我发现我错过了许多与数学有关的要点。

所以我在这里寻找我应该学习的东西,然后才能学会nlp,那么,更顺利?

提前致谢。

5 个答案:

答案 0 :(得分:42)

现在有两种主要的NLP方法 - 一种是由Jurafsky和Martin(Speech and Language Processing详述的基于语言的方法),另一种是基于概率和统计的方法(Foundations of Statistical Natural Language Processing) 。

我谈过的大多数人倾向于更喜欢后者,只要容易提升和有用的结果。因此,我建议首先考虑概率论,然后处理一本NLP书(就像我链接到的第二本书,我实际上正在项目中使用它,效果非常好)。

虽然我同意劳拉认为形式语言理论非常有用,但我实际上认为,如果你只是想进入NLP的实际NL部分,你可以留下正式的语言,因为有足够的工具可以做您的词法分析/解析/标记化/文本转换,您可以使用它们而不是自己动手。

这是一本描述三种这样的工具的书 - 我拥有它并推荐它作为对这三种工具的一个很好的介绍。 Building Search Applications: Lucene, LingPipe, and Gate

编辑:在回答你的问题时,我会说第一步是彻底了解概率的基础知识(任何本科概率/统计书的前3-5章都应该没问题),以及然后从那里查找新的主题,因为它们出现在NLP书中。例如,昨天我不得不学习t值或其他东西(我的名字不好),因为它们恰好与确定搭配的发生率有关。

答案 1 :(得分:7)

Coursera上有两个优秀的NLP课程(Dan Jurafsky and Christopher ManningMichael Collins

答案 2 :(得分:6)

我还建议研究逻辑 - 初学者的一阶谓词逻辑,还有高阶逻辑(这对于推理信念,意图,知识等有用 - 即考虑声明“月亮是制造的”绿色奶酪“vs”我认为月亮是由绿色奶酪制成的。“

学习逻辑对于处理意义表示很有用。语法,语言等对解析等很有用,但是语言不能简单地解析成一个易于解析的语法,因为我们是人类:)

上一张海报提到了统计数据和概率 - 在当前的方法中非常重要。您可能还想看看Judea Pearl在概率推理网络方面的工作。

您可能还想看一些像CYC这样的项目。它起源于表达常识知识的项目(最终语言用于输入意义,并且必须表示意义,因此知识表示非常重要)。他最初是以基于帧的方法开始的,但最后看起来他基本上使用的是一阶逻辑的变体。

来自CYC项目的一些人在语义网上工作,这也是关于意义表示的,你会注意到语义网表示再次是与一阶谓词逻辑相当的XML。

答案 3 :(得分:2)

您肯定需要的一件事是在形式语言领域(自动机,无上下文语法,上下文敏感语法)的良好知识。我见过的大部分内容在很大程度上依赖于此 - 在我看来,最好的初学者书是Hopcroft,Ullman& co。的“形式语言简介”。

我也看到了一些与神经网络有关的技术,但我对这些技术知之甚少。

第三种技术(有点从形式语言领域发展而来)是基于分子计算 - 不确定它的使用范围有多广泛。我会查看A. Paun的书。

答案 4 :(得分:0)

我自己刚进入这个领域,但如果你不确定开始使用什么编程语言,我会推荐Python。这是对该主题的大量研究的简单答案。 Python易于掌握,功能多样,适用于各种计算任务,并且被广泛采用。非常适合NLP。有关Python以及如何在NLP中使用它的介绍,我推荐这本书:

使用Python进行自然语言处理 ---使用Natural Language Toolkit分析文本 作者:Steven Bird,Ewan Klein和Edward Loper

http://nltk.org/book/

Codecademy也会引导您学习Python。 http://www.codecademy.com

希望它有所帮助。