构build您自己的NLP API

我正在build造一个聊天机器人,我是NLP的新手。

(api.ai&AlchemyAPI对于我的用例来说太贵了,而wit.ai似乎是越野车,并且在此刻不断变化。)

对于NLP专家,我可以轻松地在本地复制他们的服务吗?

到目前为止,我的愿景(使用节点,但对Python开放):

  • 通过StanfordNER提取实体
  • 意图通过NodeNatural的LogisticRegressionClassifier
  • 用文本训练用户界面和validation/无效的button(任何预build的工具呢?)

实体和意图,我只需要一个chatbot? NodeNatural / StanfordNER与NLP-as-a-service相比有多好? 我没有看到什么令人头疼的事情?

你似乎已经完成了你的家庭工作。 就像你说的,以下的事情会一路帮助你,

  • 任何识别意图的分类algorithm,如sklearn的LinearSVC或LogisticRegression分类器
  • 任何好的NER工具,如StanfordNER或CRFsuite。 CRFsuite易于使用python封装,称为pycffsuite。
  • 一种情感分析工具,用于更多人类的对话。 它更好,如果你去与Python,因为Python有很多免费的图书馆相同。

只有wit.ai或api.ai等服务的好处是他们训练有素,随时可以使用意图和模型。如果您能够为您的机器人提供体面的培训,您也将能够获得类似的准确性。

如果你build立在一些现有的开源库上,而不是从头开始构build所有的东西,那就更好了。 请检查我的 github上的开源项目 wit.ai/api.ai类似的界面。 快乐的编码!

看看Luis.ai (来自Microsoft)。 它将帮助您build立一个识别意图的自然Langauge模型。 您可以将意图映射到操作。 它允许您包含预先configuration的NLP模型,以便您的机器人可以破译文本并返回实体(名称,时间,地理等),Luis支持多种语言。 你当然可以添加你自己的实体。

然后你用话语训练它。 当用户与你的机器人谈话,这些话语被存储在线和Luis.ai,这将build议你添加一些通过其build议function进一步优化你的模型(这允许不需要编码的增量改进)。 现在编码的东西…

访问Luis.ai,当你build立你的模型(免费),你可以通过testing控制台在这里testing它: https ://dev.projectoxford.ai/docs/services然后你可以使用他们的Bot框架; 然而,我正在build立我自己的JQuery / Bootstrap(看看这个,看看我在这里build立http://onlinebotbuilder.com )和处理从服务器通过一个职位的JSON认知服务API(你会用Python做)。 目前他们每月允许10k话语; 这对于testing是很多的。 提示:创build模型时,首先需要2个意图,然后训练模型来识别这些模型。 保持简单,然后扩大范围。 希望这可以帮助。