Ibm watson 如何在IBM对话中对字符串数组应用数组方法

Ibm watson 如何在IBM对话中对字符串数组应用数组方法,ibm-watson,watson-conversation,Ibm Watson,Watson Conversation,在IBM对话中,如果我们创建一个包含其他数组(如实体)的上下文变量数组,那么它将成为一个字符串数组。根据文档,不能对字符串数组执行size()或length()等数组方法。有什么方法可以在字符串数组上执行这样的功能吗?Watson对话服务中的数组和字符串类型是有区别的。要获取关于数组大小的信息-即获取关于数组类型包含的元素数量的信息,可以使用size()方法 对于type string,可以使用length()方法获取有关字符串中字符数的信息 这是两者的一个例子。该字符串看起来像一个数组,但它是

在IBM对话中,如果我们创建一个包含其他数组(如实体)的上下文变量数组,那么它将成为一个字符串数组。根据文档,不能对字符串数组执行
size()
length()
等数组方法。有什么方法可以在字符串数组上执行这样的功能吗?

Watson对话服务中的数组和字符串类型是有区别的。要获取关于数组大小的信息-即获取关于数组类型包含的元素数量的信息,可以使用
size()
方法

对于type string,可以使用
length()
方法获取有关字符串中字符数的信息

这是两者的一个例子。该字符串看起来像一个数组,但它是一个字符串(用引号括起来)“。请注意,数组类型周围没有引号:

{
  "context": {
    "my_string" : "[\"one\", \"two\", \"three\"]",
    "my_array": [
      "one",
      "two",
      "three"
    ]
  },
  "output": {
    "text": {
      "values": [
        "This is string size: <?$my_string.length()?>. This is my array size: <? context.my_array.size()?>"
      ],
      "selection_policy": "sequential"
    }
  }
}
{
“背景”:{
“我的字符串”:“[\'1\'、\'2\'、\'3\'”,
“我的_数组”:[
“一个”,
“两个”,
“三个”
]
},
“产出”:{
“文本”:{
“价值观”:[
“这是字符串大小:。这是我的数组大小:”
],
“选择策略”:“顺序”
}
}
}
以下是对话框中的答案:
这是字符串大小:23。这是我的数组大小:3

字符串类型支持函数
length()

数组类型支持函数
size()

对于type string,可以使用
length()
方法获取有关字符串中字符数的信息

这是两者的一个示例。字符串看起来像一个数组,但它是一个字符串(用引号括起来)
”。请注意数组类型周围没有引号:

{
  "context": {
    "my_string" : "[\"one\", \"two\", \"three\"]",
    "my_array": [
      "one",
      "two",
      "three"
    ]
  },
  "output": {
    "text": {
      "values": [
        "This is string size: <?$my_string.length()?>. This is my array size: <? context.my_array.size()?>"
      ],
      "selection_policy": "sequential"
    }
  }
}
{
“背景”:{
“我的字符串”:“[\'1\'、\'2\'、\'3\'”,
“我的_数组”:[
“一个”,
“两个”,
“三个”
]
},
“产出”:{
“文本”:{
“价值观”:[
“这是字符串大小:。这是我的数组大小:”
],
“选择策略”:“顺序”
}
}
}
以下是对话框中的答案:
这是字符串大小:23。这是我的数组大小:3

字符串类型支持函数
length()

数组类型支持函数
size()

我认为文档中的示例可能会让您感到困惑

您可以嵌套数组,甚至是字符串数组,但仍然可以将它们作为数组数据类型进行操作。您在文档中引用的示例旨在说明,如果在对话框响应中包含数组上下文变量作为字符串的一部分,则该数组将被视为字符串数据类型

例如,您可以在对话框节点的JSON编辑器中指定:

{
    "context": {
        "array": [
            "one",
            "two"
        ],
        "array_of_strings": [
            "<? $array ?>",
            "three",
            "four"
        ],
        "string_array": "this is an array: $array"
    },

注意:我能够在我的
$array\u of_strings
上下文变量中包含第一个数组作为数组数据类型。直到我将数组包含在字符串中,它才会像字符串一样工作。我希望这有意义?

我认为文档中的示例可能会让您感到困惑

您可以嵌套数组,甚至是字符串数组,但仍然可以将它们作为数组数据类型进行操作。您在文档中引用的示例旨在说明,如果在对话框响应中包含数组上下文变量作为字符串的一部分,则该数组将被视为字符串数据类型

例如,您可以在对话框节点的JSON编辑器中指定:

{
    "context": {
        "array": [
            "one",
            "two"
        ],
        "array_of_strings": [
            "<? $array ?>",
            "three",
            "four"
        ],
        "string_array": "this is an array: $array"
    },

注意:我能够在我的
$array\u of_strings
上下文变量中包含第一个数组作为数组数据类型。直到我将数组包含在字符串中,它才会像字符串一样工作。我希望这是有意义的?

我这里也有一些示例,你能给你添加一个示例吗?我这里也有一些示例,你能为你的问题添加一个例子吗?这是一个链接到WCS文档的
size(),\“two\”]“您随后可以对$array变量执行数组方法,例如但不能对$string\u数组变量执行数组方法。”啊,我明白了。我被名称中的单词array弄糊涂了。:)所以
string\u array
是字符串类型的inf事实…我已经更新了答案。这是指向
size()的WCS文档的链接
method:Hi-Michal,我的查询实际上与“字符串数组”相关,这些数组包含对话文档中定义的数组。我将进一步解释:如果数组是:“$array:[”一“,”二“],那么-->$string\u数组:“字符串数组:[\”一“,”二“]“您随后可以对$array变量执行数组方法,例如但不能对$string\u数组变量执行数组方法。”啊,我明白了。我被名称中的单词array弄糊涂了。:)所以
string\u array
是字符串类型的inf事实…我已经更新了答案。