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

问题描述 投票:5回答:4

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

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

parsing nlp stanford-nlp
4个回答
1
投票

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

但是,这是+1问题的示例,因为几年后我也在寻找相同的问题...

JavaScript中的NLP的工作示例?

这是我的答案...

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

install npm

npm install nodebootstrap

nodebootstrap naturalNode

cd naturalNode && npm install

node app

//这应该为您提供一个在本地主机上运行的节点引导应用程序:3000

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

STEP 2-包括自然图书馆:

前往GitHub Natural Library来检查它可以做什么...

https://github.com/NaturalNode/natural

运行:

npm install natural 

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

STEP 3-运行示例:

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

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

现在,当您运行服务器时,您将拥有对自然库的完全访问权限,并具有通过前端接口对其进行扩展的能力。

让我知道是否缺少任何说明...


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:另一个与您相似的SO问题:Using integers/dates as terminals in NLTK parser


0
投票

由于您未指定任何编程语言,因此建议您使用一个名为Natty的Java库。您可以使用他的lib向作者询问有关现实生活中的应用程序的信息。


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');

//还要训练NLGmanager.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/

© www.soinside.com 2019 - 2024. All rights reserved.