5

我想制作一个日历应用程序,它比现有的更好地接受纯英文输入。我发现斯坦福的 NLP 看起来很酷,但我想知道它是否对这类任务有帮助。我找不到人们将它用于任何事情的例子。应用程序是否应该真正理解该语言?似乎存在的自然英文日历正在寻找关键字/模式并尝试以这种方式解析,但我认为应用程序可以做得更好。

我真正的问题:有人能告诉我如何找到人们使用 NLP 或不同(公开可用的)英语解析器来制作真正有用的应用程序的例子吗?

4

4 回答 4

3

查看NLTK

NLTK 是用于构建 Python 程序以处理人类语言数据的领先平台。它为超过 50 个语料库和词汇资源(如 WordNet)提供易于使用的接口,以及一套用于分类、标记化、词干提取、标记、解析和语义推理的文本处理库。

使用 NLTK 解析的示例:

>>> import nltk
>>> rd_parser = nltk.RecursiveDescentParser(grammar)
>>> sent = 'Mary saw a dog'.split()
>>> for t in rd_parser.nbest_parse(sent):
...     print t
(S (NP Mary) (VP (V saw) (NP (Det a) (N dog))))

NLTK 提供了一本很棒的免费书籍,可在线获取:http: //nltk.googlecode.com/svn/trunk/doc/book/book.html

IBM 的一个很好的概述:http: //www.ibm.com/developerworks/linux/library/l-cpnltk/index.html

PS:另一个与您类似的 SO 问题:Using integers/dates as terminal in NLTK parser

于 2012-06-22T18:30:48.390 回答
1

几年后,围绕 NodeJS 的 NLP 出现了重要的新兴技术。有关情况的更多概述,请参见此处:http ://www.quora.com/Are-there-any-JavaScript-natural-language-processing-projects

但是,这里是 +1 问题的示例,因为我也在寻找同样的问题……就在几年后。

NLP 的工作示例......在 JavaScript 中?

这是我的答案...

步骤 1 - 样板节点服务器:

install npm

npm install nodebootstrap

nodebootstrap naturalNode

cd naturalNode && npm install

node app

//这应该会给你一个在 localhost:3000 运行的节点引导应用程序

有关简单节点服务器设置的完整信息,请访问此处:https ://github.com/stonebk/nodeboilerplate

第 2 步 - 包括自然图书馆:

前往 GitHub Natural Library 看看它可以做什么......

https://github.com/NaturalNode/natural

跑:

npm install natural 

(在名为 naturalNode 的引导服务器中)

第 3 步 - 运行示例:

将上面链接中的示例代码包含到 app.js 引导文件中。

var natural = require('natural'),
  tokenizer = new natural.WordTokenizer();
console.log(tokenizer.tokenize("your dog has fleas."));
// [ 'your', 'dog', 'has', 'fleas' ]

现在,当您运行服务器时,您可以完全访问自然库,并能够使用前端接口对其进行扩展。

如果缺少任何说明,请告诉我...

于 2015-05-26T00:56:07.383 回答
1

有许多有用的 NLP 库可用,例如 Spacy、NLTK 和 CoreNLP

以下是与 NodeJS 和 Javascript 一起使用的前 2 个 NLP 库以及示例:

1 NLP.js

Github:https ://github.com/axa-group/nlp.js

NLP.js 由 AXA 集团开发。它是一个用于构建机器人的 NLP 库,具有实体提取、情感分析、自动语言识别等功能,支持 40 种语言。

这是一个基本代码片段,可帮助您了解设置它的难易程度。

常量 { NlpManager } = 要求('node-nlp'); const manager = new NlpManager({ 语言:['en'] });

// 添加 NLP 的话语和意图 manager.addDocument('en', 'goodbye for now', 'greetings.bye'); manager.addDocument('en', '再见了保重', 'greetings.bye');

// 也训练 NLG manager.addAnswer('en', 'greetings.bye', 'Till next time'); manager.addAnswer('en', 'greetings.bye', '再见!');

// 训练并保存模型。(async() => { await manager.train(); manager.save(); const response = await manager.process('en', '我现在该走了'); console.log(response); })( );

2 自然

Github:https ://github.com/NaturalNode/natural

Natural 是另一个著名的 Node.js NLP 库。“Natural”是 Node.js 的通用自然语言工具。它目前支持标记化、词干提取、分类、语音学、tf-idf、WordNet、字符串相似度和一些变形。

变种自然 = 要求(“自然”);var tokenizer = new natural.WordTokenizer(); console.log(tokenizer.tokenize("你的狗有跳蚤。")); // ['你的','狗','有','跳蚤']

console.log(natural.HammingDistance("karolin", "kathrin", false)); console.log(natural.HammingDistance("karolin", "kerstin", false)); // 如果字符串长度不同,则返回 -1

此处提供更多库和示例代码: https ://www.kommunicate.io/blog/nlp-libraries-node-javascript/

于 2020-06-12T15:34:13.503 回答
0

由于您没有指定任何编程语言,我建议使用名为Natty的 Java 库。如果他知道的话,你可以向它的作者询问使用他的库的实际应用程序。

于 2012-06-22T15:48:02.150 回答