【问题标题】:IBM Watson Assistant - exclude a specific entity value so as not to match it everIBM Watson Assistant - 排除特定实体值,以免永远匹配
【发布时间】:2020-01-16 00:07:23
【问题描述】:

这可能是一个我无法找到的简单值,但我正在尝试排除单个值(“女朋友”),使其不被我正在构建的聊天机器人中作为实体拾取。实体列表目前是“狗、猫、宠物、妈妈、马”,其中每个实体也有相关的同义词。

Watson 不断选择“女朋友”并将其作为一个实体进行匹配,尽管它不在其中,这会堵塞对话中的逻辑。

有没有办法阻止 Watson 在实体列表中识别出列表中的相似词?我曾尝试关闭模糊匹配,但只是漏掉了拼写错误。

请注意,这不是意图训练问题,而是专门询问实体识别。

任何帮助表示赞赏。

-T-

【问题讨论】:

  • 您是否为您的实体打开了模糊匹配?尝试将其关闭。

标签: ibm-cloud watson-assistant


【解决方案1】:

您的问题并不完全清楚,但您可能想看看how to improve a skill。因为 Watson Assistant 是基于 AI 技术构建的,所以一个关键部分是关于学习的。

您可以通过返回对话并用正确的匹配更正错误匹配来“教”Watson Assistant。 Watson Assistant 将选择它,然后重新训练对话。这应该会导致排除“女朋友”。

【讨论】:

  • 我在 30 年的职业生涯中开发了 100 多个 NLP 解决方案,但这是我第一次使用 Watson,所以我想我错过了一个简单的(不像你建议的那么简单 - 再培训) 事物。这不是它出错的意图识别,而是添加了一个不在实体列表中的单词,它被标记为该实体。该词不在实体列表中,我不希望它在实体列表中,如何将其从实体列表中排除?重新训练它是不可能的,因为它是一个实体,而不是一个意图。
  • 您能否为您的问题添加详细信息?或者加入这个 Slack 社区与 Watson 开发人员讨论:wdc-slack-inviter.mybluemix.net
【解决方案2】:

我遇到了类似的问题。我的机器人一直选择自己的名字作为用户名,我希望它忽略自己的名字,即使用户输入它(例如你好机器人,我是吉尔)我希望它响应“吉尔”而不是“机器人”但它一直想念它。后来我意识到我创建的上下文变量与用户名具有相似的值。所以我所做的是创建一个变量@bot-name 并只给它一个值(机器人),没有同义词,没有模糊匹配,没有注释。然后再次尝试,Bot 识别出它自己的名称,忽略它并正确选择第二个名称作为用户名。因此,当我重复“你好机器人,我是吉尔”这句话时,它识别出@entity:bot-name 和@entity:user-name,然后只响应用户名。你可以试试类似的。

【讨论】:

  • 您使用的是哪个平台?
【解决方案3】:

不清楚您是如何创建实体列表的。如果它是通过上下文实体,那么 Watson 可能会将“女朋友”视为与其他实体在同一个“家庭”中并添加到实体列表中。如果实体列表和同义词一起被硬编码,那么我猜你的同义词之一共享一些女朋友、女孩或朋友的拼写。通过模糊逻辑将匹配实体,但置信度较低。 要解决此问题,您可以创建一个新的实体列表并设置一个看起来匹配实体列表一但不匹配实体列表二(女朋友)的条件。
或者您可以在实体列表和实体置信度 > 0.8 上设置您的条件 - 但您可能会错过一些拼写错误。 (选择一个略高于为女朋友报告的置信水平)。

【讨论】:

    【解决方案4】:

    我不能说这是否是一个解决方案,但是我更愿意称它为一种解决方法,因为它对我来说很有效。

    非上下文案例:

    • 创建new entity 并添加girlfriend 作为值。因此,它永远不会干扰对话流中的当前实体。

    上下文案例:

    • 使用包含girlfriend 的示例训练意图并使用新实体对其进行注释。

    【讨论】:

      猜你喜欢
      • 2019-07-27
      • 2019-02-15
      • 2019-09-01
      • 2019-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多