Azure AI 文档智能布局 API 可以将文档转换为丰富的 Markdown,从而保留其原始结构和格式。 只需在请求中指定 outputContentFormat=markdown
,即可接收保持段落、标题、表格及其他文档元素正确层次的语义化内容。
此 Markdown 输出巧妙地捕获了文档的原始结构,同时为后续应用提供了标准化且便于处理的内容。 保留的语义结构可实现更复杂的文档处理工作流,而不会丢失文档元素之间的上下文和关系。
布局分析中支持的 Markdown 元素
布局 API 响应中包括以下 Markdown 元素:
- 段落
- 标题
- 表
- 数字
- 选择标记
- 公式
- 条形码
- 页码/页眉/页脚
- 分页符
- 键值对/语言/样式
- 范围和内容
段落
段落代表在语义上紧密相连的文本单元。 布局 API 通过以下方式维护段落完整性:
- 保留段落边界,在单独的段落之间保留空行
- 使用段落中的换行符维护原始文档的可视结构
- 维护尊重原始文档阅读顺序的正确文本流
下面是一个示例:
This is paragraph 1.
This is still paragraph 1, even if in another Markdown line.
This is paragraph 2. There is a blank line between paragraph 1 and paragraph 2.
标题
标题将文档内容组织成层次结构,以便于导航和理解。 布局 API 具有以下功能:
- 使用与标题级别对应的 1-6 个哈希符号(#)的标准 Markdown 标题语法。
- 在每个标题之前留出两个空行,以提高可读性。
下面是一个示例:
# This is a title
## This is heading 1
### This is heading 2
#### This is heading 3
表
表以可视组织的格式保留复杂的结构化数据。 布局 API 使用 HTML 表语法实现最大保真度和兼容性:
- 实现完整的 HTML 表标记(
<table>
、、<tr>
、<th>
<td>
)而不是标准 Markdown 表 - 保留具有 HTML rowspan 和 colspan 属性的合并单元格。
- 使用
<caption>
标记保留表格标题以维持文档上下文 - 处理复杂的表结构,包括页眉、单元格和页脚
- 在每个表之前保留两个空白行的正确间距以提高可读性
- 将表格脚注保留为表后面的单独段落
下面是一个示例:
<table>
<caption>Table 1. This is a demo table</caption>
<tr><th>Header</th><th>Header</th></tr>
<tr><td>Cell</td><td>Cell</td></tr>
<tr><td>Cell</td><td>Cell</td></tr>
<tr><td>Cell</td><td>Cell</td></tr>
<tr><td>Footer</td><td>Footer</td></tr>
</table>
This is the footnote of the table.
数字
布局 API 保留图形元素:
- 将图形内容封装在
<figure>
标签中,以保持其与周围文本的语义区别 - 保留带有
<figcaption>
标记的图形标题以提供重要上下文 - 将图脚注保留为图容器后面的单独段落
下面是一个示例:
<figure>
<figcaption>Figure 2 This is a figure</figcaption>
Values
300
200
100
0
Jan Feb Mar Apr May Jun Months
</figure>
This is footnote if the figure have.
选择标记
选择标记表示窗体和文档中的类似复选框的元素。 布局 API:
- 使用 Unicode 字符实现视觉清晰度:☒(已选中)和☐(未选中)
- 将置信度低于0.1的复选框检测结果筛选掉,以提高可靠性。
- 维护选择标记与其关联文本之间的语义关系
公式
数学公式保留与 LaTeX 兼容的语法,以便呈现复杂的数学表达式:
- 内联公式用单个美元符号括起来(
$...$
),以保持文本连贯性。 - 块公式使用双美元符号 (
$$...$$
) 进行独立显示 - 多行公式表示为连续块公式,保留数学关系
- 保留原始间距和格式以确保准确的表示形式
下面是内联公式、单行公式块和多行公式块的示例:
The mass-energy equivalence formula $E = m c ^ { 2 }$ is an example of an inline formula
$$\frac { n ! } { k ! \left( n - k \right) ! } = \binom { n } { k }$$
$$\frac { p _ { j } } { p _ { 1 } } = \prod _ { k = 1 } ^ { j - 1 } e ^ { - \beta _ { k , k + 1 } \Delta E _ { k , k + 1 } }$$
$$= \exp \left[ - \sum _ { k = 1 } ^ { j - 1 } \beta _ { k , k + 1 } \Delta E _ { k , k + 1 } \right] .$$
条形码
条形码和 QR 码使用 Markdown 图像语法表示,并添加了语义信息:
- 将标准图像 Markdown 语法与描述性属性配合使用
- 捕获条形码类型(QR 码、条形码等)及其编码值
- 保留条形码与周围内容之间的语义关系
下面是一个示例:
This is paragraph 1.
This is still paragraph 1, even if in another Markdown line.
This is paragraph 2. There is a blank line between paragraph 1 and paragraph 2.
页码/页眉/页脚
页面元数据元素提供有关文档分页的上下文,但不应与主要内容内联显示:
- 包含在 HTML 注释中以保留信息,同时将其隐藏在标准 Markdown 呈现中
- 维护原始页面结构信息,这些信息对于文档重建可能很有价值
- 使应用程序无需中断内容流即可了解文档分页
下面是一个示例:
<!-- PageHeader="This is page header" -->
<!-- PageFooter="This is page footer" -->
<!-- PageNumber="1" -->
分页符
为了解析纯 Markdown 内容中的哪些部分属于哪个页面,我们引入了 PageBreak 作为页面的分隔标记。
下面是一个示例:
<!-- PageBreak -->
键值对/语言/样式
对于 KeyValuePairs/Language/Style,我们将它们映射到 Analytics JSON 正文,而不是在 Markdown 内容中。
注释
有关当前在 GitHub.com 上支持用户内容的 Markdown 的详细信息, 请参阅GitHub Flavored Markdown Spec。
结论
文档智能的 Markdown 元素提供了一种强大的方法来表示已分析文档的结构和内容。 通过了解并正确利用这些 Markdown 元素,可以增强文档处理工作流并构建更复杂的内容提取应用程序。
后续步骤
尝试使用 Document Intelligence Studio 处理文档。
完成文档智能快速入门,并使用你选择的开发语言开始创建文档处理应用。