如何使用LUIS处理问题的无穷变化?

时间:2019-05-29 22:30:05

标签: luis

机器人将询问以下内容:

-“公寓中将容纳多少人?公寓中有多少间客房?”

如果用户回复以下内容:

-“将有3个人住在我的2间卧室的公寓里。”

然后,通过使用具有2个角色(AmountOfPeople和RoomsInApartment)的1个简单实体,可以轻松提取我需要的信息。

但是,用户可以用许多不同的方式回答问题。例如:

-“有3个人和1条狗将留在我的2间卧室的公寓里。”

-“将有3个人住在我朋友的2间卧室的小屋中。”

-“ 3个人不会住在我的2间卧室的公寓里。”

在这些情况下,有太多信息需要考虑。我只在乎会留下多少人,哪些动物会留下来只是噪音。如果他们待在朋友的地方,我需要提取该信息,以便可以在我的机器人中采取措施。问题在于,在这种情况下,用户如何回答机器人问题的方式千变万化。

我已经阅读了Microsoft网站上的所有LUIS文档,但是它只涉及非常简单的话语,因此我在那儿找不到太多指导。

我已尽力将其放在LUIS中。请参见下面的图片(此处使用1个简单实体和7个角色)。

enter image description here enter image description here

我不确定这是否是正确的方法吗?我真的应该像在做的那样给每个单词加上一个有趣的标签吗?

1 个答案:

答案 0 :(得分:2)

一些建议:

  1. 否,您不需要用实体在话语中标记每个单词。您只应标注重要部分,例如人数,房间数和住宿类型。根据这些信息,您可以推断并中继到用户信息,例如如果您使用的是Accomodation:AmountPersons,那么您就知道您在谈论人,因此您只需要提取数字,而无需提取主题和操作。
  2. 调查patterns,以简化您的版本。
  3. 从简单开始,然后在以后的内容上进行构建:
    • 我不知道在您的情况下宠物等其他“生命”是否至关重要,但我首先将其剥离为仅支持基本情况,即人们留下来。
    • 房间类型对您的情况至关重要吗?大概人们是在预订房间,而不是在沙发上睡觉。 ;-)同样,我只是选择住宿类型(公寓,别墅等)。
    • 将您的漫游器问题分为两部分-首先询问要住多少人,然后问他们要住哪里。这样一来,您在添加语音和模式方面将变得更加轻松,如果您希望支持用户输入一行,则可以在以后再次使用此功能。

我不确定单独使用LUIS是否是最好的工具,Bot Framework是否支持对话框以及waterfall dialogs似乎是您想要的理想选择。 C#NodeJS中有一个示例项目,应该为您提供一些基础。