如何告诉Watson会话不将字符串识别为数字

时间:2017-10-16 16:10:03

标签: ibm-watson watson-conversation

在使用西班牙语捕获数字时,我遇到了IBM Watson Conversation的一个奇怪问题。让我解释一下:

西班牙语,当你写(或说),“请给我一个答案”( por favor,dame una respuesta )或“我想和专业人士交谈”( quiero hablar con un profesional ),Watson将单词“ una ”和“ un ”识别为数字。是的,它是一个数字(数字1),但在这些短语中,它们没有数字的含义,它们作为一篇文章。

你知道如何告诉Watson不将字符串识别为数字吗?我一直在考虑模式,但数字可以有不同的长度。

先谢谢

2 个答案:

答案 0 :(得分:0)

根据官方文档,@sys-number系统实体检测使用数字或单词编写的数字。在 的情况下,会返回数值

启用System Entity @ sys-number时,如果用户键入了某个数字,则此实体始终尝试检测,并且存在已识别的格式:

  • 21
  • 二十一(在你的情况下,与un,una等合作)
  • 3.13

您可以看到此表显示如何将此实体与其他示例一起使用:

enter image description here

因此,Watson将识别这些值(un,una),就像一个数字一样,并且目前没有例外或配置,因为不能识别某些内容,例如用户输入的单词。 如果您希望出于某种目的向用户发送“una”或“un”(文字格式示例),只需添加对话响应:

The number is @sys-number.literal 

机器人的回报将是:

The number is un?

答案 1 :(得分:-1)

因此,不可能将@sys-number配置为仅识别数字,因为大多数情况都需要数字和数字串。我们正在努力向系统实体添加额外的上下文提示,这样当它显然不是在谈论数字时,它就会知道不返回数字。

目前的一种解决方法可能是您的对话框设计。您的对话框应该设置为不会经常收听数字,但只有当您提示用户输入数字时,误报@sys-number值才会触发不需要的条件。例如,如果您的用户说“quiero hablar con un profesional”,您的#escalate_to_agent意图将被触发,而不是您收集该号码的节点。

如果您想解释您遇到问题的确切用例,我很乐意帮助找到解决方法,同时提高我们对实体的理解。或者对于更快的频道,请使用以下方法加入我们的Slack频道:http://wdc-slack-inviter.mybluemix.net/