IBM Watson Conversation服务中返回实体的顺序

时间:2017-06-21 13:13:14

标签: ibm-cloud ibm-watson watson-conversation

我想在对话框中创建一个节点,可以从句子中检测 airport_from airport_to

"I want to go from Paris Orly to London heathrow"

这应该使用以下索引作为实体London Heathrow给我Paris Orly@airport值:

{
"context": {
"from": "@airport[0]",
"to": "@airport[1]"
},
"output": {
"text": {
  "values": [
    "you are going from @airport[0] to @airport[1]"
  ],
  "selection_policy": "sequential"
}
}
} 

典型地你会:

@airport[0] = 'Paris Orly'
@airport[1] = 'London Heathrow' 

这样可行,但问题是当你颠倒两个机场时,你会得到与之前相同的结果(即@airport[0] = 'Paris Orly'),而不是倒数。

我需要的是让这些实体与句子中的顺序相同。有什么想法吗?

3 个答案:

答案 0 :(得分:1)

您可以在回复中使用ternary operator。它与Watson Conversation expression language

相关联
<? entities['airport'][0].location[0]<entities['airport'][1].location[0] ? 
'First, then second' : 'Second comes first' ?>

以上评估第一个表达式,如果true使用?之后的表达式,false表达式:之后的表达式。

答案 1 :(得分:0)

我找到了一种方法,你必须测试实体的位置并创建单独的答案(尽可能多): enter image description here

我仍然希望有更好的方法。

答案 2 :(得分:0)

一种简单的方法是创建2个实体。 “从城市”和“到城市”并在“From City”中添加相同的值,添加From London,From Newyork和“To City”添加到London,To Newyork。这是一种更好的方式。