我想制作一个日历应用程序,比普通英语输入更好地接受普通英语输入。我发现斯坦福的NLP似乎很酷,但我想知道它是否对这类任务有帮助。我找不到人们用它做任何事情的例子。应用程序应该真正理解语言吗?似乎存在的自然英语日历正在寻找关键字/模式并尝试解析这种方式,但我认为应用程序可以做得更好。
我真正的问题:有人可以告诉我如何找到使用NLP或其他(公开的)英语解析器制作真正有用的应用程序的人的例子吗?
答案 0 :(得分:3)
查看NLTK。
NLTK是构建Python程序的领先平台 人类语言数据。它提供了超过50个易于使用的界面 语料库和词汇资源,如WordNet,以及一套 用于分类,标记化,词干化的文本处理库, 标记,解析和语义推理。
>>> 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库:
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); })();
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/