1

我正在编写一个程序,该程序利用 IBM Watson 的文档转换服务将各种类型的文档转换为答案单元。服务返回的每个答案单元都包含一个名为content的数组,该数组由具有media_type文本元素的对象组成。

我从来没有在这个内容数组中看到过一个以上的元素,如果有的话,我不确定如何处理它们。这个数组中是否可以有多个元素,如果有,可能的值是多少?它们都具有相同的media_type值吗?我目前的计划是如果存在多个文本元素,则将所有文本元素合并为一个。

4

2 回答 2

2

答案单元内容数组可以有多个元素(如果您要求 - 见下文)。如果是这样,数组中的每个元素将是相同内容的不同媒体类型表示。

您可以通过在您的请求中放置多个输出媒体类型来实现此目的。当您这样做时,输出内容数组将包含多个元素 - 您请求的每种媒体类型都有一个元素。

例如,如果您的请求包含config这样的内容:

{
    conversion_target : 'answer_units',
    answer_units : {
        output_media_types : ['text/plain', 'text/html']
    }
}

有关您放置位置的说明,请参阅https://www.ibm.com/watson/developercloud/document-conversion/api/v1/#convert-documentconfig

然后content在您的回复中将包含:

content : [
    {
        text : <the plain text contents of the answer unit>,
        ...
    },
    {
        text : <the HTML contents of the answer unit>,
        ...
    }
]

如果您不指定输出媒体类型参数,您将获得默认值:

        output_media_types : ['text/plain']

这就是为什么你总是得到一个长度为 1 的数组,并带有输出的文本版本。因为隐含地,通过保留默认配置,您要求一种输出媒体类型。

于 2016-09-09T13:17:43.263 回答
1

答案单位转换器目前仅按标题标签(<h1>默认<h2>情况下)拆分。如果您想更精细地拆分答案单元,您可以通过传入自定义配置来更改它的拆分级别:

{
    "answer_units": {
        "selector_tags": ["h1","h2","h3","h4","h5","h6"]
    }
}

请参阅https://www.ibm.com/watson/developercloud/doc/document-conversion/customizing.shtml#htmlau

于 2016-09-09T13:37:12.290 回答