我正在编写一个程序,该程序利用 IBM Watson 的文档转换服务将各种类型的文档转换为答案单元。服务返回的每个答案单元都包含一个名为content的数组,该数组由具有media_type和文本元素的对象组成。
我从来没有在这个内容数组中看到过一个以上的元素,如果有的话,我不确定如何处理它们。这个数组中是否可以有多个元素,如果有,可能的值是多少?它们都具有相同的media_type值吗?我目前的计划是如果存在多个文本元素,则将所有文本元素合并为一个。
我正在编写一个程序,该程序利用 IBM Watson 的文档转换服务将各种类型的文档转换为答案单元。服务返回的每个答案单元都包含一个名为content的数组,该数组由具有media_type和文本元素的对象组成。
我从来没有在这个内容数组中看到过一个以上的元素,如果有的话,我不确定如何处理它们。这个数组中是否可以有多个元素,如果有,可能的值是多少?它们都具有相同的media_type值吗?我目前的计划是如果存在多个文本元素,则将所有文本元素合并为一个。
答案单元内容数组可以有多个元素(如果您要求 - 见下文)。如果是这样,数组中的每个元素将是相同内容的不同媒体类型表示。
您可以通过在您的请求中放置多个输出媒体类型来实现此目的。当您这样做时,输出内容数组将包含多个元素 - 您请求的每种媒体类型都有一个元素。
例如,如果您的请求包含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 的数组,并带有输出的文本版本。因为隐含地,通过保留默认配置,您要求一种输出媒体类型。
答案单位转换器目前仅按标题标签(<h1>
默认<h2>
情况下)拆分。如果您想更精细地拆分答案单元,您可以通过传入自定义配置来更改它的拆分级别:
{
"answer_units": {
"selector_tags": ["h1","h2","h3","h4","h5","h6"]
}
}
请参阅https://www.ibm.com/watson/developercloud/doc/document-conversion/customizing.shtml#htmlau