【发布时间】:2017-03-14 22:37:34
【问题描述】:
例如:如果用户在 Watson Conversation Service 中写入:
“我不想在我的新房子里有一个游泳池,但我想住在公寓里”
你怎么知道用户不想拥有游泳池,但他喜欢住在公寓里?
【问题讨论】:
标签: ibm-watson watson-conversation watson-dialog watson
例如:如果用户在 Watson Conversation Service 中写入:
“我不想在我的新房子里有一个游泳池,但我想住在公寓里”
你怎么知道用户不想拥有游泳池,但他喜欢住在公寓里?
【问题讨论】:
标签: ibm-watson watson-conversation watson-dialog watson
这是一个很好的问题,是的,这有点棘手......
目前,您最好的办法是提供尽可能多的应归类为特定意图的话语示例,作为该意图的训练示例 - 您提供的示例越多,NLU(自然语言理解)就越健壮。
话虽如此,请注意使用以下示例:
“我想在我的新房子里有一个游泳池,但我不喜欢住在公寓里”
对于intent-pool 和
“我不想在我的新房子里有一个游泳池,但我想住在公寓里”
for intent-condo 将使系统正确分类这些句子,但它们之间的置信度差异可能很小(因为当你只看文本时它们非常相似)。
所以这里的问题是,是否值得让系统对此类意图进行开箱即用的分类,或者在更简单的示例上训练系统,并在您发现前 N 个意图低的情况下使用某种形式的消歧置信度差异。
【讨论】:
Sergio,在这种情况下,您可以测试对等节点有效的所有条件(继续),而您的否定(其他示例)可以使用“true”。
尝试使用意图来确定流程和实体来定义条件。
查看更多:https://www.ibm.com/watson/developercloud/doc/conversation/tutorial_basic.shtml
PS:您可以使用以下方法获取实体的值:
【讨论】:
这是对话服务中多意图的典型场景。每次用户说话时,都会识别出所有前 10 个意图。您可以像这样更改对话 JSON 编辑器以查看所有意图。
{
"output": {
"text": {
"values": [
"<? intents ?>"
],
"selection_policy": "sequential"
}
}
}
例如,当用户发表一个声明时,将触发两个意图,您会看到 intents[0].confidence 和 intents[1].confidence两者都很高,这意味着对话从用户文本中识别出两种意图。
但是到目前为止,它有一个主要限制,对于已识别的意图没有保证的顺序,即,如果你说过 “我不想在我的新房子里有一个游泳池,但我想住在公寓里”,不能保证积极的意图“would_not_want”会是意图[0] .intent 和intent "would_want" 将是intents[1].intent。因此,在您的应用程序中以更高的准确度实现此场景会有点困难。
【讨论】:
现在,这在 Watson Assistant 中很容易实现。您可以通过创建上下文实体来做到这一点。
在您的意图中,您标记相关实体并将其标记为您定义的实体。上下文实体现在将学习句子的结构。这不仅会了解您已标记的内容,还会检测您未标记的实体。
当你运行它时,你会得到这个。
此处为完整示例:https://sodoherty.ai/2018/07/24/negation-annotation/
【讨论】: