【问题标题】:Building your own NLP API构建自己的 NLP API
【发布时间】:2016-04-20 13:54:06
【问题描述】:

我正在构建一个聊天机器人,但我是 NLP 新手。

(对于我的用例来说,api.ai 和 AlchemyAPI 太贵了。而且 wit.ai 似乎有问题,而且目前还在不断变化。)

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

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

  • 通过 StanfordNER 提取实体
  • 意图通过 NodeNatural 的 LogisticRegressionClassifier
  • 使用文本和验证/无效按钮训练 UI(是否有任何预建工具?)

聊天机器人只需要实体和意图吗? NodeNatural/StanfordNER 与 NLP 即服务相比有多好?我没有看到哪些令人头疼的问题?

【问题讨论】:

  • 您几乎回答了自己的问题:如果您提到的那些 API 太昂贵,那么它们提供的功能很可能不容易实现(至少在最佳情况下)。但是,您可能不需要它们提供的所有功能。最后,为什么不使用开源 Python NLP 库,即nltk.org ??
  • @William,是的,我喜欢 nltk。但是作为聊天机器人和 NLP 的新手,我想知道我在做什么。我的乐观情绪是“哦,好吧,我将使用一些 nltk 模块,然后在晚餐前完成!”我一定错过了什么,我想知道具体是什么。

标签: python node.js nlp chatbot


【解决方案1】:

您似乎已经完成了家庭作业。就像你说的那样,跟随事情会帮助你一路走来,

  • 任何用于识别意图的分类算法,例如 sklearn 的 LinearSVC 或 LogisticRegression 分类器
  • 任何好的 NER 工具,例如 StanfordNER 或 CRFsuite。 CRFsuite 具有易于使用的 pthon 包装,称为 pycrfsuite。
  • 一种情感分析工具,用于更人性化的对话。 如果你使用 python 会更好,因为 python 有很多相同的免费库。

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

最好在一些现有的开源库上进行构建,而不是从头开始构建所有内容。 请在 github 上 check my opensource project 获取 wit.ai/api.ai 类似的接口。 编码愉快!

【讨论】:

    【解决方案2】:

    看看Luis.ai(来自微软)。它将帮助您构建识别意图的自然语言模型。您可以将意图映射到操作。它允许您包含预配置的 NLP 模型,以便您的机器人可以破译文本并返回实体(名称、时间、地理等),并且 Luis 支持多种语言。您当然可以添加自己的实体。

    然后你用话语训练它。当用户与您的机器人交谈时,这些话语会在线存储,Luis.ai 会建议您通过其建议功能添加一些内容以进一步完善您的模型(这允许在无需编码的情况下进行增量改进)。现在是编码的东西......

    访问 Luis.ai,当您构建模型(免费)时,您可以通过此处的测试控制台对其进行测试:https://dev.projectoxford.ai/docs/services,然后您可以使用他们的 Bot Framework;但是我正在 JQuery/Bootstrap 中构建我自己的(看看这个以了解我在这里构建的内容http://onlinebotbuilder.com)并通过发送到认知服务 API 的帖子从服务器处理 json(您将在 Python 中执行) .目前,他们每月允许 10k 次发言;用于测试的内容很多。提示:在创建模型时,从 2 个意图开始并训练您的模型以识别这些意图。保持简单,然后随心所欲地扩大范围。希望这可以帮助。

    【讨论】:

      【解决方案3】:

      需要考虑的两件事是:您打算如何处理生成方面的事情?实体提取和分类将对自然语言理解 (NLU) 方面有用,但生成本身可能很棘手。

      要考虑的另一件事是,这些模型的管道的训练和开发通常是部署之外的单独问题。我认为,您想使用节点这一事实表明您已经了解部署软件。但请记住,在管道中部署大型机器学习模型可能很复杂,我怀疑这些 API 可能会为您提供整齐打包的管道。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-07-24
        • 2019-05-09
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多