IBM Watson / Chat Bot / Conversation / Dynamic / Dialog / Discovery

IBM Watson / Chat Bot / Conversation / Dynamic / Dialog / Discovery

关于 Watson 能力的问题

背景我们正在设计一个聊天机器人来回答访客关于我们公司的问题,例如:

上面列出的示例问题应该能够由聊天机器人通过 #Intent 和 @Entity 映射到定义的对话处理中来解决,以提供预定义的答案。

然而,我们想知道的是关于更动态的问答支持,如下一节。

动态问答挑战 我们希望我们的聊天机器人能够尽可能多地回答访问者可能会问的问题,但不知道如何处理这样的问题:

关于员工

  1. 自2007年以来有多少人加入了这家公司?

    示例答案:自 2007 年以来已有 20 多名员工加入

    动态因素: • 加入的员工数量 • 年份范围

  2. 过去五年有多少员工加入并辞职?

    示例答案:10 名员工加入,其中 none 人辞职

    动态因素: • 加入的员工数量 • 自然语言年份范围 • 员工就业状况

  3. 你们的员工流动率是多少?

    示例答案:25% 或 0.25

    动态因素: • 计算:加入员工人数/离职员工人数

  4. 贵公司员工升职容易吗?

    答案示例:员工每 3 年晋升一次

    动态因素: • 计算:员工人数和晋升日期与下一个职位的内部平均值

关于项目

  1. 贵公司处理过的单价最大的项目是哪个?

示例答案:项目 A 记录了 10,000,000.00 美元

动态因素:知道如何通过最大的服务价格找到项目

  1. 贵公司在项目进度或服务交付方面是否积极进取?

    示例答案:很可能我们比原计划提前了 10%

    动态因素: • 了解所有项目和所有任务的持续时间 • 计算进度与实际完成日期之间的差异

  2. 您的项目团队的平均规模是多少?

    示例答案:平均项目团队规模为 5 人

    动态因素: • 了解所有项目并阅读所有项目团队结构 • 计算平均值

注意事项:

• We don't want to code the Question and Answer explicitly
• We are thinking IBM Watson should be able to answer those questions after understanding our data source

数据源(一堆WORD格式文件): • 包含加入日期、最后日期和每个晋升日期的员工记录 • 项目记录,包括合同、提案、团队结构和进度报告

问题想澄清或知道

• Do sample questions listed above must go through programming to handle?

• Can IBM Watson have a way to answer our question in a meaningful manner like we listed example as above, if we provided those data source to IBM Watson and how?

• For the first 2 questions about staff, do we need to code/define separate 2 mapping to handle these 2 questions even they shared similar structure?

• Can it learn to handle dynamic question structure after we let IBM Watson know enough information to answer those questions.

• If I ask something like [Last 5 Years] // [Since 2012] // [Exclude 2011 or Before] , do Watson know they are referring the same date range? Or we need to teach Watson one by one with #Intent and @Entity?

您的问题可能最适合在 IBM 的 DW 论坛上提出,因为它并不是真正用于 Whosebug 的结构。

回答所有问题:

Watson Conversation 的目的是进行非结构化对话,并以一种让计算机更容易处理的方式寻找和组织响应。

可以使用系统实体 sys-numbersys-date 捕获您上面的示例。

对话本身就很复杂,即使拥有最先进的自然语言处理能力,仍然需要付出很多努力才能在聊天或语音界面中与人进行自然的互动。如果你想看看你能走多远,我建议你从跨平台的自然语言处理工具开始,比如 API.AI

API.AI 支持实体提取(即它可以接受用户查询并确定哪些词表示什么日期、数字和自定义实体及其值),意图识别(它可以猜测用户的意图如果你给它举例说明用户使用机器学习会说什么)并支持 14 个平台(Google Assistant、Facebook、Slack、Twilio、Telegram...)全部没有任何代码.

如果您确实想自己开发一些东西 API.AI 有一个 API 并支持 16 个适用于各种平台的 SDK(Nodejs、Python、Java、... ) 和任何通过 HTTP 与他们的履行网络挂钩 JSON 说话的语言。

我想推荐一个 conversation/discovery 组合。当您的对话无法回答问题时,您将问题转发给发现。 Discovery 可以获取非结构化数据,您可以相应地提取该数据并 "teach" 它以获得正确的答案。