首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >对话框流匹配与现有意图无关的短语。

对话框流匹配与现有意图无关的短语。
EN

Stack Overflow用户
提问于 2018-03-29 16:22:14
回答 2查看 3.2K关注 0票数 4

我创建了一个聊天机器人,它告诉用户我(扩展的)家族成员的名字以及他们在哪里生活。我用MySQL创建了一个小型数据库,存储了这些数据,并在适当的时候使用PHP脚本获取它们,这取决于用户与聊天机器人的交互。

由于这个原因,我为Default Fallback IntentDefault Welcome Intent另外创建了两个意图

  • Names
  • Location_context

第一意图('Names')是由诸如“你叔叔的名字是什么?”这样的短语来训练的。并且有一个输出上下文。第二个意图('Location_context')是由诸如“他住在哪里?”、“他的基地在哪里?”、“他在哪里?”这样的短语训练的。“他住在哪个城市?”等等,并且有一个输入上下文(来自'Names')。

一般来说,这个基本的聊天机器人可以很好地实现它的目的。然而,我的问题是(在触发'Names'意图之后),如果你问一些荒谬的问题,比如‘他在哪里下雪?’然后,聊天机器人将触发'Location_context'意图,聊天机器人将响应(正如它的定义)‘您的叔叔住在纽约’。另外,让我提到,由于我已经构建了聊天机器人,到目前为止,这种反应得到的分数高于0.75,后者相当高。

我怎样才能让我的聊天机器人在这些荒谬的问题中触发默认的退步意图(或者更合理的问题,比如“他在哪里吃?”)它与'Location context'意图不完全相关),也不触发意图,例如'Location_context',它只包含一些与其类似的关键字,如单词'Where'

EN

回答 2

Stack Overflow用户

发布于 2018-03-30 14:54:22

尝试在代理设置( ML CLASSIFICATION THRESHOLD )中使用ML CLASSIFICATION THRESHOLD。默认情况下,它的得分很低(0.2),有点咄咄逼人。

定义信心分数的阈值。如果返回的值小于阈值,则会触发回退意图,或者,如果没有定义回退意图,则不会触发意图。

您可以在JSON响应中看到查询的得分:

代码语言:javascript
复制
{
    "source": "agent",
    "resolvedQuery": "Which city does he live at?",
    "metadata": {
        "intentId": "...",
        "intentName": "Location_context"
    },
    "fulfillment": {
        "speech": "Your uncle is living in New York",
        "messages": [{
            "type": 0,
            "speech": "Your uncle is living in New York"
        }]
    },
    "score": 0.9
}

比较对错比赛的分数,你就会很清楚哪个自信的分数对你的经纪人来说是正确的。

在改变这个设置后,让它训练,再试一次,并调整它,直到它满足您的需要。

更新

对于仍将获得高分的查询(如Where is he cooking? ),您可以添加另一个意图,即自定义回退,以处理这些假阳性,可能是使用自定义实体:NonLocationActions,并在用户表达式中使用template mode (@)。

  • @NonLocationActions:NonLocationActions在哪里?
  • @NonLocationActions:NonLocationActions是哪个城市?

因此,这些查询将在新的自定义回退中获得1分,而不是在位置意图上获得0.7。

票数 5
EN

Stack Overflow用户

发布于 2018-11-14 16:28:52

我正在使用对话框处理聊天机器人,并且遇到了类似的问题。

我们的测试经理发明了“香肠测试”,她用香肠这个词代替了问题中的某些单词,我们的机器人就崩溃了!即使门槛值为0.8,我们仍然经常会遇到一些问题,比如无意的句子,以及企业级的聊天机器人,它给出了产品安装建议,但我们负担不起这个错误。

我们发现,在某些情况下,我们得到了最大的信心水平(1),显然不可靠的‘香肠’输入。

我们解决这个问题的方法是将所有答案都备份到API中,并与其他测试一起使用信心评分。例如,我们引入了正则表达式测试来检查问题中的关键字,以及参数匹配(确保来自DialogFlow的数据中也传递了关键实体参数)。

最近,我们亦开始在答覆开始时加入一个低信心的句子,即“我想你是在问XYZ,但如果不是,请重新表述你的问题。这是你的答案。”当所有额外的测试都失败时,我们就会这样做,并且我们的阈值在0.8到0.98之间。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49560851

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档