如何为本地解决方案实施 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 任务 -
- 使用'Document Categorizer'找出意图
- 使用'Named Entity Recognition'找出实体
识别上下文后,我将调用我的应用程序 API 来构建响应。
- 这是正确的做法吗?
- OpenNLP 在解析文本方面有多好?
- 我可以使用 Facebook FASTTEXT 库进行意图识别吗?
- 是否有任何其他开源库可以帮助构建 BOT?
- “SyntaxNet”对我的冒险有用吗?
我更喜欢在 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
我肯定会推荐 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-master:https://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
免责声明:我是这个包的作者。
Abodit 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)
我想为客户服务应用程序构建聊天机器人。我尝试了 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 任务 -
- 使用'Document Categorizer'找出意图
- 使用'Named Entity Recognition'找出实体
识别上下文后,我将调用我的应用程序 API 来构建响应。
- 这是正确的做法吗?
- OpenNLP 在解析文本方面有多好?
- 我可以使用 Facebook FASTTEXT 库进行意图识别吗?
- 是否有任何其他开源库可以帮助构建 BOT?
- “SyntaxNet”对我的冒险有用吗?
我更喜欢在 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
我肯定会推荐 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-master:https://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
免责声明:我是这个包的作者。
Abodit 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)