LUIS意图识别冲突

时间:2017-03-30 03:32:06

标签: microsoft-cognitive luis

我试图实现一个分层聊天机器人,利用LUIS来识别主要和次要意图。 作为其中的一部分,创造了众多LUIS模型并经过培训。 然而,在各种情况下,LUIS的行为被观察到奇怪和不可预测。 例如,获得了一个名为离开的LUIS模型,其中包含以下话语。

话语意图 我有资格领养吗?离开查询 什么是我的休假余额?离开查询 病假是什么?离开查询 谁批准我的病假?离开审批

在对这些话语进行培训后,针对休假语境的查询正在按预期进行。 但是,当针对 Leaves 模型验证以下消息并期望接收“”意图时,LUIS将返回意图 “< strong>无“,这没有任何意义。

查询预期意图实际意图 我有资格获得贷款吗?无请假 什么是我的贷款余额无请假查询 谁批准我的贷款无请假查询

这里的问题是“我有资格获得贷款”根本不属于这个LUIS模型,我期待“”意图。 当话语不属于查询的LUIS模型时,想法是接收意图,以便可以检查其他模型的有效意图。 但总是得到一些意图,而不是“”。

不确定我在这里做错了什么。 任何关于此的帮助/指导都会有所帮助。

2 个答案:

答案 0 :(得分:0)

您的模型受过多少训练以及注册了多少次?只是为了检查一下,你收到“我有资格获得贷款吗?”和“谁批准我的贷款”这一话后你进入了LUIS门户网站并训练了他们将匹配的机器人离开意图?

请注意,在任何语言理解模型经过全面培训之前,它们都会容易出错。

在看你的话语时,我注意到它们都非常相似:

  • 我是否有资格领养?” vs“我有资格获得贷款吗?”
  • 我的 <离开余额?” vs“什么是我的贷款余额?”
  • 谁批准我病假?” vs“谁批准我的贷款”

这些话语的差异很小。它们是非常普遍的问题,您没有表明目前正在使用任何实体。虽然通过简单的示例可以理解缺少这些问题的实体,但实体肯定有助于LUIS理解哪些意图与之匹配。

要解决此问题,您需要更多地训练模型并添加实体。你可能会使用的其他一些话语是“我的余额是多少?”,“检查我的休假余额”,“告诉我我的休假余额。”,“检查休假余额”,等等。

答案 1 :(得分:0)

我同意史蒂文上面提出的建议

  1. 培训意图是一种不错的做法
  2. 定义实体将有所帮助
  3. 如果您想根据某些域对您的意图进行分类,例如,请保留本案例。我建议创建一个值为leave的List实体。

    如果你想留下任何留言,请留下查询意图。

    anything about [leave ]
    

    当前版本结果

    Top scoring intent
    Leave Query (1)
    Other intents
    None (0.28)
    

    其余句子没有离开

    anything about loan
    

    当前版本结果

    Top scoring intent
    None (0.89)
    Other intents
    Leave Query (0)
    

    虽然这里的约束是,但是你可以使它更加明确,就像对于Leave查询的得分为10一样。

    这取决于您的用例,是否要采取明确的方法或预测方法。对于机器到机器的通信,您可能会考虑采用明确的方法,但对于像聊天机器人这样的东西,您可能更喜欢采用预测方法。

    尽管如此,这可能对你有所帮助。

    希望这有帮助

    enter image description here