好例子:英语解析/自然语言处理

时间:2012-06-21 23:45:33

标签: parsing nlp stanford-nlp

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

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

4 个答案:

答案 0 :(得分:3)

查看NLTK

  

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

parsing with 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:另一个类似于你的问题:Using integers/dates as terminals in NLTK parser

答案 1 :(得分:1)

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

但是,这是+1问题的例子,因为我也在寻找同样的问题......仅仅几年之后。

JavaScript中的NLP工作示例?

这是我的答案......

步骤1 - Boilerplate节点服务器:

install npm

npm install nodebootstrap

nodebootstrap naturalNode

cd naturalNode && npm install

node app

//这应该会给你一个在localhost:3000

运行的节点引导程序

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

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

前往GitHub自然图书馆了解它可以做些什么...

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' ]

现在,当您运行服务器时,您可以完全访问自然库,并能够使用前端界面扩展它。

如果缺少任何指示,请告诉我......

答案 2 :(得分:0)

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

答案 3 :(得分:0)

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

下面是与NodeJS和Javascript一起使用的示例中排名前2位的NLP库:

1 NLP.js

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

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

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

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

//为NLP添加话语和意图 manager.addDocument('en','暂时再见','greetings.bye'); manager.addDocument('en','bye bye care','greetings.bye');

//也训练NLG manager.addAnswer('en','greetings.bye','直到下一次'); manager.addAnswer('en','greetings.bye','很快再见!');

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

2自然

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

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

var natural = require('natural'); 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/