다음을 통해 공유


문서 분석: 구조화된 콘텐츠 추출

개요

Azure Content Understanding 분석 기능은 구조화되지 않은 데이터를 기계에서 읽을 수 있는 구조화된 정보로 변환하는 데 도움이 됩니다. 구조적 관계를 유지하면서 요소를 정확하게 식별하고 추출하면 광범위한 애플리케이션에 대한 강력한 처리 워크플로를 빌드할 수 있습니다.

종류 contents 가 있는 개체는 document 문서, 이미지, 텍스트 및 구조화된 파일을 비롯한 다양한 입력 파일 범위에 대한 출력을 지원합니다. 이러한 출력을 사용하여 파일에서 의미 있는 콘텐츠를 추출하고 문서 구조를 유지하며 데이터의 잠재력을 최대한 발휘할 수 있습니다.

문서 콘텐츠 종류에는 다음과 같은 입력 파일에 대한 출력이 포함됩니다.

  • 문서: PDF, Word 문서, PowerPoint 프레젠테이션 및 Excel 스프레드시트
  • 그림: 사진, 스캔한 문서, 차트 및 다이어그램
  • 텍스트 파일: 일반 텍스트, HTML, Markdown 및 RTF
  • 구조적 콘텐츠: XML, JSON, CSV 및 TSV 파일
  • 전자 메일: EML 및 MSG 메시지 형식

지원되는 파일 형식, 파일 크기 제한 및 기타 제약 조건에 대한 자세한 내용은 서비스 할당량 및 제한을 참조하세요.

JSON 응답 구조

Content Understanding API는 구조화된 JSON 형식으로 분석 결과를 반환합니다. 전체 컨테이너 구조는 다음과 같습니다.

{
  "id": "10a01d32-e21e-46e3-bb5c-361375f184de",
  "status": "Succeeded",
  "result": {
    "analyzerId": "my-analyzer",
    "apiVersion": "2025-05-01-preview",
    "createdAt": "2025-06-18T22:50:34Z",
    "warnings": [],
    "contents": [
      {
        "markdown": "# Example Document\n\n...",
        "fields": { /* extracted field values */ },
        "kind": "document",
        "startPageNumber": 1,
        "endPageNumber": 2,
        "unit": "inch",
        "pages": [ /* page-level elements */ ],
        "paragraphs": [ /* paragraph elements */ ],
        "sections": [ /* section elements */ ],
        "tables": [ /* table elements */ ],
        "figures": [ /* figure elements */ ],
        "hyperlinks": [ /* hyperlink elements */ ],
        "annotations": [ /* annotation elements */ ]
      }
    ]
  }
}

문서 요소

문서 분석을 통해 다음 문서 요소를 추출할 수 있습니다.

모든 콘텐츠 및 레이아웃 요소가 적용 가능하거나 현재 모든 문서 파일 형식에서 지원되는 것은 아닙니다.

Markdown 콘텐츠 요소

Content Understanding은 원본 문서의 구조를 유지하는 서식이 풍부한 Markdown을 생성합니다. 이러한 이유로 대규모 언어 모델은 AI 기반 분석 및 생성 작업을 위해 문서 컨텍스트 및 계층 관계를 더 잘 이해할 수 있습니다. Markdown에는 단어, 선택 표시, 바코드, 수식 및 이미지를 콘텐츠로 사용하는 것 외에도 시각적 렌더링 및 컴퓨터 처리 모두에 대한 섹션, 테이블 및 페이지 메타데이터가 포함됩니다. Content Understanding이 Markdown의 콘텐츠 및 레이아웃 요소를 나타내는 방법에 대해 자세히 알아봅니다.

가사

단어는 문자 시퀀스로 구성된 콘텐츠 요소입니다. 유니코드 표준 부록 #29 는 단어 경계를 정의합니다. 라틴어 언어의 경우 공백을 개입하지 않아도 단어가 문장 부호에서 분할될 수 있습니다. 중국어와 같은 일부 언어에서는 추가 단어 사전을 사용하여 의미 체계 경계에서 단어를 분리할 수 있습니다. 자세한 내용은 경계 분석을 참조하세요.

JSON 예제:

{
  "words": [
    {
      "content": "Example",
      "span": {
        "length": 7
      },
      "confidence": 0.992,
      "source": "D(1,1.265,1.0836,2.4972,1.0816,2.4964,1.4117,1.2645,1.4117)"
    }
  ]
}

검색된 단어를 보여 주는 스크린샷

선택 표시

선택 표시는 선택 영역의 상태를 나타내는 시각적 문자 모양을 나타내는 콘텐츠 요소입니다. 선택 표시는 문서에 확인란, 확인 표시 또는 단추로 표시될 수 있습니다. 다른 시각적 표현을 사용하여 상태를 나타내는 선택 표시를 선택하거나 지울 수 있습니다. 선택 표시는 유니코드 문자 (선택됨) 및 (지워짐)를 사용하여 문서 분석 결과의 단어로 인코딩됩니다.

Content Understanding은 표 셀 안의 체크 표시를 선택된 상태의 선택 표시로 감지합니다. 지워진 상태에서는 빈 테이블 셀을 선택 표시로 검색하지 않습니다.

JSON 예제:

{
  "words": [
    {
      "content": "☒",
      "span": {
        "length": 1
      },
      "confidence": 0.983,
      "source": "D(1,1.258,2.7952,1.3705,2.7949,1.371,2.9098,1.2575,2.9089)"
    }
  ]
}

감지된 선택 표시를 보여 주는 스크린샷

바코드

바코드는 선형(예: UPC 또는 EAN) 및 2차원(예: QR 또는 MaxiCode) 바코드를 모두 설명하는 콘텐츠 요소입니다. Content Understanding은 검색된 형식 및 추출된 값을 사용하여 바코드를 나타냅니다. 현재 지원되는 바코드 형식은 다음과 같습니다.

바코드 유형 설명
QRCode ISO/IEC 18004:2015에 정의된 QR 코드
PDF417 ISO 15438에 정의된 PDF417
UPCA GS1 12자리 유니버설 제품 코드
UPCE GS1 6자리 유니버설 제품 코드
Code39 ISO/IEC 16388:2007에 정의된 코드 39 바코드
Code128 ISO/IEC 15417:2007에 정의된 코드 128 바코드
EAN8 GS1 8자리 국제 문서 번호(유럽 문서 번호)
EAN13 GS1 13자리 국제 문서 번호(유럽 문서 번호)
DataBar GS1 DataBar 바코드
Code93 ANSI/AIM BC5-1995에 정의된 코드 93 바코드
Codabar ANSI/AIM BC3-1995에 정의된 코다바 바코드
DataBarExpanded GS1 DataBar 확장 바코드
ITF ANSI/AIM BC2-1995에 정의된 "인터리브 2/5 바코드(ITF)"
MicroQRCode ISO/IEC 23941:2022에 정의된 마이크로 QR 코드
Aztec ISO/IEC 24778:2008에 정의된 Aztec 코드
DataMatrix ISO/IEC 16022:2006에 정의된 데이터 매트릭스 코드
MaxiCode MaxiCode( ISO/IEC 16023:2000에 정의된 대로)

JSON 예제:

{
  "barcodes": [
    {
      "kind": "Code39",
      "value": "Hello World",
      "source": "D(1,2.5738,4.8186,3.8617,4.8153,3.8621,4.9894,2.5743,4.9928)",
      "span": {"offset": 192, "length": 10 },
      "confidence": 0.977
    }
  ]
}

수식

수식은 문서의 수학 식을 나타내는 콘텐츠 요소입니다. 다른 텍스트와 함께 포함된 인라인 수식 또는 전체 줄을 차지하는 표시 수식일 수 있습니다. 여러 줄 수식은 수학적 관계를 유지하기 위해 단락으로 그룹화된 여러 표시 수식 요소로 표시됩니다.

수식은 종류 inlinedisplay 문서 내의 수식 배치에 따라 달라질 수 있습니다.

JSON 예제:

{
  "formulas": [
    {
      "kind": "inline",
      "value": "x = \\frac { - b \\pm \\sqrt { b ^ { 2 } - 4 a c } } { 2 a }",
      "confidence": 0.708,
      "source": "D(1,3.4282,7.0195,4.0452,7.0307,4.0425,7.1803,3.4255,7.1691)",
      "span": {
        "offset": 394,
        "length": 51
      }
    }
  ]
}

그림

그림은 문서에 포함된 이미지, 그림 또는 차트를 나타내는 콘텐츠 요소입니다. Content Understanding은 검색된 그림의 요약을 생성하고, 선택 이미지를 chart.js 표현으로 변환하고, 이미지와 관련된 모든 캡션 및 각주에서 포함된 텍스트를 추출합니다. 차트는 chart.js 구문을 사용하여 그림 콘텐츠에 표시되고 다이어그램은 인어 구문의 문자열을 사용하여 그림 콘텐츠에 표시됩니다. 선택적 기능으로, 분석기 구성에서 enableFigureAnalysisenableFigureDescriptiontrue으로 설정하여 활성화할 수 있습니다.

현재 지원되는 그림 형식은 다음과 같습니다.

그림 형식 표시
Bar chart Chart.js
Line chart Chart.js
Pie chart Chart.js
Radar chart Chart.js
Scatter chart Chart.js
Bubble chart Chart.js
Quadrant chart Chart.js
Mixed chart (e.g. combined bar and line chart) Mermaid.js
Flow chart Mermaid.js
Sequence diagrams Mermaid.js
Gantt chart Mermaid.js

JSON 예제:

{
  "figures": [
     {
      // enableFigureDescription = True
      "description": "This figure illustrates the sales revenue over the year 2023.",

      // enableFigureAnalysis = True
      "kind": "chart",
      "content": {
        "type": "line",
        "data": {
          "labels": ["January", "February", "March", "April", "May", "June", "July"],
          "datasets": [
            {
              "label": "A",
              "data": [93, -29, -17, -8, 73, 98, 40]
            },
            {
              "label": "B",
              "data": [20, 85, -79, 93, 27, -81, -22]
            }
          ]
        },
        "options": {
          "title": { "text": "Title" }
        }
      }
    },
    {
      "kind": "mermaid",
      "content": "xychart-beta\n    title \"Sales Revenue\"\n    x-axis [jan, feb, mar, apr]..."
    },
  ]
}

하이퍼링크는 문서의 웹 페이지와 같은 다른 리소스에 연결하는 포함된 링크를 나타내는 콘텐츠 요소입니다. Content Understanding은 포함된 링크를 사용하여 하이퍼링크를 나타냅니다.

JSON 예제:

{
  "hyperlinks": [
        {
          "content": "Microsoft",
          "url": "https://www.microsoft.com",
          "span": {...},
          "source": "..."
        }
  ]
}

Annotations

주석은 문서의 추가 메타데이터로, 기본 콘텐츠 자체를 변경하지 않고 추가 정보, 설명 또는 피드백을 제공합니다. 특정 콘텐츠 범위의 범위를 지정하거나 특정 경계 상자를 참조할 수 있는 많은 유형의 주석이 있습니다. 다음은 지원되는 주석 유형 목록입니다.

비고

주석은 현재 디지털 PDF 입력에서만 지원됩니다.

주석 종류
highlight
underline
strikethrough
rectangle
circle
drawing
comments
other

JSON 예제:

{
  "annotations": [
    {
      "id": "underline-1",
      "kind": "underline",
      "spans": [...],
      "source": "D(pageNumber,l,t,w,h)",
      "comments": [
        {
          "message": "Hi",
          "author": "johndoe",
          "createdAt": "2023-10-01T12:00:00Z",
          "tags": ["approved"]
        }
      ]
      "author": "paulhsu",
      "createdAt": "2023-10-01T12:00:00Z",
      "lastModifiedAt": "2023-10-02T12:00:00Z",
      "tags": [ ... ],
    }
  ]
}

레이아웃 요소

문서 레이아웃 요소는 페이지, 표, 단락, 줄, 표, 섹션 및 전체 구조와 같은 시각적 및 구조적 구성 요소로, 콘텐츠를 해석하는 데 도움이 됩니다. 이러한 요소를 추출하면 도구에서 정보 검색, 의미 체계 이해 및 데이터 구조화와 같은 작업을 위해 문서를 효율적으로 분석할 수 있습니다.

페이지

페이지는 일반적으로 용지 한 장의 한쪽에 해당하는 콘텐츠의 그룹화입니다. 렌더링된 페이지는 지정된 단위의 너비와 높이를 특징으로 합니다. 일반적으로 이미지는 픽셀을 사용하고 PDF는 인치를 사용합니다. angle 속성은 회전될 수 있는 페이지의 전체 텍스트 각도를 설명합니다.

Excel과 같은 스프레드시트의 경우 각 시트가 페이지에 매핑됩니다. PowerPoint와 같은 프레젠테이션의 경우 각 슬라이드가 페이지에 매핑됩니다. 렌더링하지 않고 네이티브 페이지 개념이 없는 HTML 또는 Word 문서와 같은 파일 형식의 경우 전체 기본 콘텐츠가 단일 페이지로 처리됩니다.

JSON 예제:

{
  "pages": [
    {
      "pageNumber": 1,
      "angle": 0.0739153,
      "width": 8.5,
      "height": 11,
      "spans": [
        {
          "offset": 0,
          "length": 620
        }
      ],
      "words": [ /* array of word objects */ ],
      "barcodes": [ /* details of barcodes */ ],
      "lines": [ /* array of line objects */ ],
      "formulas": [ /* array of formula objects */ ]
    }
  ]
}

단락

단락은 논리 단위를 형성하는 순서가 지정된 줄 시퀀스입니다. 일반적으로 줄 간에는 동일한 공통 맞춤과 간격이 사용됩니다. 단락은 들여쓰기, 추가 간격 또는 글머리 기호/번호 매기기를 통해 구분되는 경우가 많습니다. 일부 단락에는 문서에서 특수한 기능 역할이 있습니다. 현재 지원되는 역할에는 페이지 머리글, 페이지 바닥글, 페이지 번호, 제목, 섹션 제목, 각주 및 수식 블록이 포함됩니다.

JSON 예제:

{
  "paragraphs": [
    {
      "role": "title",
      "content": "Example Document",
      "source": "D(1,1.264,1.0836,4.1584,1.0795,4.1589,1.4083,1.2644,1.4124)",
      "span": {
        "offset": 0,
        "length": 18
      }
    }
  ]
}

은 연속 콘텐츠 요소의 순서가 지정된 시퀀스로, 시각적 공백으로 구분되는 경우가 많습니다. 동일한 가로 평면(행)에 있지만 둘 이상의 시각적 공간으로 구분되는 콘텐츠 요소는 대부분 여러 줄로 분할됩니다. 이 기능은 의미 체계적으로 연속된 콘텐츠를 별도의 줄로 분할하는 경우가 있습니다. 또한 텍스트 콘텐츠를 여러 열 또는 셀로 분할하여 표시할 수 있습니다. 세로 쓰기의 줄은 세로 방향으로 검색됩니다.

JSON 예제:

{
  "lines": [
    {
      "content": "Example Document",
      "source": "D(1,1.264,1.0836,4.1583,1.0795,4.1589,1.4083,1.2645,1.4117)",
      "span": {
        "offset": 0,
        "length": 16
      }
    }
  ]
}

테이블

는 그리드 레이아웃의 셀 그룹으로 콘텐츠를 구성합니다. 행과 열은 눈금선, 색 줄무늬 또는 더 큰 간격으로 시각적으로 구분될 수 있습니다. 테이블 셀의 위치는 행 및 열 인덱스를 통해 지정됩니다. 셀은 여러 행과 열에 걸쳐 있을 수 있습니다.

해당 위치 및 스타일에 따라 셀은 일반 콘텐츠, 행 머리글, 열 머리글, 스텁 헤드 또는 설명으로 분류됩니다.

  • 행 머리글 셀은 일반적으로 행의 다른 셀을 설명하는 행의 첫 번째 셀입니다.
  • 열 머리글 셀은 일반적으로 열의 다른 셀을 설명하는 열의 첫 번째 셀입니다.
  • 행 또는 열에는 계층적 콘텐츠를 설명하는 여러 머리글 셀이 포함될 수 있습니다.
  • 스텁 헤드 셀은 일반적으로 첫 번째 행과 첫 번째 열 위치에 있는 셀입니다. 셀이 비어 있거나 같은 행/열에 있는 머리글 셀의 값을 설명합니다.
  • 설명 셀은 일반적으로 표의 맨 위 또는 맨 아래 영역에 표시되며 전체 표 내용을 설명합니다. 테이블 중간에 표시되어 테이블을 섹션으로 분리할 수 있습니다. 일반적으로 설명 셀은 단일 행의 여러 셀에 걸쳐 있습니다.

테이블 캡션은 테이블을 설명하는 콘텐츠를 지정합니다. 표에는 각주 집합이 있을 수도 있습니다. 설명 셀과 달리 캡션은 일반적으로 그리드 레이아웃 외부에 있습니다. 표 각주가 표 안의 내용에 주석을 달고 각주 기호로 표시되는 경우가 많습니다. 테이블 그리드 아래에 있는 경우가 많습니다.

테이블은 문서의 연속된 페이지에 걸쳐 있을 수 있습니다. 이 경우 후속 페이지의 테이블 연속은 일반적으로 동일한 열 수, 너비 및 스타일을 유지합니다. 종종 열 머리글을 반복합니다. 일반적으로 페이지 머리글, 바닥글 및 페이지 번호를 제외하고 초기 테이블과 연속 작업 사이에 중간 콘텐츠가 제공되지 않습니다.

테이블은 문서의 연속된 페이지에 걸쳐 있을 수 있습니다. 이 경우 후속 페이지의 테이블 연속은 일반적으로 동일한 열 수, 너비 및 스타일을 유지합니다. 종종 열 머리글을 반복합니다. 페이지 머리글, 바닥글 및 페이지 번호 이외에는 일반적으로 초기 테이블과 해당 연속 작업 사이에 중간 콘텐츠가 없습니다.

비고

테이블 범위는 핵심 콘텐츠와 관련 캡션 및 각주를 모두 다룹니다.

JSON 예제:

{
  "tables": [
    {
      "rowCount": 6,
      "columnCount": 2,
      "cells": [
        {
          "kind": "columnHeader",
          "rowIndex": 0,
          "columnIndex": 0,
          "rowSpan": 1,
          "columnSpan": 1,
          "content": "Category",
          "source": "D(2,1.1674,5.0483,4.1733,5.0546,4.1733,5.2358,1.1674,5.2358)",
          "span": {
            "offset": 798,
            "length": 8
          },
          "elements": [
            "/paragraphs/7"
          ]
        }
      ],
      "source": "D(2,1.1566,5.0425,7.1855,5.0428,7.1862,6.1853,1.1574,6.1858)",
      "span": {
        "offset": 781,
        "length": 280
      },
      "caption": {
        "content": "Table 1: This is a table",
        "source": "D(2,1.1566,5.0425,7.1855,5.0428,7.1862,6.1853,1.1574,6.1858)",
        "span": {
          "offset": 335,
          "length": 30
        }
      }
    }
  ]
}

레이아웃 기능을 사용하는 테이블을 보여 주는 스크린샷

섹션

섹션은 문서 내에서 계층 구조를 형성하는 관련 콘텐츠 요소의 논리적 그룹화입니다. 종종 섹션 제목으로 첫 번째 단락이 시작됩니다. 섹션에는 의미 체계 관계를 유지하는 중첩된 문서 구조를 만드는 하위 섹션이 포함될 수 있습니다.

JSON 예제:

{
  "sections": [
    {
      "span": {
        "offset": 113,
        "length": 77
      },
      "elements": [
        "/paragraphs/3",
        "/paragraphs/4"
      ]
    }
  ]
}

요소 속성

문서는 구조, 텍스트 및 양식 관련 요소로 분류되는 다양한 구성 요소로 구성됩니다. 이러한 요소는 문서의 구성 및 프레젠테이션을 정의합니다. 추가 분석 또는 애플리케이션을 위해 요소를 체계적으로 식별하고 추출할 수 있습니다.

범위

이 속성은 span 최상위 문자열 속성에 대한 문자 오프셋 및 길이를 통해 문서에서 요소의 markdown 논리적 위치를 지정합니다. 기본적으로 문자 오프셋 및 길이는 Python 3에서 사용되는 유니코드 코드 포인트로 반환됩니다. 다른 문자 단위를 사용하는 다양한 개발 환경을 수용하기 위해 UTF16 코드 단위(Java, JavaScript 또는 .NET) 또는 UTF8 바이트(Go, Rust, Ruby 또는 PHP)로 범위 오프셋 및 길이를 반환하도록 쿼리 매개 변수를 지정할 stringEncoding 수 있습니다.

출처

이 속성은 source 인코딩된 문자열을 사용하여 파일에서 요소의 시각적 위치를 설명합니다. 문서의 경우 원본 문자열은 다음 형식 중 하나입니다.

  • 경계 다각형: D({pageNumber},{x1},{y1},{x2},{y2},{x3},{y3},{x4},{y4})
  • 축 맞춤 경계 상자: D({pageNumber},{left},{top},{width},{height})

페이지 번호는 인덱싱된 번호입니다. 경계 다각형은 요소의 자연 방향을 기준으로 왼쪽에서 시계 방향으로 점들의 순서를 나타냅니다. 사각형의 경우 점은 왼쪽 위, 오른쪽 위, 오른쪽 아래 및 왼쪽 아래 모서리를 나타냅니다. 각 점은 속성에 지정된 unit 길이 단위의 x,y 좌표를 나타냅니다. 일반적으로 이미지의 측정 단위는 픽셀입니다. PDF는 인치를 사용합니다.

검출된 경계 영역들을 보여주는 스크린샷

비고

현재 콘텐츠 이해는 경계 다각형으로 4개의 점으로 구성된 사변형만 반환합니다. 이후 버전에서는 곡선 또는 비사각형 이미지와 같이 더 복잡한 셰이프를 설명하기 위해 다른 개수의 점을 반환할 수 있습니다. 현재 원본은 렌더링된 파일(PDF/이미지)의 요소에 대해서만 반환됩니다.

전체 JSON 예제

다음 예제에서는 문서 분석의 전체 JSON 응답 구조를 보여줍니다. 이 JSON은 여러 요소 형식의 PDF 문서를 처리할 때 Content Understanding의 전체 출력을 나타냅니다.

확인란, 바코드, 수식, 이미지 및 테이블을 비롯한 예제 콘텐츠를 보여 주는 데모 PDF 문서를 보여 주는 스크린샷

{
  "id": "10a01d32-e21e-46e3-bb5c-361375f184de",
  "status": "Succeeded",
  "result": {
    "analyzerId": "auto-labeling-model-1750287025291-104",
    "apiVersion": "2025-05-01-preview",
    "createdAt": "2025-06-18T22:50:34Z",
    "warnings": [],
    "contents": [
      {
        "markdown": "# Example Document\n\n\n## 1. Selection Marks (Checkboxes)\n\nEmployee Preferences Form\n☐\nRemote\n☒\nHybrid\n☐\nOn-site\n\n\n## 2. Barcodes\n\nGo check out Azure Content Understanding at the below link\n\n\n## 3. Formulas\n\nBayesian Inference (Posterior Probability):\n\n$$P \\left( \\theta \\mid D \\right) = \\frac { P \\left( D \\mid \\theta \\right) \\cdot P \\left( \\theta \\right) } { P \\left( D \\right) }$$\n\nWhere:\n\n$$P \\left( \\theta \\mid D \\right)$$\nis the posterior\n\n$P \\left( D \\mid \\theta \\right)$ is the likelihood\n$P \\left( \\theta \\right)$ is the prior\n\n$$P \\left( D \\right) i s \\quad t h e \\quad e v i d e n c e$$\n\n<!-- PageBreak -->\n\n\n## 4. Images\n\nSample Product Image\n\n\n<figure>\n\nContent\nUnderstanding\n\n</figure>\n\n\nImage Description: \"A ceramic coffee mug with company logo.\"\n\n\n## 5. Tables\n\n\n<table>\n<tr>\n<th>Category</th>\n<th>Amount ($)</th>\n</tr>\n<tr>\n<td>Rent</td>\n<td>1,200</td>\n</tr>\n<tr>\n<td>Utilities</td>\n<td>150</td>\n</tr>\n<tr>\n<td>Groceries</td>\n<td>300</td>\n</tr>\n<tr>\n<td>Transportation</td>\n<td>100</td>\n</tr>\n<tr>\n<td>Total</td>\n<td>1,750</td>\n</tr>\n</table>\n\n\n## 6. Paragraphs\n\nOur company is committed to fostering a productive and inclusive work environment. All\nemployees are expected to comply with the outlined policies and demonstrate mutual\nrespect in day-to-day operations. Regular reviews will ensure that these policies remain\nrelevant and effective.\n",
        "fields": {
          "EmployeePreferences": {
            "type": "string",
            "valueString": "Hybrid",
            "spans": [
              {
                "offset": 94,
                "length": 6
              }
            ],
            "confidence": 0.987,
            "source": "D(1,1.4104,2.7836,1.8760,2.7823,1.8760,2.9377,1.4110,2.9396)"
          },
          "ImageDescription": {
            "type": "string",
            "valueString": "\"A ceramic coffee mug with company logo.\"",
            "spans": [
              {
                "offset": 722,
                "length": 41
              }
            ],
            "confidence": 0.958,
            "source": "D(2,2.5222,4.2511,5.3236,4.2497,5.3237,4.4422,2.5223,4.4436)"
          }
        },
        "kind": "document",
        "startPageNumber": 1,
        "endPageNumber": 2,
        "unit": "inch",
        "pages": [
          {
            "pageNumber": 1,
            "angle": 0.0739153,
            "width": 8.5,
            "height": 11,
            "spans": [
              {
                "offset": 0,
                "length": 620
              }
            ],
            "words": [
              {
                "content": "Example",
                "span": {
                  "length": 7
                },
                "confidence": 0.992,
                "source": "D(1,1.265,1.0836,2.4972,1.0816,2.4964,1.4117,1.2645,1.4117)"
              },
              {
                "content": "Document",
                "span": {
                  "length": 8
                },
                "confidence": 0.996,
                "source": "D(1,2.6252,1.084,4.1615,1.0886,4.1615,1.3993,2.6241,1.4117)"
              },
              {
                "content": "☒",
                "span": {
                  "length": 1
                },
                "confidence": 0.983,
                "source": "D(1,1.258,2.7952,1.3705,2.7949,1.371,2.9098,1.2575,2.9089)"
              },
              {
                "content": "Hybrid",
                "span": {
                  "length": 6
                },
                "confidence": 0.996,
                "source": "D(1,1.4104,2.7836,1.876,2.7823,1.876,2.9377,1.411,2.9396)"
              }
            ],
            "lines": [
              {
                "content": "Example Document",
                "source": "D(1,1.264,1.0836,4.1583,1.0795,4.1589,1.4083,1.2645,1.4117)",
                "span": {
                  "offset": 0,
                  "length": 16
                }
              }
            ],
            "formulas": [
              {
                "confidence": 0.583
              },
              {
                "confidence": 0.708
              }
            ]
          },
          {
            "pageNumber": 2,
            "angle": 0.1008425,
            "width": 8.5,
            "height": 11,
            "spans": [
              {
                "offset": 620,
                "length": 744
              }
            ],
            "words": [
              {
                "content": "Images",
                "source": "D(2,1.4516,1.0434,2.0254,1.0463,2.0254,1.229,1.4506,1.224)"
              },
              {
                "content": "ceramic",
                "source": "D(2,2.5230,4.2539,2.6591,4.2543,2.6584,4.4392,2.5223,4.4407)"
              }
            ],
            "lines": [
              {
                "content": "4. Images",
                "source": "D(2,1.24,1.0409,2.0238,1.0463,2.0226,1.2284,1.2387,1.223)"
              }
            ]
          }
        ],
        "paragraphs": [
          {
            "role": "title",
            "content": "Example Document",
            "source": "D(1,1.264,1.0836,4.1584,1.0795,4.1589,1.4083,1.2644,1.4124)",
            "span": {
              "offset": 0,
              "length": 18
            }
          },
          {
            "role": "sectionHeading",
            "content": "1. Selection Marks (Checkboxes)",
            "source": "D(1,1.2461,1.8719,3.8532,1.8731,3.8531,2.065,1.246,2.0638)",
            "span": {
              "offset": 21,
              "length": 34
            }
          },
          {
            "content": "Employee Preferences Form ☐ Remote ☒ Hybrid ☐ On-site",
            "source": "D(1,1.246,2.0993,3.1019,2.1007,3.101,3.2724,1.2451,3.2709)",
            "span": {
              "offset": 57,
              "length": 53
            }
          }
        ],
        "sections": [
          {
            "span": {
              "offset": 0,
              "length": 1364
            },
            "elements": [
              "/paragraphs/0",
              "/sections/1",
              "/sections/2",
              "/sections/3",
              "/sections/4",
              "/sections/5",
              "/sections/6"
            ]
          },
          {
            "span": {
              "offset": 21,
              "length": 89
            },
            "elements": [
              "/paragraphs/1",
              "/paragraphs/2"
            ]
          }
        ],
        "tables": [
          {
            "rowCount": 6,
            "columnCount": 2,
            "cells": [
              {
                "kind": "columnHeader",
                "rowIndex": 0,
                "columnIndex": 0,
                "rowSpan": 1,
                "columnSpan": 1,
                "content": "Category",
                "source": "D(2,1.1674,5.0483,4.1733,5.0546,4.1733,5.2358,1.1674,5.2358)",
                "span": {
                  "offset": 798,
                  "length": 8
                }
              },
              {
                "kind": "columnHeader",
                "rowIndex": 0,
                "columnIndex": 1,
                "rowSpan": 1,
                "columnSpan": 1,
                "content": "Amount ($)",
                "source": "D(2,4.1733,5.0546,7.1668,5.0546,7.1668,5.2358,4.1733,5.2358)",
                "span": {
                  "offset": 816,
                  "length": 10
                }
              }
            ],
            "source": "D(2,1.1566,5.0425,7.1855,5.0428,7.1862,6.1853,1.1574,6.1858)",
            "span": {
              "offset": 781,
              "length": 280
            }
          }
        ],
        "figures": [
          {
            "source": "D(2,1.3465,1.8481,3.4788,1.8484,3.4779,3.8286,1.3456,3.8282)",
            "span": {
              "offset": 658,
              "length": 42
            },
            "elements": [
              "/paragraphs/14"
            ],
            "id": "2.1"
          }
        ]
      }
    ]
  }
}

이 전체 예제에서는 Content Understanding이 문서에서 다양한 요소 형식을 추출하고 구성하는 방법을 보여 줍니다. 고급 문서 처리 워크플로를 가능하게 하는 원시 콘텐츠와 자세한 위치 및 구조 정보를 모두 제공합니다.