如何为本地解决方案实施 WIT.AI 之类的 BOT 引擎?

How to implement BOT engine like WIT.AI for on an on-premise solution?

我想为客户服务应用程序构建聊天机器人。我尝试了 Wit.Ai、Motion.Ai、Api.Ai、LUIS.ai 等 SaaS 服务。这些认知服务找到“intent”和“ entities" 当使用典型的交互模型训练时。

我需要为 内部部署 解决方案构建聊天机器人,而不使用任何这些 SaaS 服务。

例如典型的对话如下 -

    Can you book me a ticket?
    Is my ticket booked?
    What is the status of my booking BK02?
    I want to cancel the booking BK02.
    Book the tickets

StandFord NLP 工具包看起来很有前途,但存在许可限制。因此我开始尝试使用 OpenNLP。我假设涉及两个 OpenNLP 任务 -

  1. 使用'Document Categorizer'找出意图
  2. 使用'Named Entity Recognition'找出实体

识别上下文后,我将调用我的应用程序 API 来构建响应。

我更喜欢在 Java 中这样做。但也对节点或 python 解决方案开放。

PS - 我是 NLP 新手。

使用 Luis.ai 时,请查看我的其他攻击计划答案:

简而言之,使用 Luis.ai 并设置一些意图,从一两个开始,然后根据您的领域对其进行训练。我正在使用 asp.net 调用认知服务 API,如上所述。然后通过一些 JQuery 自定义响应...当 Luis 的响应引发每个意图或操作时,您可以在 javascript 数组中搜索规则列表。

如果您的机器人是基于英语的,那么我会使用 OpenNLP 的句子解析器将客户输入转储到数据库中(我今天这样做)。然后,我使用 OpenNLP 分词器并将关键字(减去停用词)和词性推入数据库 table 以进行关键字分析。我有一个为 OpenNLP 构建的自定义情绪模型,它将用 Pos、Neg、Neutral 情绪标记每个句子……然后您可以使用它来识别负面的客户服务反馈。要构建您自己的情感模型,请查看 SentiWord.net 并下载他们的域不可知数据文件以构建和训练 OpenNLP 模型或查看此节点版本...

https://www.npmjs.com/package/sentiword

希望对您有所帮助。

看看这个。它说它是对机器人的 Open-source 语言理解,drop-in 替代流行的 NLP 工具,如 wit.ai、api.ai 或 LUIS

https://rasa.ai/

我肯定会推荐 Rasa,它非常适合您的用例,可以轻松地在本地工作,为您处理意图和实体,最重要的是它还有一个友好的社区。

查看我的 repo,了解如何使用 Rasa 构建与简单数据库交互的聊天机器人的示例:https://github.com/nmstoker/lockebot

我试过 RASA,但我发现一个故障是 Rasa 无法回答 unmatched/untrained 用户文本。

现在,我正在使用 ChatterBot,我完全爱上了它。

使用 "ChatterBot",并使用 - 'flask-chatterbot-master' 在本地托管它

链接:

ChatterBot 安装: https://chatterbot.readthedocs.io/en/stable/setup.html

本地主机使用 - flask-chatterbot-masterhttps://github.com/chamkank/flask-chatterbot

干杯,

拉特纳卡尔

借助 RASA 和 Botkit 框架,我们可以为任何渠道构建本地聊天机器人和 NLP 引擎。请遵循此 link 以了解构建相同内容的端到端步骤。一个很棒的博客,它帮助我为我的办公室创建了一个博客

https://creospiders.blogspot.com/2018/03/complete-on-premise-and-fully.html

首先,任何聊天机器人都将成为与 NLP 一起运行的程序,它是将知识带给聊天机器人的 NLP。 NLP 依赖于机器学习技术。

本地聊天机器人较少的原因很少。

  • 我们需要建设基础设施
  • 我们需要经常训练模型

但是使用基于云的 NLP 可能无法提供数据隐私和安全性,而且包含我的业务逻辑的灵活性也非常低。

根据需要和要求的用例,一起转到内部部署或云端。

如何,请参考此 link 以了解有关在内部构建聊天机器人的端到端知识,只需很少的步骤,并且可以轻松且完全自定义。

Complete On-Premise and Fully Customisable Chat Bot - Part 1 - Overview

Complete On-Premise and Fully Customisable Chat Bot - Part 2 - Agent Building Using Botkit

Complete On-Premise and Fully Customisable Chat Bot - Part 3 - Communicating to the Agent that has been built

Complete On-Premise and Fully Customisable Chat Bot - Part 4 - Integrating the Natural Language Processor NLP

免责声明:我是这个包的作者。

A​​bodit NLP (https://nlp.abodit.com) 可以为所欲为,但目前只有 .NET。

特别是您可以轻松地将其连接到数据库,并可以提供针对数据库查询的自定义令牌。全部 strongly-typed 添加新规则就像在 C# 中添加方法一样简单。

它还特别擅长将日期时间表达式转换为查询。例如 "next month on a Thursday after 4pm" 变成 ((((DatePart(year,[DATEFIELD])=2019) AND (DatePart(month,[DATEFIELD])=7)) AND (DatePart(dw,[DATEFIELD])=4)) AND DatePart(hour,[DATEFIELD])>=16)