Bot框架中的消歧

时间:2016-04-13 21:46:35

标签: c# botframework luis

在使用Luis.ai和Bot Framework时,有人可以提出如何处理消歧的建议吗?

我想问一下这个机器人一个简单的问题,例如2015年在X队上投了多少赌注。在Luis.ai培训的帮助下,机器人应该从问题中识别出团队和日期/时间。如果它已成功完成此操作,那么机器人会查询存储所有记录的BigQuery API,并返回适当的信息,例如团队X的投注量。

如果机器人有问题理解我的意思,我希望机器人提示我说'#34;抱歉,我不理解你"等等,然后用户将查询重写为更合适的格式,直到它以正确的格式获得查询。

1 个答案:

答案 0 :(得分:0)

我不太确定我完全理解你的问题,但也许这会有所帮助......

假设您的LUIS模型具有名为投注计数的意图,并且它希望在查询中至少找到以下两个实体:团队和的日期即可。只要用户查询的句法结构与 Bet Count 的句法结构匹配,LUIS将返回适当的结果。但是,并不是说捕获的实体是值得的。请考虑以下用户查询:

  

2015年香蕉投注了多少?

在这种情况下,LUIS可以确定查询的意图是投注计数没有问题,它将返回2015年作为日期和香蕉作为团队。由您的应用决定香蕉是否是合法的团队名称。

最后,我从未使用任何机器人框架SDK,但在阅读文档时,您似乎可以使用FormFlow

编辑.............................................. .................................................. .......................

对于你问题的后半部分:

  

如果机器人有问题理解我的意思,我希望机器人提示我说'#34;抱歉,我不理解你"等等,然后用户将查询重新编写为更合适的格式,直到获得正确格式的查询为止。

默认情况下,LUIS模型包含意图,当无法将查询映射到特定意图时使用该意图(您应该在训练模型时将其与查询一起播种)。值得注意的是,在这种情况下,JSON响应中的 intents 键(通过调用LuisClient实例的raw_query方法获得)将指向一个空列表;它不包含您可能期望的意图的字典。

通过检查此列表是否为空,您可以轻松确定LUIS是否理解该查询。