Ibm cloud IBM Watson对话服务中返回实体的顺序

Ibm cloud IBM Watson对话服务中返回实体的顺序,ibm-cloud,ibm-watson,watson-conversation,Ibm Cloud,Ibm Watson,Watson Conversation,我想在对话框中创建一个节点,该节点可以从一个句子中检测airport\u和airport\u to: "I want to go from Paris Orly to London heathrow" 这应该给我两个值伦敦希思罗机场和巴黎奥利机场,作为一个实体@机场,使用如下索引: { "context": { "from": "@airport[0]", "to": "@airport[1]" }, "output": { "text": { "values": [ "you a

我想在对话框中创建一个节点,该节点可以从一个句子中检测airport\u和airport\u to

"I want to go from Paris Orly to London heathrow"
这应该给我两个值
伦敦希思罗机场
巴黎奥利机场
,作为一个实体
@机场
,使用如下索引:

{
"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'
),而不是相反的结果


我需要的是把这些实体按照句子中的顺序排列。各位有什么想法吗

我找到了一种方法,您必须测试实体的位置并创建单独的答案(根据需要)

我仍然希望有更好的办法

您可以在响应中使用a。它链接到:



上面计算第一个表达式,如果
true
使用
后面的表达式,如果
false
使用
后面的表达式:

,一个简单的方法是创建两个实体。“From City”和“To City”中添加相同的值,如“From City”中添加伦敦、纽约和“To City”中添加伦敦、纽约。这是一种更好的方法。

您查看过完整响应对象吗?每个entitty都有元数据,如输入字符串中的位置。(在应用程序中)可以检查这些信息,并根据这些信息分配上下文变量。@data\u henrik我已经这样做了<代码>[{“实体”:“机场”、“位置”:[25,28],“价值”:“巴黎奥利”,“信心”:1},{“实体”:“机场”、“位置”:[18,21],“价值”:“伦敦希思罗机场”,“信心”:1},{“实体”:“城市”、“位置”:[2,6],“价值”:“南特”,“信心”:0.56}]。是否有一种方法可以对对话框中节点内的
实体数组进行排序?只有在顺序始终为“从”到“到”的情况下,此方法才有效。这是正确的。我尝试了另一种方法,它使用正则表达式从
和到将单词直接放在
之后,但这并没有给我将其作为实体使用的优势……在研究SpEL之后,我找到了一种更好的方法
<? entities['airport'][0].location[0]<entities['airport'][1].location[0] ? 
'First, then second' : 'Second comes first' ?>