![]() |
1
42
目前有两种主要的NLP方法——一种是Jurafsky和Martin详细介绍的基于语言的方法。( Speech and Language Processing )另一种是基于概率和统计的方法( Foundations of Statistical Natural Language Processing )。 大多数和我交谈过的人都倾向于选择后者,因为后者很容易上进,而且效果很好。因此,我建议先研究概率论,然后处理一本NLP书(就像我链接到的第二本书,我现在正在一个项目中实际使用它,结果非常好)。 虽然我同意Laura的观点,正式语言理论非常有用,但我实际上认为,目前如果您只想了解NLP的实际nl部分,您可以将正式语言留待以后使用,因为有足够的工具可以进行词法分析/解析/标记化/文本转换,您可以使用这些工具而不是滚动y。我们自己的。 这里有一本书描述了这三种工具——我拥有它并推荐它作为对这三种工具的一个很好的介绍。 Building Search Applications: Lucene, LingPipe, and Gate 编辑:为了回答你的问题,我想说的第一步是彻底了解概率基础(任何本科生的prob/stats书的前3-5章都应该是好的),然后从那里查找新的主题,因为它们出现在nlp书中。例如,昨天我必须学习t值或其他东西(我不擅长名字),因为它们恰好与确定搭配的发生率有关。 |
![]() |
2
7
在Coursera上有两门优秀的NLP课程( Dan Jurafsky and Christopher Manning 或 Michael Collins ) |
![]() |
3
6
我还建议学习逻辑——首先要学习一阶谓词逻辑,同时还要学习高阶逻辑(这对推理信仰、意图、知识等很有用)——也就是说,考虑“月亮是绿奶酪”和“我认为月亮是绿奶酪”的说法。 研究逻辑对于处理意义表示很有用。语法、语言等对语法分析等很有用,但语言并不能很好地归类为易于分析的语法,因为,好吧,我们是人类:) 之前的海报提到了统计和概率——在当前的方法中非常重要。你可能还想看看朱迪亚·珀尔关于概率推理网络的研究。 你可能还想看看像Cyc这样的项目。它最初是一个代表常识知识的项目(最终语言被用来输入意义,而意义必须被表示,因此知识表示是非常重要的)。他最初是从基于帧的方法开始的,但到最后看起来他基本上使用了一阶逻辑的变体。 Cyc项目的一些人在语义Web上工作,这也是关于语义表示的,您将注意到语义Web表示再一次是一阶谓词逻辑的XML等价物。 |
![]() |
4
2
你肯定需要的一件事是在形式语言领域(自动控制、上下文无关语法、上下文敏感语法)有很好的知识。我看到的大多数东西都严重依赖于这本书——在我看来,最好的入门书是霍普克罗夫特、乌尔曼公司的《正式语言入门》。 我也见过一些与神经网络有关的技术,但我对这些知之甚少。 第三种技术(有些是从形式语言领域发展而来的)是基于分子计算的——不确定它的使用范围有多广。我会查一下A.Paun的书。 |
![]() |
5
0
我自己也只是想进入这个领域,但是如果您不确定要从哪种编程语言开始,我建议您使用Python。这是对许多关于这个话题的研究的简单回答。python易于使用,非常通用,适用于各种计算任务,并且被广泛采用。非常适合NLP。关于python和如何在nlp中使用它的介绍,我推荐这本书: 用python进行自然语言处理 ---使用自然语言工具包分析文本 作者:史蒂文·伯德、伊万·克莱恩和爱德华·洛珀 codecademy也会引导您学习Python。 http://www.codecademy.com 希望它有帮助。 |
![]() |
XYZ · 如何将每行的每个字转换为数据帧的数值 3 年前 |
![]() |
John · 使用R中的单词嵌入从文本变量预测数字变量 3 年前 |
![]() |
Sab Garduño · w2v_列中出现错误(trainFile=file_列,modelFile=model,stopWordsFile=file_stopwords)(下面是完整的错误文本) 3 年前 |
![]() |
Michael W · 从数据帧创建术语频率矩阵的有效方法 3 年前 |