在Microsoft Luis中,如何为实体数组建模?

时间:2018-09-27 23:15:43

标签: node.js nlp botframework luis

所以我试图了解用户选择实体数组的话语,下面是一些示例话语:

$CFG->default_timezone = 'America/New_York';
$time = $dtz = new DateTimeZone($CFG->default_timezone);

因此在上面的示例话语中,我应该能够获得以下实体:

My choices are 1, 2, 3, and 4
Let's go with Red  Blue  Yellow
How about January and February and March
I want A & B & C

我之前没有选择,所以我不能训练它们。但是我希望能够理解用户选择的多个选择。路易斯有可能吗?

我想我可以通过使用定界符和正则表达式来模拟用户输入来模拟NLU。但是,如果用户使用其他定界符,那将行不通。或者,如果用户在手之前附加了很多内容。

1 个答案:

答案 0 :(得分:1)

您可以通过创建名为Simple的{​​{1}}类型的实体并添加类似的话语并用该实体标记选项来解决该问题,如下所示:

enter image description here

Luis作为AI,非常擅长识别模式,这些话语具有非常明确的模式,即:

讲话:Choice + Prefix + Choice1 + delimiter + Choice2 + ... + delimiter

存在

  • ChoiceN:“我的选择是”,“我们一起去”,“怎么样”等等。
  • Prefix:任何单词
  • Choice:“,”,“和”,“”等

这大致就是Luis检测到的模式,在这种情况下,它将检测到delimiter之后由prefix分隔为delimiter的任何内容。像

这样的话
  

我要汽水,汉堡和薯条

将导致:

enter image description here

即使我们没有指定路易斯将choice sodaburger指定为有效选择,他仍然会这样检测到它们!

这是我为此答案创建的Luis模型:https://github.com/navelDirt/luis-apps/blob/master/ChoiceDetect/ChoicesApp.json

您可以通过以下方式将其导入Luis:转到YourApp->管理->版本->导入版本

编辑:

它应该检测fries个选择

enter image description here