尽管输入了准确的言语,AWS Lex的意图仍然错误

时间:2019-03-22 07:29:51

标签: amazon-web-services artificial-intelligence chatbot amazon-lex

我在各种不同的情况下都遇到了这个问题。

我将举一个例子。

我有一些常见问题解答意图。 一个回答“什么是命名实体识别” 这些就是话语:

  1. 告诉我有关命名实体识别的信息
  2. 告诉我有关NER的信息
  3. 什么是NER
  4. 命名实体识别是什么意思
  5. 什么是命名实体识别

和其他答案“什么是光学字符识别?” 这些就是话语:

  1. OCR
  2. OCR是什么意思
  3. 你能告诉我什么是OCR
  4. 介绍OCR
  5. 什么是光学字符识别
  6. 什么是OCR

当我输入“什么是OCR?”时,它可以按预期工作,并显示OCR的答案。 但是,当我改为在所有大写字母中输入OCR时,出现相同的确切问题(什么是OCR?)。它切换到NER目的,并向我显示“什么是NER?”的答案。

有人可以回答为什么这样做吗?更重要的是,我该怎么做才能使其按预期工作。

请记住,这只是一个示例。我在其他许多类似的场景中也遇到过这种情况。

在某些情况下,意图言语似乎并没有遥不可及。但是它仍然切换到错误的意图。

2 个答案:

答案 0 :(得分:3)

根据Lex和Alexa documentation,自定义广告位类型的首字母缩写应在所有大写字母(OCR)中写为单个单词,或用句点和空格分隔(小写字母c。r。)。

在表格的底部,您可以看到Fire HD7Fire h. d.Fire HDFire HD 7的示例,它们都证明了这一点-这两个有效选项将解析为相同的广告位值输出。

假设语音是按照最佳做法设置的,那么如果您要提供语音输入,请务必注意,语音对诸如声音的变化,单词之间的步调/间隔,重音等敏感。

关于立即采取的提高准确性的步骤,您始终可以尝试进一步分解意图,在这种情况下,自定义广告位值(NER,命名实体识别,OCR和光学字符)的每个排列都有两个意图,而不是两个意图承认)。对于人类来说,很容易理解短语的首字母映射为首字母缩写词,但是当要教一个聊天机器人理解这些短语是同义词时,这会有点困难。

答案 1 :(得分:0)

最后,我没有找到合适的解决方案,但使用了一些非常微不足道的解决方法,但是只要它可以:H

我使用的解决方法是提出“什么”意图,“如何”意图等。使句子结构保持完整:

例如:

IntentName => "Bot_HowTo"

Utterances => 
"What is {slotName}"
"What are {slotName}"
"Meaning of {slotName}"

Slots =>
name : "slotName"
values (using synonyms) : 
{OCR => "ocr", Optical Character recognition"}
{NER=> "ner", Named Entity Recognition"}

这使所需的意图量大大减少,并且消除了很多歧义。具有“什么”或类似格式的所有问题均直接符合该意图。

然后在我的代码钩中,看到匹配的同义词并提供相应的答案。