View a markdown version of this page

表 - Amazon Textract

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用 Amazon Textract 提取文档中的表格,并在表格中提取单元格、合并单元格、列标题、章节标题、页脚、表格类型(结构化或半结构化)和摘要单元格。

检测到的表将在AnalyzeDocument和的响应中作为 Block 对象返回GetDocumentAnalysis。您可以使用FeatureTypes输入参数来检索有关键值对、表或两者的信息。仅适用于表,请使用该值TABLES。有关示例,请参阅将表格导出到 CSV 文件。有关如何用Block对象表示文档的一般信息,请参见文本检测和文档分析响应对象

以下是 Amazon Textract 可以检测到的表格示例。

资产负债表显示了2022-12-24年至2023-01-15年的交易,截至2023-01-20年,起始余额为11,000美元,贷项为1,040美元,借项为1,040美元,期末余额为11,000美元。

下图显示了Block对象如何表示表格中的单个单元格。

该图描绘了带有单元格的表格结构,包括一个跨越 5 列的合并单元格作为表格标题。该表格包含嵌套组件,例如页面、单元格、单词和合并的标题单元格。

单元格包含用于检测到的单词的WORD方块,如果适用,TABLE_TITLE则包含用于表格标题的TABLE_FOOTER方块、用于表格页脚的SELECTION_ELEMENT方块和用于选择元素(例如复选框)的方块。

以下是上表的 JSON 的一部分。方PAGE块对象包含该CHILD区块的方块 ID 列表以及检测到LINE的每个文本。TABLE

{ "BlockType": "PAGE", "Geometry": { "BoundingBox": { "Width": 1.0, "Height": 1.0, "Left": 0.0, "Top": 0.0 }, }, "Id": "8a5d3f57-97bc-4a05-b028-f72617877626", "Relationships": [ { "Type": "CHILD", "Ids": [ "7499ac64-3fa9-46fd-8e3f-581ec9c316eb", "87ed4709-66f2-4b3d-abda-52c92a111474", "27a87eb3-bd21-475e-80fe-3f8e16958dcf", "d89894ea-2f37-4667-94b6-d90def01c5c1", "9f9d6383-ed6d-4bd0-ba8c-71fc3eec704e", "cdc74e1a-c568-439b-9eef-7bd54e060f18", "1b64f24c-5e84-4c7e-851a-cb1f5258a53c", "84a84878-04b4-4608-81b6-38117ead1629", ... "8cef603b-932e-452b-adc4-15f8e02ad1fe", "a3f97508-0d6b-4ae0-aa04-76078f9fe11a", "dd1f23c6-dfad-447b-8105-29ba136bd3a4", "46138f38-5b77-41a9-b068-f8394587122f", "a5e5247c-2637-4fa8-a271-ab46399cd77c", "63d7b889-71e3-422a-8cb7-2103ba0aa276", "033e5c86-371a-46fb-bbea-eb7f6b0cd092", "559b1354-ef94-4cb9-8e03-9eca83c6dba4", "55edc4fa-052f-40f9-9edd-739b100e6f75" ] } ] },

要了解有关表格的更多信息,请访问方TABLE块对象。表格块包含四种类型的关系:“子关系”、“合并单元格”、“标题” 和 “页脚”。对于关系类型CHILD,每个子代 ID 代表表格中的一个单元格。合并后的单元格被分解为所有单独的单元格,这些单元格组合成一个合并的单元格。 TABLE_TITLETABLE_FOOTER关系类型包含相应方块的方块 ID TABLE_TITLETABLE_FOOTER方块,其中存储有关标题和页脚的信息。表块类型具有EntityType标识表类型的 of STRUCTURED_TABLESEMI_STRUCTURED_TABLE

以下 JSON 显示前面的表有 65 个单元格,分别为 13 行和 5 列,这些单元格列在CHILD关系Ids数组中。对于关系类型MERGED_CELL,每个合并的单元格 ID 表示表格中的单个合并单元格。以下 JSON 显示该表有 9 个合并的单元格,这些单元格列在MERGED_CELL关系Ids数组中。另外两个关系类型TABLE_TITLETABLE_FOOTER列出了相应标题和页脚块的 ID。以下 JSON 还显示该表是在EntityTypes区块中结构的。

{ "BlockType": "TABLE", "Confidence": 99.8046875, "Geometry": {...}, "Id": "55edc4fa-052f-40f9-9edd-739b100e6f75", "Relationships": [ { "Type": "CHILD", "Ids": [ "c1c03d64-d365-4906-af7a-a852f1acc040", "8b415996-6b05-4183-a959-d27d12ccef79", "48b0e972-7dba-4db7-896e-ca7066e8c761", "69948207-47d8-4825-8929-1d7abb650a88", "b9ac9f14-8899-43b3-8572-0e997180e0a4", "6f06c024-0b36-4acd-b61f-4467203234dd", "c8a88487-dbc7-4662-a69b-21103049b61d", ... "2b41c8e1-f754-4b37-91b6-a97cdc413f91", "365a1bab-0c18-4cd8-a465-6f7bc7e25e60", "f08af959-cfac-4ad6-a63f-2771c7a8ff62", "e4f6fbfd-c7d8-4f64-9102-733d4806850f", "68c0b8ff-fd35-41ce-ba76-de08c26084d7", "44e80372-aa70-4a36-9aac-3a93aaa91bb1" ] }, { "Type": "MERGED_CELL", "Ids": [ "a27a3ecc-afd0-4f7c-9db2-6f8e6d31c605", "6c02cf21-40de-4480-b755-e94462ac4884", "6faad856-8d37-4751-b741-c4ad8d5dcbe3", "d777d6e2-7430-4c6e-a261-03ec5a612c8c", "f0f5a9fb-5bfa-4c80-8f41-1d4fad674b09", "83c7af02-8128-4479-89c9-962544ad4048", "b2b5126c-409f-4b67-9adf-e3e12f60bf86", "87d7f688-3d38-4198-b491-433af0da4d8b", "1c2436e2-a1fc-4b2a-9e73-cc8a1ca67568" ] }, { "Type": "TABLE_TITLE", "Ids": [ "cde34920-0131-4e68-a3ec-82922269afd4" ] }, { "Type": "TABLE_FOOTER", "Ids": [ "11dfd98c-6140-49e8-a544-e220d76bdd2f", "ad1b9c81-3b53-4fc7-a533-dabb3d29b0b1" ] } ], "EntityTypes": [ "STRUCTURED_TABLE" ] },

每个表格单元格的区块类型为CELL。单元格块类型的行跨度将始终为 1,列跨度始终为 1。每个单元格的方块对象都包含与表格中其他单元格相比的单元格位置信息。它还包括文档中单元格位置的几何信息。此外,单元格块可以有不同的EntityTypes标识为特定类型的单元格,包括 TABLE_TITLE、TABLE_FOOTER、TABLE_SECTION_TITLE、COLUMN_HEADER 和 TABLE_SUMMARY。例如,在上表中,包含 “日期” 一词的单元格是列标题,如下例所示。

{ "BlockType": "CELL", "Confidence": 81.8359375, "RowIndex": 2, "ColumnIndex": 1, "RowSpan": 1, "ColumnSpan": 1, "Geometry": {...}, "Id": "6f06c024-0b36-4acd-b61f-4467203234dd", "Relationships": [ { "Type": "CHILD", "Ids": [ "c49f55d5-a7e4-41d5-9c29-d8244f56181c" ] } ], "EntityTypes": [ "COLUMN_HEADER" ] },

包含 “存款” 一词的单元格不是标题、页脚、列标题、章节标题或摘要单元格。缺少该字段就证明了这一点"EntityTypes"

{ "BlockType": "CELL", "Confidence": 86.181640625, "RowIndex": 7, "ColumnIndex": 2, "RowSpan": 1, "ColumnSpan": 1, "Geometry": {...}, "Id": "7af5160b-bd60-45f5-a12c-bf376e9d742c", "Relationships": [ { "Type": "CHILD", "Ids": [ "bb9bcaed-5998-44a6-9076-aa1ecc82fbc6" ] } ] },

所有合并的单元格都列"Type": "MERGED_CELL"TABLE区块的下方。在上面的示例表中,有九个合并的单元格。

{ "Type": "MERGED_CELL", "Ids": [ "a27a3ecc-afd0-4f7c-9db2-6f8e6d31c605", "6c02cf21-40de-4480-b755-e94462ac4884", "6faad856-8d37-4751-b741-c4ad8d5dcbe3", "d777d6e2-7430-4c6e-a261-03ec5a612c8c", "f0f5a9fb-5bfa-4c80-8f41-1d4fad674b09", "83c7af02-8128-4479-89c9-962544ad4048", "b2b5126c-409f-4b67-9adf-e3e12f60bf86", "87d7f688-3d38-4198-b491-433af0da4d8b", "1c2436e2-a1fc-4b2a-9e73-cc8a1ca67568" ] },

要查找与每个合并单元格相关的特定详细信息,请转至"BlockType": "MERGED_CELL"。对于合并的单元格 “资产负债表”(也是一个标题单元格),与之关联的ID是"a27a3ecc-afd0-4f7c-9db2-6f8e6d31c605"

有 5 个单元格构成此合并的单元格,如 5 中的 “ColumnSpan” 所示。要在合并的单元格中查找文本,请进一步向下移动到Ids数组以了解有关"BlockType": "CELL"其次的详细信息"BlockType": "WORD"

{ "BlockType": "MERGED_CELL", "Confidence": 77.44140625, "RowIndex": 1, "ColumnIndex": 1, "RowSpan": 1, "ColumnSpan": 5, "Geometry": {...}, "Id": "a27a3ecc-afd0-4f7c-9db2-6f8e6d31c605", "Relationships": [ { "Type": "CHILD", "Ids": [ "c1c03d64-d365-4906-af7a-a852f1acc040", "8b415996-6b05-4183-a959-d27d12ccef79", "48b0e972-7dba-4db7-896e-ca7066e8c761", "69948207-47d8-4825-8929-1d7abb650a88", "b9ac9f14-8899-43b3-8572-0e997180e0a4" ] } ], "EntityTypes": [ "TABLE_TITLE" ] },

在单元格层面,合并单元格 “资产负债表” 有5个单元格。每个单元格都有一个,TABLE_TITLE因为标题是在合并EntityType的单元格中标识的。为Id的单元格48b0e972-7dba-4db7-896e-ca7066e8c761包含两个CHILD关系 ID,它们对应于WORD构成此合并标题单元格的方块。

{ "BlockType": "CELL", "Confidence": 77.44140625, "RowIndex": 1, "ColumnIndex": 1, "RowSpan": 1, "ColumnSpan": 1, "Geometry": {...}, "Id": "c1c03d64-d365-4906-af7a-a852f1acc040", "EntityTypes": [ "TABLE_TITLE" ] }, { "BlockType": "CELL", "Confidence": 77.44140625, "RowIndex": 1, "ColumnIndex": 2, "RowSpan": 1, "ColumnSpan": 1, "Geometry": {...}, "Id": "8b415996-6b05-4183-a959-d27d12ccef79", "EntityTypes": [ "TABLE_TITLE" ] }, { "BlockType": "CELL", "Confidence": 77.44140625, "RowIndex": 1, "ColumnIndex": 3, "RowSpan": 1, "ColumnSpan": 1, "Geometry": {...}, "Id": "48b0e972-7dba-4db7-896e-ca7066e8c761", "Relationships": [ { "Type": "CHILD", "Ids": [ "998394ef-c6cf-491b-9bac-ec470c638ecd", "1c875a06-f8e5-4df7-8f6a-583c47cbd9fe" ] } ], "EntityTypes": [ "TABLE_TITLE" ] }, { "BlockType": "CELL", "Confidence": 77.44140625, "RowIndex": 1, "ColumnIndex": 4, "RowSpan": 1, "ColumnSpan": 1, "Geometry": {...}, "Id": "69948207-47d8-4825-8929-1d7abb650a88", "EntityTypes": [ "TABLE_TITLE" ] }, { "BlockType": "CELL", "Confidence": 77.44140625, "RowIndex": 1, "ColumnIndex": 5, "RowSpan": 1, "ColumnSpan": 1, "Geometry": {...}, "Id": "b9ac9f14-8899-43b3-8572-0e997180e0a4", "EntityTypes": [ "TABLE_TITLE" ] },

在单词层面上,有两个词,“余额” 和 “Sheet”。由于第 1、2、4 和 5 列中的前两个和最后两个单元格为空,因此没有与它们关联的单词。这也显示在之前的 JSON 输出中,其中只有第三个单元格包含孩子 ID。

{ "BlockType": "WORD", "Confidence": 99.95711517333984, "Text": "Balance", "TextType": "PRINTED", "Geometry": {...}, "Id": "998394ef-c6cf-491b-9bac-ec470c638ecd" }, { "BlockType": "WORD", "Confidence": 99.87372589111328, "Text": "Sheet", "TextType": "PRINTED", "Geometry": {...}, "Id": "1c875a06-f8e5-4df7-8f6a-583c47cbd9fe" },

TABLE_TITLETABLE_FOOTER区块类型包含有关标题和页脚单元格的信息,包括指向构成标题或页脚的WORD方块的CHILD关系。这显示在以下 JSON 响应中。

在此示例中,标题是表格内的标题,这意味着它位于表格本身的结构中,而不是在表格之外作为浮动标题。这意味着标题还有一个CELL方块类型,其中包含构成标题的单词块的子ID。请参阅之前的 JSON 输出,了解构成合并标题单元格的五个单元格块,其中包括带有字块子 ID 的标题单元格块。此表的脚注单元格也将由每个页脚的单元格块表示。

{ "BlockType": "TABLE_TITLE", "Confidence": 97.802734375, "Geometry": {...}, "Id": "cde34920-0131-4e68-a3ec-82922269afd4", "Relationships": [ { "Type": "CHILD", "Ids": [ "998394ef-c6cf-491b-9bac-ec470c638ecd", "1c875a06-f8e5-4df7-8f6a-583c47cbd9fe" ] } ] }, { "BlockType": "TABLE_FOOTER", "Confidence": 88.0859375, "Geometry": {...}, "Id": "11dfd98c-6140-49e8-a544-e220d76bdd2f", "Relationships": [ { "Type": "CHILD", "Ids": [ "77a70b2d-c137-4161-8d9c-65170266e5ff", "d413ef1f-fa1b-44cb-87ed-809494fc87d8", "19616f50-1a34-431f-94bf-7e575106cd85", "35063ea4-a3c7-4e19-9d32-10eca92807b8", "48de1523-7776-49ef-96d9-fc19bcde89c5" ] } ] },