我打算今年学习自然语言处理.
但是当我开始阅读关于这个主题的介绍性书籍时,我发现我错过了许多与数学有关的要点.
所以我在这里寻找我应该学习的东西才能学会nlp,那么,更顺利?
提前致谢.
现在有两种主要的NLP方法 - 一种是Jurafsky和Martin(语音和语言处理)详细介绍的基于语言的方法,另一种是基于概率和统计的方法(统计自然语言处理基础).
我谈过的大多数人倾向于更喜欢后者,只要易于提升和有用的结果.因此,我建议首先考虑概率论,然后处理一本NLP书(就像我链接的第二本书,我实际上正在一个项目中使用它,效果非常好).
虽然我同意劳拉认为形式语言理论非常有用,但我实际上认为,如果你只是想进入NLP的实际NL部分,你可以留下正式的语言,因为有足够的工具可以进行你的词法分析/解析/标记化/文本转换,您可以使用它们而不是自己滚动.
这是一本描述三个这样的工具的书 - 我拥有它并推荐它作为对这三个工具的一个很好的介绍. 构建搜索应用程序:Lucene,LingPipe和Gate
编辑:在回答你的问题时,我会说第一步是彻底了解概率的基础知识(任何本科概率/统计书的前3-5章应该没问题),然后从那里开始在NLP书中查找新主题.例如,昨天我不得不学习t值或其他东西(我的名字不好),因为它们恰好与确定搭配的发生率有关.
Coursera有两个优秀的NLP课程(Dan Jurafsky和Christopher Manning,或Michael Collins)
我还建议研究逻辑 - 初学者的一阶谓词逻辑,还有高阶逻辑(这对于推理信念,意图,知识等有用 - 即考虑声明"月亮是由绿色奶酪制成的"vs"我认为月亮是由绿色奶酪制成的".
学习逻辑对于处理意义表示很有用.语法,语言等对解析等很有用,但是语言并不能很好地解析成一个易于解析的语法,因为我们是人类:)
上一张海报提到了统计数据和概率 - 在当前的方法中非常重要.您可能还想看看Judea Pearl在概率推理网络方面的工作.
您可能还想看一些像CYC这样的项目.它起源于表达常识知识的项目(最终语言用于输入意义,并且必须表示意义,因此知识表示非常重要).他最初是以基于帧的方法开始的,但最后看起来他基本上使用的是一阶逻辑的变体.
来自CYC项目的一些人在语义网上工作,这也是关于意义表示的,你会注意到语义Web表示再次是一阶谓词逻辑的XML等价物.