AX 인사이트

이미지 · 표 데이터 추출이 파싱할 때 손상된다면? – 병합 셀부터 다단 헤더까지 총정리

HANCOM

“표는 분명 뽑혔는데 AI가 자꾸 다른 분기의 숫자를 답해요.” “병합된 셀이 들어가니 값이 한 칸씩 밀려 나와요.”

표는 항목과 값의 관계, 즉 키와 값의 데이터를 시각화하는 가장 고전적이면서 효과적인 방법으로, 문서에서도 가장 많이 쓰이는 표현 방식입니다. 실제로 구글 검색 질의 데이터셋을 분석한 연구에 따르면, 사용자 질문의 25.6%가 표 형태로 저장된 데이터에 대한 답변을 요구했습니다. RAG 시스템이 받는 질문 약 4분의 1이 표 안의 값이나 행·열 간 비교 추론을 필요로 한다는 의미입니다.

표 데이터 추출을 실행해 본 경우 자주 겪는 상황이 있습니다. 글자는 모두 추출되어 성공한 것처럼 보이지만, 실제로는 부정확한 답이 나옵니다. 표준 PDF 파서가 행과 열을 병합해 데이터 간 관계를 끊으면, 구조 손실이 이후 검색과 답변 생성 단계에도 그대로 영향을 미치기 때문입니다.

이번 글에서는 병합 셀·다단 헤더·중첩 표 때문에 표가 깨지는 원인을 유형별로 진단하고, TSR(Table Structure Recognition, 표 구조 인식)으로 행·열 관계를 복원하는 원리까지 정리했습니다.

표 구조 손실이 RAG 정확도를 떨어뜨리는 이유

표를 추출했는데 텍스트는 나왔지만 AI가 엉뚱한 답을 낸다면, 원인은 대부분 표 구조 손실입니다. 파싱(Parsing) 단계에서 표 제목과 데이터 관계가 손상되면, AI는 같은 숫자를 읽더라도 어떤 항목을 설명하는 수치인지 구분하기 어려워집니다.

표는 행과 열이 교차하는 격자 구조이고, 셀 값은 그 위·옆 헤더와 연결될 때만 의미를 가집니다. 숫자 ‘1,200’은 ‘2026년 1분기 매출’이라는 헤더와 붙어야 무엇을 뜻하는지 드러납니다. 그런데 일반 텍스트 추출기는 이 격자를 인식하지 못하고 셀을 위에서 아래로, 왼쪽에서 오른쪽으로 읽어 내려갑니다. 그러면 표의 행·열 관계가 사라지면서 제목과 숫자의 연결 관계도 함께 손실됩니다.

이러한 구조 손실은 RAG의 검색 정확도와 답변 품질에도 직접 영향을 미칩니다. RAG(Retrieval-Augmented Generation, 검색 증강 생성)는 문서에서 관련 내용을 검색해 LLM 답변의 근거로 활용하는 방식입니다. 표 구조가 손상된 채 저장되면 검색 단계에서 잘못된 셀 값을 가져옵니다. RAG 문서 처리 파이프라인을 다룬 NVIDIA 기술 자료에서 언급하듯이, 표준 PDF 파서가 행과 열을 병합해 데이터 간 관계를 끊으면 다음 단계에서 신뢰하기 어려운 결과가 나옵니다.

*출처: NVIDIA Technical Blog, 「How to Build a Document Processing Pipeline for RAG with Nemotron」, 2026

표 파싱이 손상되는 원인, 병합 셀·다단 헤더·중첩 표

표 파싱이 깨지는 대표적인 원인은 병합 셀, 다단 헤더, 중첩 표입니다. 표는 겉보기에는 정리돼 있어도, 실제 추출 과정에서는 행과 열의 관계가 쉽게 흐트러질 수 있습니다.

단순한 표라면 위에서 아래로, 왼쪽에서 오른쪽으로 읽어도 큰 문제가 없습니다. 하지만 셀이 합쳐져 있거나 헤더가 두 줄 이상으로 나뉘어 있거나, 표 안에 또 다른 표가 들어가면 상황이 달라집니다. 텍스트 추출기는 이런 구조를 표의 관계로 이해하지 못하고 글자 순서대로만 읽기 때문에, 헤더와 값의 연결이 끊어지기 쉽습니다.

병합 셀(Merged Cell)에서 값이 어긋나는 이유

2026년
1분기2분기3분기4분기
1,2001,3501,5001,420

병합 셀에서 값이 어긋나는 이유는 추출기가 병합된 칸을 한 번만 읽기 때문입니다. ‘2026년’ 셀이 1분기부터 4분기까지 네 개 열을 병합한다고 가정하면, 추출 결과에는 ‘2026년’이 한 번만 나타나 그 아래 숫자들이 어느 분기 값인지 알 수 없게 됩니다.

2026년 1분기 2분기 3분기 4분기 1,200 1,350 1,500 1,420

위 표처럼 ‘2026년’이 한 번만 나온 뒤 나머지 값이 그대로 이어지면, ‘1분기 매출’ 헤더는 원래 자리인 1,200이 아니라 그다음 값인 1,350과 연결됩니다. 이 표가 RAG에 들어가면, 사용자가 ‘2026년 1분기 매출’을 물어도 AI는 실제로는 2분기 값인 1,350을 답으로 가져올 수 있습니다.

이 문제는 특정 도구만의 한계가 아닙니다. 파이썬 데이터 분석 라이브러리 판다스(Pandas) 공식 이슈에서도 병합 셀(rowspan·colspan) 추출 시 헤더와 컬럼 연결이 끊기는 문제가 보고된 적 있습니다. 이는 병합 셀 구조를 기계가 읽을 수 있는 행·열 관계로 복원하는 과정 자체가 까다롭다는 점을 보여주는 참고 사례입니다.

출처: pandas github, 「ENH: read_html to handle rowspan, colspan (GitHub Issue #17054)」

다단 헤더(Multi-level Header)에서 사라지는 칼럼명

다단 헤더에서 칼럼명이 사라지는 이유는 추출기가 헤더를 한 행이라고 가정하기 때문입니다. 상위 헤더 ‘2025년 / 2026년’ 아래 하위 헤더 ‘상반기 / 하반기’가 놓인 2단 헤더 표를 추출하면, 어느 행이 컬럼명이고 어느 행이 데이터인지 구분되지 않은 채 값이 나열됩니다.

2025년 2026년
상반기 하반기 상반기 하반기
980 1,040 1,200 1,310

헤더가 두 행 이상이면 상위 헤더나 하위 헤더 중 하나가 추출 과정에서 누락되거나, 헤더가 본문 숫자 사이에 데이터처럼 섞여 들어갑니다.

예를 들어 위 표는 실제 추출 시 “2025년 2026년 상반기 하반기 상반기 하반기 980 1,040 1,200 1,310″처럼 한 줄로 이어져 나올 수 있습니다. 추출기 입장에서는 머리글이 어디까지인지 판단할 기준이 없어, 계층 구조가 사라지고 모든 값이 같은 층위로 나열됩니다.

그래서 ‘2026년 하반기’처럼 상위와 하위 헤더를 조합해야 성립하는 조건이 특히 문제가 됩니다. 계층 구조가 손상되면 AI는 둘을 연결할 근거를 잃고, 연도와 반기를 따로 검색해 잘못 조합된 값을 답으로 내놓습니다. 표 구조를 한 방향으로만 읽고 셀을 독립적으로 처리하면 이런 계층 관계를 놓치기 쉽다는 점은, 다단 헤더 처리를 다룬 TSR 연구에서도 기존 방식의 한계로 지적됩니다.

*출처: Arxiv, 「Multi-Cell Decoder and Mutual Learning for Table Structure and Character Recognition」, 2024

중첩 표(Nested Table)에서 손실되는 좌표 정보

중첩 표에서 좌표 정보가 손실되는 이유는 안쪽 표의 좌표가 바깥 표의 좌표와 겹치기 때문입니다. 표 안의 한 셀에 또 다른 작은 표가 들어 있으면, 추출 결과(JSON)에서 안쪽 표의 셀들이 바깥 표 좌표를 침범해 전체 행·열 인덱스가 어긋납니다.

구분 실적
1분기 목표 1,200
달성 1,180
2분기 목표 1,350
달성 1,400

파서는 바깥 격자에 좌표를 차례로 부여합니다. 한 셀 안에서 새 표를 만나면 안쪽 표에도 별도 좌표가 필요한데, 바깥과 안쪽을 구분할 기준이 없으면 두 좌표가 같은 인덱스에서 겹칩니다. 그 지점부터 뒤따르는 셀 좌표가 모두 어긋나고, RAG 검색 단계에서 특정 수치를 찾을 때 인접한 다른 셀 값을 가져옵니다.

표 구조 복원을 다룬 RobusTabNet 연구에서는 TSR이 셀 경계와 좌표를 정밀하게 복원해야 하고 복잡하고 왜곡된 표일수록 난이도가 높다고 합니다. 

세 유형의 원인은 결국 하나로 모입니다. 격자 구조로 만든 표를, 구조를 모르는 추출기가 차례대로 읽어 내려간다는 점입니다. 그렇다면 글자를 읽기 전에 격자 구조부터 복원하면 됩니다. 다만 이미지나 스캔 문서라면 한 단계가 추가되는데, 그 부분을 먼저 살펴보겠습니다.

출처: Arxiv, 「Robust Table Detection and Structure Recognition from Heterogeneous Document Images」(RobusTabNet), 2022

이미지·스캔 문서 속 표 추출이 더 어려운 이유

디지털 문서(예: 직접 작성한 PDF)는 글자가 텍스트 데이터로 저장되어 있어 바로 추출할 수 있지만, 스캔 문서나 사진은 글자가 픽셀로 이루어진 이미지이기 때문에 OCR로 먼저 읽어낸 뒤에야 텍스트로 변환할 수 있습니다. 이런 이유로 디지털 문서의 표 추출도 까다롭지만, 이미지·스캔 문서는 한층 더 어려운 작업이 됩니다.

이때 스캔 품질이 낮으면 글자를 잘못 인식하고(예: 8을 B로), 숫자 중심 표에서는 한 글자만 틀려도 값 전체가 어긋납니다. 타이핑된 양식에 손글씨가 섞이거나 표 위에 손글씨 주석이 덧씌워진 문서라면, 글자를 읽기 전에 어디가 표이고 어디가 글자 영역인지부터 판별해야 합니다.

표 데이터 추출의 핵심 기술인 OCR을 더 깊이 들여다보고 싶다면?

👉 OCR이란? AI OCR 핵심 기술부터 문서 자동화 활용 가이드까지

디지털 표와 이미지 속 표의 처리 방식 차이

디지털 표와 이미지 속 표의 처리 방식 차이는 글자가 어떤 형태로 저장되어 있는지에 따라 결정됩니다. 텍스트 레이어가 있는 디지털 문서는 텍스트 직접 추출로 충분하지만, 텍스트 밀도가 낮거나 글자가 이미지로만 존재하는 페이지는 OCR이 필요합니다. 그래서 일괄 처리 전에 ‘이 페이지가 이미지형인지’를 먼저 판별해 OCR 대상만 골라내는 편이 효율적입니다.

구분디지털 문서의 표이미지·스캔 문서의 표
글자 저장 형태텍스트 데이터픽셀 이미지
추출 방식텍스트 직접 추출OCR로 글자 인식 후 추출
정확도 좌우 요소TSR 정확도스캔 해상도·선명도 + TSR
적합한 처리파싱·TSROCR·DLA·TSR을 함께 적용

이미지·스캔 문서는 스캔 품질이라는 변수가 하나 더 추가되기 때문에, 글자를 인식하는 OCR과 구조를 복원하는 기술이 함께 들어가야 합니다.

저품질 스캔과 OCR 노이즈가 데이터 오류로 이어지는 과정

저품질 스캔이 데이터 오류로 이어지는 과정은 글자 인식 단계에서 시작됩니다. 스캔 품질이 낮으면 글자 형태가 흐려져 OCR이 잘못 인식하거나 일부를 누락하는데, 숫자 중심 표에서는 이 오인식이 곧바로 데이터 오류가 됩니다.

OCR이란 이미지·스캔·이미지형 PDF의 글자를 기계가 읽을 수 있는 텍스트로 변환하는 기술입니다. 글자가 그림으로만 있는 문서는 OCR 단계를 거쳐야 데이터가 됩니다.

이 단계에서 생긴 노이즈는 그 뒤 단계로 그대로 이어집니다. OCR 노이즈가 RAG에 미치는 영향을 다룬 OHRBench 연구에 따르면, OCR의 불완전성이 심할수록 RAG 성능이 측정 가능한 수준으로 저하됩니다. 글자를 잘못 읽어 생긴 오류가 검색·생성 결과의 정확도까지 떨어뜨립니다. 그래서 이미지 문서 처리에서는 노이즈를 줄이고 인식 정확도를 높이는 것이 표 구조를 복원하는 일만큼 중요합니다.

*출처: IBM, 「What Is Optical Character Recognition (OCR)?」

*출처: Arxiv, 「OCR Hinders RAG」(OHRBench), 2024

TSR이 표를 복원하는 방식

TSR이란 문서에서 표의 행·열·셀 경계를 찾아내고 각 셀이 어느 헤더에 속하는지 관계를 복원하는 기술입니다. 격자 구조를 복원하고 이를 기반으로 글자를 읽기 때문에, 병합 셀이나 다단 헤더가 있어도 헤더와 값의 연결을 유지할 수 있습니다.

손상된 표를 복원하려면 먼저 문서에서 표 영역을 찾고, 그다음 표 안의 행·열 관계를 복원해야 합니다. DLA(Document Layout Analysis, 문서 구조 분석)는 표 영역을 찾아내고, TSR은 그 영역의 셀 경계와 행·열 관계를 복원합니다. 일반적으로 DLA 이후 TSR이 수행되며, 두 기술은 서로 다른 역할을 담당합니다.

DLA로 표 영역 파악

DLA는 한 페이지에서 텍스트 블록·표·이미지·제목 같은 요소가 각각 어디에 있는지 위치를 인식하는 기술입니다. AI 딥러닝으로 문서 안의 구성 요소를 구분하고 그 위치와 관계를 파악합니다.

표의 행·열 관계를 복원하기 전에 ‘여기부터 여기까지가 표’라는 영역이 먼저 정해져야 하므로, DLA는 표를 다루는 첫 단계가 됩니다. 즉 DLA는 ‘어디가 표인지 찾는 역할’을, TSR은 ‘그 표 안 행·열 관계를 복원하는 역할’을 맡는 분업 구조입니다.

TSR로 행·열 관계를 복원

TSR은 표 안의 셀 경계와 행·열 좌표를 파악해, 각 값이 어느 헤더에 속하는지 연결 관계를 복원합니다. DLA가 페이지 안에서 표 영역을 찾아내면, TSR은 그 영역 안에서 병합 셀, 다단 헤더, 셀 간 관계를 구조화합니다.

이미지나 스캔 문서에서는 OCR이 글자를 먼저 인식하고, 이를 TSR이 복원한 행·열 구조에 맞춰 정리합니다. 이렇게 처리하면 단순히 글자만 나열되는 것이 아니라, “2026년 1분기 매출”처럼 헤더와 값의 관계가 유지된 형태로 데이터가 추출됩니다.

결과적으로 TSR은 손상된 표를 줄글로 펼치는 것이 아니라, 행·열 관계가 살아 있는 구조화 데이터로 변환하는 역할을 합니다. 이 구조가 유지되어야 이후 RAG 검색 단계에서도 숫자와 항목이 함께 검색되어 더 정확한 답변 근거로 활용될 수 있습니다.

한컴 데이터 로더가 병합 셀이 있는 표를 행·열 관계를 유지한 구조화 데이터로 추출하는 화면

구조화 데이터로 변환해 RAG에 연결

TSR로 복원한 표는 행·열 관계가 유지된 구조화 데이터로 출력됩니다. 단순히 셀 값을 줄글로 나열하는 것이 아니라, 헤더와 값의 연결이 보존된 형태로 정리되기 때문에 이후 RAG 프로세스에 활용하기 쉽습니다.

RAG 프로세스는 문서 추출 → 파싱 → 청킹 → 임베딩 → 벡터DB 저장 → 검색 → 답변 생성 순서로 이어집니다. 이때 표 구조가 살아 있는 데이터가 저장되면 검색 단계에서 항목과 숫자를 함께 찾을 수 있고, AI도 더 정확한 셀 값을 근거로 답변할 수 있습니다.

TSR 결과가 실제로 어떻게 달라지는지 궁금하다면, 한컴 데이터 로더 라이브 데모에서 직접 문서를 올려 확인할 수 있습니다.

👉 한컴 데이터 로더 라이브 데모 바로가기

한컴 데이터 로더의 표 파싱 처리 방식

한컴 데이터 로더는 HWP·HWPX·PDF·OOXML 문서를 AI가 활용할 수 있는 구조화 데이터로 전환하는 문서 파싱 솔루션입니다.

문서 유형에 따라 OCR·DLA·TSR을 적용해 텍스트, 표, 이미지 등 문서 안의 구성 요소를 추출합니다. 특히 병합 셀과 다단 헤더가 포함된 표도 행·열 관계를 유지한 구조화 데이터로 변환해, RAG 전처리 단계에서 표 데이터가 손상되는 문제를 줄입니다.

포맷별 표 데이터 추출 적용 기술

문서 포맷마다 표를 처리하는 방식은 달라집니다. 어떤 문서는 글자가 텍스트 데이터로 저장돼 있고, 어떤 문서는 이미지 형태로만 남아 있으며, HWP·HWPX처럼 원본 문서 구조를 직접 읽어야 정확히 추출되는 경우도 있습니다. 그래서 표 데이터 추출에는 단일 기술만 적용하기보다, 문서 유형에 따라 원본 직접 파싱, OCR, DLA, TSR을 함께 적용하는 방식이 필요합니다.

중요한 점은 이 기술들을 각각 따로 붙여 쓰지 않아도 된다는 것입니다. OCR, DLA, TSR을 개별 도구로 조합하면 연결 과정에서 오류가 생기거나 관리 부담이 커질 수 있습니다. 한컴 데이터 로더는 문서 유형에 맞는 추출 기능을 하나의 파이프라인으로 묶어, 표 데이터 추출 과정의 연결 지점과 불안정성을 줄입니다.

고객 사례로 보는 표 데이터 추출 적용

표 데이터 추출이 실제로 쓰이는 대표 사례로는 경기도교육청 AI 디지털 플랫폼 구축 사업이 있습니다. 전국 17개 시도교육청 중 처음 추진된 사업으로, 사업자로 선정된 LG CNS 컨소시엄에 한컴이 자체 AI 솔루션을 공급하며 한컴 데이터 로더가 공공 문서를 AI 학습 가능한 형태로 전처리하는 역할을 맡았습니다.

디지털데일리 보도에 따르면 한컴 데이터 로더는 약 2,800여 개 학교 홈페이지와 4만여 건의 안내자료, 7,000여 건의 지침·법령 데이터를 AI 학습 가능한 형태로 변환해 한컴피디아와 연동됩니다. 추출·파싱은 한컴 데이터 로더가 맡고, 정리된 데이터를 청킹해 질의응답으로 잇는 단계는 자사 RAG 솔루션인 한컴피디아가 담당합니다.

도입 방식도 환경에 맞춰 고를 수 있습니다. 한컴 데이터 로더 API는 페이지 단위로 과금되어, 구독형으로 묶지 않고 실제 처리한 분량만큼만 비용을 들여 시작할 수 있습니다. 표 데이터 추출 품질을 먼저 확인하고 싶다면 필요한 만큼만 써보며 검토하면 됩니다.

👉 한컴 데이터 로더 API 살펴보기

이미지 표 텍스트 추출 관련 자주 묻는 질문 FAQ

병합 셀이 있는 표를 추출하면 왜 데이터가 어긋나나요?

텍스트 추출기가 병합 셀을 한 번만 읽어, 비어 있다고 가정한 칸만큼 뒤 값이 앞으로 당겨지고 헤더와 값의 연결이 끊기기 때문입니다. 오픈소스 라이브러리 판다스 공식 이슈(#17054)에서도 병합 셀(rowspan·colspan)에서 헤더-컬럼 연결이 끊기는 문제가 보고됐습니다.

TSR과 일반 텍스트 추출은 어떻게 다른가요?

VLM은 이미지와 텍스트를 함께 처리하는 멀티모달 AI이고, LLM은 텍스트만 처리하는 모델입니다. VLM은 비전 인코더로 이미지를 받아들여 시각 정보까지 해석한다는 점이 가장 큰 차이입니다.

스캔한 문서에 있는 표도 정확하게 추출할 수 있나요?

한컴 데이터 로더는 VLM 기반 이미지·차트 캡셔닝으로 시각 정보를 텍스트 설명으로 변환하는 파이프라인을 지원합니다. ※ 이미지 캡셔닝 기능은 현재 PoC 단계로, 상용 출시 일정은 추후 안내될 예정입니다.


참고자료

  1. NVIDIA Technical Blog, 「How to Build a Document Processing Pipeline for RAG with Nemotron」, 2026
  2. NVIDIA Technical Blog, 「Approaches to PDF Data Extraction for Information Retrieval」, 2025
  3. pandas, 「ENH: read_html to handle rowspan, colspan (GitHub Issue #17054)」
  4. Arxiv, Kawakatsu, 「Multi-Cell Decoder and Mutual Learning for Table Structure and Character Recognition」, 2024
  5. Arxiv, Ma et al., 「Robust Table Detection and Structure Recognition from Heterogeneous Document Images」(RobusTabNet), 2022