AI 문서 추출에서 깔끔하고 정확한 결과를 얻는 방법
AI 문서 추출에서
AI 문서 추출은 기존 OCR과 다릅니다. 페이지의 모든 내용을 텍스트 스트림으로 덤프하는 대신, 특정 열을 정의하면 모델이 어떤 문서 레이아웃에서도 해당 필드를 찾아냅니다. 이러한 변화는 더 많은 제어권을 사용자에게 제공하지만, 출력 품질이 열을 정의하는 방식에 크게 좌우된다는 의미이기도 합니다. 아래 소개하는 기법들이 지저분한 첫 결과와 깔끔하고 분석 준비가 된 테이블의 차이를 만듭니다.

핵심 요점
- 열 이름은 스프레드시트 라벨이 아닙니다. 각각은 AI가 배치의 모든 문서에서 읽고, 해석하고, 실행하는 검색 지시문입니다.
- 행에서 단일 필드가 누락되어도 빈 셀이 생성되지 않습니다. 대신 오른쪽의 모든 값이 한 열씩 조용히 이동하며, 정렬 불일치는 이후 조정이 실패할 때까지 감지되지 않습니다.
- ImageToTable.ai는 추출된 모든 값을 열 인덱스 번호와 짝지어 제공하므로, 누락된 필드가 행 전체를 왼쪽으로 이동시키는 대신 올바른 위치에 보이는 빈 셀로 표시됩니다.
열 이름은 지침입니다

AI 추출 도구에 열 이름을 입력할 때, 단순히 스프레드시트 열에 라벨을 붙이는 것이 아닙니다. 모델에 무엇을 찾아야 하는지, 어떻게 식별할지, 결과를 어떻게 형식화할지 알려주는 것입니다. 모델은 열 이름을 지침으로 읽고 배치의 모든 문서에 적용합니다.
즉, 모호한 열 이름은 모호한 출력을 만듭니다. 다섯 개의 서로 다른 날짜가 있는 송장에서 "Date"는 모델이 가장 먼저 만나는 날짜를 반환합니다. 구체적인 열 이름은 구체적인 출력을 만듭니다. "Issue Date (YYYY-MM-DD)"는 모델에 어떤 날짜를 찾아야 하는지와 형식을 알려줍니다.
아래의 여덟 가지 팁은 형식 제어부터 동음이의어 구분, 배치 처리에서 조용한 오류를 방지하는 구조적 기법까지 열 이름을 더 효과적으로 활용하는 주요 방법을 다룹니다.
더 나은 추출 결과를 위한 여덟 가지 팁
1. 열 이름에 형식 요구사항을 포함하세요
"Date" 대신 "Date (YYYY-MM-DD)"라고 쓰세요. "Amount" 대신 "Amount (number only, no currency symbol)"라고 쓰세요. 모델은 열 이름을 필드 식별자이자 형식 지침으로 읽습니다.
이는 중요합니다. 서로 다른 원본 문서가 같은 값을 다르게 형식화하기 때문입니다. "March 15, 2024", "15/03/2024", "2024-03-15"는 세 가지 형식의 같은 날짜입니다. 열 이름을 "Date (YYYY-MM-DD)"로 지정하면 출력이 배치의 모든 문서에서 하나의 형식으로 표준화되며 사후 처리가 필요 없습니다. 같은 원칙이 금액에도 적용됩니다. "Total Amount (number only, 2 decimal places)"는 통화 기호와 천 단위 구분 기호를 제거하여 정리 작업 없이 숫자 연산에 사용할 수 있는 열을 만듭니다.
2. 문서에 동일한 필드 유형이 여러 번 나타날 때는 명확하게 구분하세요
구매 주문서에는 주문 날짜, 배송 날짜, 결제 기한이 있습니다. "날짜"만 요청하면 모델이 가장 먼저 찾는 날짜를 반환합니다. "주문 날짜", "배송 날짜", "기한"을 각각 별도의 열로 요청하세요. 구체적인 이름이 추출을 올바른 값으로 안내합니다.
이는 금액(총 청구액 vs. 지불한 보증금 vs. 잔액), 이름(공급업체 vs. 수령인 vs. 담당자), 참조 번호(구매 주문 번호 vs. 송장 번호 vs. 추적 번호)에도 동일하게 적용됩니다. 문서에 두 번 이상 나타날 수 있는 모든 필드 유형에는 명확한 구분 이름이 필요합니다.
3. 추론 또는 분류 필드에는 자연어를 사용하세요
문서에서 필드를 어떻게 부르는지 알 필요 없이, 원하는 내용을 설명하면 됩니다. "거래 유형(차변 또는 대변)"은 은행마다 같은 개념을 "출금/입금", "DR/CR"로 표시하거나 양수/음수 금액만 사용하더라도 열 이름으로 작동합니다. 모델은 원본 문서의 키워드 일치가 아닌 의미적 이해를 바탕으로 각 거래를 분류합니다.
이는 조건부 필드에도 적용됩니다. "상태(지불 도장 또는 확인 텍스트 기준, 지불됨 또는 미지불)"는 유효한 지침입니다. 모델이 문서를 평가하고 분류 논리를 적용하므로, 해당 라벨이 문자 그대로 존재하는 필드로 제한되지 않습니다.
4. 모호한 열에는 예시 값을 추가하세요
필드 이름만으로 여러 방식으로 해석될 수 있는 경우, 괄호 안에 예시 값을 추가하면 모호성이 해결됩니다. 모델은 예시를 보정 신호로 처리합니다. 이는 언어 모델 프롬프트의 few-shot 프롬프팅과 동일한 메커니즘입니다.
예시 값이 일관되게 도움이 되는 세 가지 경우:
- 특정 분류 체계가 있는 분류 필드: "비용 범주(예: 임대료, 공과금, 급여, 여비)" — 예시 값은 모델이 자체적으로 범주를 만들지 않도록 사용할 범주를 정확히 정의합니다. 예시가 없으면 서로 다른 시점에 처리된 두 배치에서 일관되지 않은 범주 이름이 생성될 수 있습니다.
- 일관되지 않은 소스 간 형식 고정: "전화번호(예: +1-415-555-0123)" — 국가나 시스템이 다른 문서가 서로 다른 형식 규칙을 사용하는 경우, 예시는 명시적인 형식 규칙 없이도 출력을 하나의 형식으로 고정합니다.
- 유사한 식별자 구분: "구매 주문 번호(예: PO-2024-0892, 송장 번호 아님)" — 여러 참조 번호가 포함된 문서에서 예시는 잘못된 번호를 명시적으로 배제합니다.
예시는 실제 데이터일 필요 없이 그럴듯한 샘플 값이면 충분합니다. 이는 필터가 아닌 패턴 시연자 역할을 합니다.
5. 열 인덱싱이 어떻게 조용한 오류를 방지하는지 이해하기
안정적인 AI 추출의 구조적 속성: 각 추출된 값은 쉼표로 구분된 문자열에서의 위치가 아닌 열 인덱스 번호와 쌍을 이루어야 합니다. 이는 처음 보기보다 더 중요합니다.
명시적인 열 인덱싱이 없으면 누락된 필드가 조용한 열 이동을 유발합니다. 행에 5개의 열이 있지만 특정 문서에 필드 3이 없어 모델이 이를 생략하면, 해당 행의 필드 4와 5가 잘못된 열에 배치됩니다. 50개 문서의 배치에서 이러한 정렬 오류는 잡아내기 어렵습니다 — 합계가 공급업체 이름 열에, 날짜가 금액 열에 들어가게 됩니다 — 숫자가 다운스트림에서 일치하지 않을 때까지 말입니다.
인덱스 출력(예: "1. 2024-03-15", "2. 1590.00", "3. ACME Supplies")을 사용하면 각 값이 열 정체성을 명시적으로 전달합니다. 누락된 필드는 후속 값을 조용히 왼쪽으로 이동시키는 대신 올바른 인덱스에 빈 자리 표시자를 생성합니다. 소스 문서에 실제로 몇 개의 필드가 있었는지와 관계없이 모든 행은 동일한 구조를 유지하며, 빈 셀은 인접한 열을 손상시키는 대신 누락된 데이터를 올바르게 표시합니다.
이는 또한 일종의 환각 오류를 억제합니다: 인덱스 제약이 없으면 모델은 누락된 필드를 비워 두는 대신 그럴듯한 인접 값을 채울 수 있습니다. 명시적 인덱싱은 "여기에 찾은 것이 없음"을 유효하고 인식된 출력 상태로 만듭니다.
6. 익숙하지 않은 문서 유형을 다룰 때는 먼저 자동 감지를 사용하세요
이전에 추출해 본 적이 없는 문서 유형을 만나면 열을 지정하지 않고 업로드하세요. 모델이 문서의 시각적 구조를 분석하고 발견한 내용을 기반으로 초기 필드 목록을 생성합니다.
해당 출력을 사용하여 어떤 필드가 일관되게 존재하는지, 소스 문서가 이를 어떻게 표시하는지 이해한 다음 후속 배치 실행을 위해 열 이름을 정제하세요. 이는 열 이름을 추측하고 빈 셀을 반복하며 문서에 실제로 무엇이 포함되어 있는지 찾는 것보다 빠릅니다. 특히 익숙하지 않은 레이아웃에 유용합니다: 새 병원 시스템의 실험실 보고서, 워크플로에 방금 추가한 은행의 명세서, 또는 새 공급업체의 인보이스 형식 등입니다.
7. 문서당 한 행을 원하는지, 품목별 한 행을 원하는지 명확히 지정하세요
품목이 8개인 인보이스는 하나의 행(품목이 연결되거나 요약된) 또는 8개의 행(품목별 하나)을 생성할 수 있습니다. 지정하는 열 이름에 따라 동작이 결정됩니다.
문서 수준 열("공급업체 이름", "인보이스 날짜", "총 금액")을 지정하면 문서당 하나의 행이 생성됩니다. 품목 수준 열("품목 설명", "수량", "단가", "품목 합계")을 지정하면 배치의 모든 문서에서 품목별로 하나의 행이 생성됩니다. 하나의 열 세트에 두 유형을 혼합하는 것도 유효합니다. 모델이 각 품목 행에 문서 수준 값을 반복하여 Excel에서 필터링하고 피벗하기 쉬운 비정규화된 테이블을 생성합니다.
8. 동일한 유형의 문서를 함께 배치하세요
배치의 모든 문서가 동일한 열 스키마를 공유하면 각 문서가 하나의 깔끔한 병합 테이블에서 행 집합이 됩니다. 구분 열 없이 근본적으로 다른 문서 유형을 혼합하면 모호성이 발생합니다. 인보이스의 "금액"과 은행 명세서의 "금액"은 의미가 다르며 병합된 출력에서 구분할 수 없게 됩니다.
다른 문서 유형을 병합해야 하는 경우 "문서 유형" 또는 "출처" 열을 추가하세요. 모델이 각 문서에서 이 정보를 직접 읽고 자동으로 채울 수 있으므로 각 파일을 수동으로 라벨링할 필요가 없습니다.
전후 비교: 모호한 열 이름 vs. 정확한 열 이름

| 모호한 열 이름 | 더 나은 열 이름 | 더 나은 이유 |
|---|---|---|
| Date | 발행일 (YYYY-MM-DD) | 어떤 날짜인지 명확히 구분하며, 모든 원본 문서에서 형식을 표준화합니다 |
| Amount | 총 금액 (숫자만, 기호 없음) | 통화 기호와 서식을 제거하여 숫자 연산에 바로 사용할 수 있습니다 |
| Name | 공급업체 이름 | 같은 문서에서 수령인, 담당자 또는 승인자와 공급업체를 구분합니다 |
| Type | 거래 유형 (차변 또는 대변) | 유효한 출력 값을 제공하며, 은행이 열을 어떻게 표기하든 관계없이 작동합니다 |
| Category | 카테고리 (예: 임대료, 공과금, 급여, 여비) | few-shot 예시가 분류 체계를 고정하여 배치 간 카테고리 이름 불일치를 방지합니다 |
| ID | 송장 번호 (예: INV-2024-0892, PO 번호 아님) | 인접한 식별자를 배제하며, 예시가 기대 형식을 명확히 고정합니다 |
자주 묻는 질문
어떤 열을 요청해야 할지 모르겠다면 어떻게 하나요?
열을 지정하지 않고 문서를 업로드하세요. 모델이 문서 구조를 분석하고 감지된 내용을 기반으로 제안 필드 목록을 생성합니다 — 이를 다듬을 수 있는 시작점입니다. 이 자동 감지 모드는 필드 이름을 추측하지 않고 새 문서 유형을 이해하는 가장 빠른 방법입니다.
문서에 분명히 있는 필드인데 계속 빈 셀이 나옵니다. 무엇이 문제인가요?
보통 이름의 모호함 때문입니다. 모델이 열 이름을 문서의 필드와 확실하게 매칭하지 못한 것입니다 — 이름이 너무 일반적이거나("Info", "Details"), 문서가 해당 필드에 비정상적인 라벨을 사용하거나, 필드가 존재하지만 주변 텍스트와 명확히 구분되지 않는 경우입니다. 더 구체적인 설명을 시도하거나, 괄호 안에 예시 값을 추가하거나, 원본 문서의 필드 라벨이 요청한 것과 크게 다른지 확인하세요.
동일한 열 세트를 다른 문서 유형에 재사용할 수 있나요?
네, 하지만 병합된 출력에서 행을 구분할 수 있도록 "문서 유형" 열을 추가하세요. 한 배치에서 송장과 영수증 모두에서 "금액"과 "날짜"를 추출하는 경우, 해당 필드는 동일한 의미를 가지며 병합된 테이블이 깔끔합니다. 송장과 은행 거래 내역을 혼합하는 경우 의미가 달라집니다 — 송장 합계의 "금액"과 단일 은행 거래의 "금액"은 동일한 필드가 아니므로 분리하거나 라벨을 지정해야 합니다.
열 이름을 작성하는 것과 서식 규칙을 작성하는 것은 어떻게 다른가요?
열 이름은 모델에 무엇을 찾을지 알려줍니다. 서식 규칙(또는 열 이름에 포함된 형식 힌트)은 값을 찾은 후 어떻게 렌더링할지 알려줍니다. 둘 다 열 이름 자체로 표현할 수 있습니다: "총 금액(숫자만, 소수점 2자리)"는 필드를 식별하고 출력 형식을 한 번의 지시로 지정합니다. 열 이름에 함께 유지하는 것이 별도의 규칙 필드를 관리하는 것보다 간단하며 — 출력 테이블 헤더에서 즉시 확인할 수 있습니다.
한 번에 하나의 문서만 처리하는데 인덱스 출력이 왜 중요한가요?
단일 문서에서도 열 인덱싱은 누락된 필드가 후속 값을 왼쪽으로 이동시키는 대신 보이는 빈 셀을 생성하도록 보장합니다. 특정 거래에 메모가 없는 은행 거래 내역은 메모 열에 빈 셀이 생성됩니다 — 날짜나 금액 값이 그 자리에 들어가지 않습니다. 이 동작은 누락된 필드가 흔한 배치 처리에서 가장 중요하지만, 제공하는 구조적 정확성은 모든 다중 열 추출에 적용됩니다.
자신의 문서로 이 기법들을 시도해 보세요 — 배치를 업로드하고 위의 열 이름 패턴을 적용한 후, 이전 결과와 출력을 비교해 보세요.
추출 시작