我正在编写一个程序,利用IBM Watson的Document Conversion服务将各种类型的文档转换为答案单元。服务返回的每个应答单元都包含一个名为content的数组,该数组由具有media_type和text元素的对象组成。
我从来没有在这个content数组中看到过一个以上的元素,如果有的话,我不确定如何处理它们。这个数组中是否可以有多个元素,如果可以,可能的值是什么?它们是否都具有相同的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-document,了解您将config
放在何处)
那么您的响应中的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