View a markdown version of this page

테이블 - Amazon Textract

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

테이블

Amazon Textract를 사용하여 문서에서 테이블을 추출하고 테이블 내의 셀, 병합된 셀, 열 헤더, 제목, 섹션 제목, 바닥글, 테이블 유형(정형 또는 반정형) 및 요약 셀을 추출합니다.

감지된 테이블은 AnalyzeDocument 및 GetDocumentAnalysis의 응답에서 Block 객체로 반환됩니다. FeatureTypes 입력 파라미터를 사용하여 키-값 페어, 테이블 또는 둘 다에 대한 정보를 검색할 수 있습니다. 테이블의 경우에만 값을 사용합니다TABLES. 예제는 테이블을 CSV 파일로 내보내기 섹션을 참조하세요. 문서가 Block 객체로 표현되는 방법에 대한 일반적인 내용은 섹션을 참조하세요텍스트 감지 및 문서 분석 응답 객체.

다음은 Amazon Textract에서 감지할 수 있는 테이블의 예입니다.

시작 잔액이 11,000 USD, 크레딧이 1,040 USD, 차변이 1,040 USD, 종료 잔액이 11,000 USD인 2023-01-15부터 2023-01-202022-12-24까지의 거래를 보여주는 대차 대조표 표입니다.

다음 다이어그램은 테이블의 단일 셀이 Block 객체로 표현되는 방식을 보여줍니다.

테이블 제목의 5개 열에 걸쳐 있는 병합된 셀을 포함하여 셀이 있는 테이블의 구조를 보여주는 다이어그램입니다. 테이블은 페이지, 셀, 단어 및 병합된 제목 셀과 같은 중첩된 구성 요소로 구성됩니다.

셀에는 감지된 단어에 대한 WORD 블록과 해당하는 경우 테이블 제목에 대한 TABLE_TITLE 블록, 테이블 바닥글에 대한 TABLE_FOOTER 블록, 확인란과 같은 선택 요소에 대한 SELECTION_ELEMENT 블록이 포함됩니다.

다음은 이전 테이블에 대한 JSON의 일부입니다. PAGE 블록 객체에는 CHILD 블록의 TABLE 블록 IDs 목록과 감지된 각 LINE 텍스트가 있습니다.

{ "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_TITLE 및 TABLE_FOOTER 관계 유형에는 제목 및 바닥글에 대한 정보가 저장되는 해당 TABLE_TITLE 및 블록의 TABLE_FOOTER 블록 ID가 포함됩니다. 테이블 블록 유형에는 테이블 유형을 SEMI_STRUCTURED_TABLE 식별하는 STRUCTURED_TABLE 또는 중 EntityType 하나가 있습니다.

다음 JSON은 앞의 테이블에 CHILD 관계 Ids 배열에 나열된 13개의 행과 5개의 열에 대해 65개의 셀이 있음을 보여줍니다. 관계 유형의 경우 MERGED_CELL각 병합된 셀 ID는 테이블 내의 단일 병합된 셀을 나타냅니다. 다음 JSON은 테이블에 MERGED_CELL 관계 Ids 배열에 나열된 9개의 병합된 셀이 있음을 보여줍니다. 두 가지 추가 관계 유형인 TABLE_TITLE 및는 각 제목 및 바닥글 블록의 IDs를 TABLE_FOOTER나열합니다. 다음 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입니다. 각 셀의 블록 객체에는 테이블의 다른 셀과 비교한 셀 위치에 대한 정보가 포함됩니다. 또한 문서에 있는 셀의 위치에 대한 지오메트리 정보도 포함됩니다. 또한 셀 블록은 TABLE_TITLE, TABLE_FOOTER, TABLE_SECTION_TITLE, COLUMN_HEADER, TABLE_SUMMARY를 포함하여 특정 유형의 셀로 EntityTypes 식별하는 차이가 있을 수 있습니다. 예를 들어 앞의 표에서 다음 예제와 같이 “Date”라는 단어가 포함된 셀은 열 헤더입니다.

{ "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" ] },

"Deposit"라는 단어가 포함된 셀은 제목, 바닥글, 열 헤더, 섹션 제목 또는 요약 셀이 아닙니다. 이는 필드가 없기 때문에 표시됩니다"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" ] } ] },

병합된 모든 셀은 TABLE 블록의 "Type": "MERGED_CELL" 아래에 나열됩니다. 앞의 예제 표에는 9개의 병합된 셀이 있습니다.

{ "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". 제목 셀이기도 한 병합된 셀 “Balance Sheet”의 경우 연결된 ID는 입니다"a27a3ecc-afd0-4f7c-9db2-6f8e6d31c605".

'ColumnSpan' 5에서 볼 수 있듯이이 병합된 셀을 구성하는 셀은 5개입니다. 병합된 셀 내에서 텍스트를 찾으려면 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인 셀에는이 병합된 제목 셀을 구성하는 WORD 블록에 해당하는 두 개의 CHILD 관계 IDs가 48b0e972-7dba-4db7-896e-ca7066e8c761 포함되어 있습니다.

{ "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" ] },

단어 수준에는 “Balance”와 “Sheet”이라는 두 단어가 있습니다. 열 1, 2, 4, 5의 처음 두 셀과 마지막 두 셀은 비어 있으므로 연결된 단어가 없습니다. 이는 세 번째 셀에만 하위 IDs가 포함된 이전 JSON 출력에도 표시됩니다.

{ "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_TITLE 및 TABLE_FOOTER 블록 유형에는 제목 또는 바닥글을 구성하는 WORD 블록을 가리키는 CHILD 관계를 포함하여 제목 및 바닥글 셀에 대한 정보가 포함됩니다. 이는 다음 JSON 응답에 나와 있습니다.

이 예제에서 제목은 테이블 내 제목입니다. 즉, 부동 제목으로 테이블 외부가 아니라 테이블 자체의 구조 내에서 찾을 수 있습니다. 즉, 제목에는 제목을 구성하는 단어 CELL 블록의 하위 IDs가 포함된 블록 유형도 있습니다. 단어 블록의 하위 IDs. 이 테이블의 바닥글 셀은 각 바닥글의 셀 블록으로도 표시됩니다.

{ "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" ] } ] },