KICTParsing Testbed사전 파일럿 완료 · Human Gold 전
건설문서 파싱 실험

받은 데이터를 어떻게 나눠,
무엇을 비교했는가.

파서 조사에서 후보를 고르고, 제공 문서를 형식·상태·정보유형으로 나눈 뒤 정확도와 운영성을 평가합니다. 그 결과로 권장 라우팅과 공통 스키마를 정합니다.

과업지시서에서 최종 산출물까지
01 · SURVEY파서 유형 조사
후보 선별
02 · DATA문서·형식·상태
표본 설계
03 · TEST정확도
속도·메모리
04 · OUTPUT권장 조합
공통 스키마
현재는 사전 파일럿

24개 Silver 단위로 실험 구조와 라우팅 가설을 확인했습니다. 최종 순위는 합의된 Human Gold 본실험 뒤 확정합니다.

최종 원본문서9995개 문서유형
PDF 실행 규모20,668페이지
TIFF 실행 규모3,142프레임
공통 매핑81939 fields × 21 tracks
01 · TASK LOGIC

과업의 세 꼭지는
서로 다른 일이 아니다.

기술조사는 비교할 파서를 정하고, 샘플 실험은 파서의 정확도와 운영성을 측정합니다. 결과 분석은 그 근거를 권장 조합과 공통 스키마로 바꾸는 단계입니다.

과업 1

오픈소스 파서 조사

방법론·지원 형식·출력항목·실행조건을 조사하고 비교 후보를 선별합니다.

산출 · 후보 파서 선정표
과업 2

샘플 파싱·성능평가

같은 평가단위에 호환 파서를 적용해 정확도·속도·메모리를 측정합니다.

산출 · 모달리티별 성능표
과업 3

요구사항 도출

성능과 출력항목을 함께 분석해 파서 조합과 공통 저장 구조를 정합니다.

산출 · 라우팅안 + 스키마 명세
후보 조사전체자료 진단표본 선정동일 Gold 채점운영성 측정조합·스키마 결정
02 · PARSER SURVEY

최신이라는 이유가 아니라,
실험 역할이 다른 후보를 골랐다.

원본 구조, OCR, 구조 복원, VLM 보완을 각각 대표하는 기준선을 구성했습니다. 지식그래프는 원시문서를 읽는 파서가 아니므로 관계 추출 후처리로, 상용 2종은 출력항목 참조로 분리했습니다.

방법군실험 역할조사 후보현재 파일럿선정 기준
원본 형식 파서파일 내부 구조를 직접 읽는 기준선pyhwp · hwplib · syhwp · HWPX XML · Poppler · openpyxlHWP Native · syhwp · HWPX Native · Poppler · openpyxl형식 지원 · 객체 구조 · 로컬 실행
OCR스캔·이미지 문자의 최소 기준선Tesseract · PaddleOCRTesseract · PaddleOCR한국어 · 좌표 · 회전문자 · 자원
하이브리드 구조형레이아웃·표·읽기순서 복원Docling · PP-StructureV3 · MinerU PipelineDocling · PP-Structure · MinerU Pipeline객체·표·셀 · 공통 JSON 변환 가능성
Document VLM수식·복합표·도면 난영역 보완PaddleOCR-VL · MinerU VLM · GLM-OCR · MarkerPaddleOCR-VL 파일럿 · 영역 보완 경로A100 실행 · 작은 글자 · 구조 출력 · 비용
지식그래프 변환파싱 객체에서 관계·트리플 생성규칙·LLM 관계 추출 + RDF/Property Graph공통 relation 필드와 Triple F1 설계원문 파서가 아니므로 별도 후처리 평가
상용 참조오픈소스 대비 출력항목 수준 확인사이냅 도큐애널라이저 · 한컴 데이터로더제공 JSON 69건 필드 매핑동일 실행환경이 없어 정확도·속도 순위 제외
입력 지원한국어·숫자표·좌표·관계공통화 가능성설치·GPU·라이선스
03 · RECEIVED DATA

받은 999문서를 전수 진단하고,
평가 목적별로 다시 나눴다.

전체자료는 문서유형·형식·페이지 상태 분포와 운영 범위를 확인하는 모집단입니다. 사람 정답이 필요한 정확도 평가는 대표 상태를 담은 작은 표본에서만 수행했습니다.

HWP 578PDF 263Excel 80TIFF 77
문서유형HWPHWPXPDFTIFFExcel합계
감리보고서337144360418
설계보고서69032100111
민원공문400500090
공사사진대지1000100080280
공사시방서32037310100
합계57812637780999
01

전체 입력층999문서

5개 문서유형 · 5개 형식군
02

정확도 파일럿Silver 24단위

HWP 6 · PDF 11 · TIFF 7
03

본실험 Goldcalibration 4 · blind 20

2인 독립 작성·제3자 조정 예정
04

별도 비교층변환쌍·상용 출력

HWP↔PDF 20쌍 · 상용 JSON 69건
PDF20,668쪽Native text 없음 14,036쪽
TIFF3,142프레임77개 다중프레임 문서
HWP·HWPX579파일내부 section은 기술 진단값
HWP↔PDF20쌍변환 손실 비교 세트

같은 원본에서 나온 파일과 변환본은 개발·평가 양쪽에 나누지 않아 데이터 누수를 막았습니다.

04 · TESTBED DESIGN

확장자별 표본이 아니라,
상태와 정보유형을 함께 뽑았다.

정확도 표본은 문서유형×파일형식×입력상태×정보유형을 조합해 선정합니다. 모든 객체를 모든 단위에 강제로 라벨링하지 않고, 해당 단위에 실제 존재하는 모달리티만 채점합니다.

AXIS 1문서유형

감리 · 설계 · 민원 · 사진대지 · 시방서

AXIS 2파일형식

HWP · HWPX · PDF · TIFF · Excel

AXIS 3입력상태

디지털 · 텍스트 없음 · 희소 · 저품질

AXIS 4정보유형

본문 · 표 · 서식 · 사진 · 수식 · 도면

A정확도 트랙

대표 단위에 사람 정답을 만들고, 같은 범위의 파서 출력을 객체별로 채점합니다.

현재 Silver 24 → Human Gold 본실험
B운영성 트랙

장문·대용량 입력을 반복 실행해 성공률, usable 출력, 시간과 메모리를 기록합니다.

cold 단발 + warm 3회 반복
C변환 손실 트랙

같은 HWP의 직접 파싱 결과와 PDF 변환 후 결과를 정렬해 누락·변형을 비교합니다.

HWP↔PDF 대응쌍 20개
D스키마 트랙

오픈소스 RAW와 상용 JSON을 공통 필드에 매핑하고 표현 불가능한 항목을 찾습니다.

상용 JSON 69건 포함
INPUT / SCORE UNIT

파서가 받는 단위와 사람이 채점하는 단위는 다르다.

파서는 파일 전체를 받을 수 있지만, 정확도는 같은 페이지·논리구간·영역·객체 범위로 맞춘 뒤 비교합니다.

형식파서 입력나누는 상태·경로정확도 채점 단위
HWPHWP 파일 1개원본 직접 파싱 / PDF 변환동일 논리구간의 객체·셀
HWPXHWPX 파일 1개XML 원본 / 렌더 보완section 내부 객체
PDFPDF+page index 또는 렌더 이미지디지털 / 텍스트 없음 / 희소 / 복합표페이지 → 영역 → 객체
TIFF분리한 frame 이미지일반 / 표·서식 / 도면 난영역프레임 → 영역 → 객체
Excel통합문서셀 구조 / 사진·캡션 배치시트 → 셀·이미지
METRICS

정확도와 운영성을 한 점수로 섞지 않는다.

텍스트, 표, 관계처럼 정답 형태가 다른 항목은 각자 맞는 지표로 평가하고, 속도와 메모리는 별도 표로 비교합니다.

평가 대상Gold 또는 기록값지표무엇을 판단하는가
텍스트·필드값정규화 문자열·중요값CER · EM · Token F1문자와 핵심값 보존
객체·위치객체 유형·bboxObject F1 · IoU제목·본문·표·이미지 검출
표행·열·병합셀·셀 문자Cell F1 · TEDS · 병합셀 정확도셀 구조와 값 보존
계층·순서parent·level·reading orderParent · Level · Order Accuracy장절 구조와 읽기순서
객체관계source·target·relationRelation F1 · Triple F1캡션·참조·필드값 연결
운영성실행 로그성공률 · usable · p50/p95 · RAM/VRAM속도·안정성·자원
05 · EXECUTION MATRIX

파서는 형식에 맞게 실행하고,
평가는 같은 범위에서 한다.

아래 경로의 INPUT은 파서가 실제로 받는 묶음입니다. RAW는 파서 고유 결과이고, COMMON은 비교·DB 적재를 위해 만든 표준 결과입니다.

PDF263문서 · 20,668페이지

PDF는 확장자 확인 뒤 페이지마다 native text 상태를 다시 판정했다.

01디지털 페이지
INPUTPDF + page index
DIAGNOSEnative text 충분
ROUTEPoppler · ODL · Docling · MinerU Pipeline실행완료추가 후보 · pdfplumber
RAWbbox-XHTML · node JSON · DoclingDocument
COMMONpage → text · table · order
SILVER14/15 · 93.3%
02텍스트 없음·희소
INPUT렌더 page PNG
DIAGNOSEnative text 0 또는 희소
ROUTETesseract · PaddleOCR · PP-Structure실행완료추가 후보 · PaddleOCR-VL · GLM-OCR
RAWTSV · polygon JSON · layout/table JSON
COMMONpage → line · bbox · table · cell
SILVER최대 83.3% / 84.8%
03표·복합 영역
INPUT자동 table crop
DIAGNOSE표 bbox 검출
ROUTEPP-Structure → VLM 보완실행완료추가 후보 · MinerU VLM · Marker
RAWPP objects + VLM cell tokens
COMMONB1 composite · 원본 위치 유지
SILVERCell 22.4% → 34.2%
파서가 받는 것

Native·구조형 파서는 원본 PDF와 page index, OCR·VLM은 해당 페이지를 렌더한 PNG 또는 자동 crop을 받는다.

공통화 뒤 비교 단위

페이지별 common JSON 하나가 생성되고, 그 안에 text·table·cell·relation 객체 여러 개가 들어간다.

06 · ACCURACY PILOT

디지털은 Native,
텍스트가 없거나 희소하면 OCR이 우세했다.

앞에서 정의한 동일 평가단위와 Silver 정답으로 핵심 문자열을 채점했습니다. 아래 수치는 실험 설계를 검증한 파일럿이며, Human Gold 본실험의 최종 순위가 아닙니다.

입력 상태채점 단위Native·경량OCR구조형
디지털 PDF2쪽 · 15 anchors
Poppler14/15 · 93.3%
Tesseract6/15 · 40.0%
OpenDataLoader14/15 · 93.3%
Docling14/15 · 93.3%
Native text 없음 PDF4쪽 · 30 anchors
Poppler0/30 · 0.0%
PaddleOCR25/30 · 83.3%
Tesseract21/30 · 70.0%
PP-Structure25/30 · 83.3%
Native text 희소 PDF5쪽 · 33 anchors
Poppler6/33 · 18.2%
PaddleOCR28/33 · 84.8%
Tesseract18/33 · 54.5%
PP-Structure28/33 · 84.8%
TIFF7프레임 · 55 anchorsN/A
PaddleOCR42/55 · 76.4%
Tesseract25/55 · 45.5%
PP-Structure42/55 · 76.4%
HWP 원본6구간 · 39 anchors
HWP Native29/39 · 74.4%
N/A
syhwp33/39 · 84.6%
01

디지털 PDFOCR로 다시 읽을 이유가 없었습니다. Native가 더 빠르고 93.3%를 기록했습니다.

02

텍스트 없음·희소 PDFNative 단독은 0.0%·18.2%, Paddle 계열은 83.3%·84.8%였습니다.

03

HWP·TIFF원본 구조와 이미지 좌표의 차이를 보존해야 같은 축에서 정직하게 비교됩니다.

07 · POLICY PILOT

파서뿐 아니라,
파서를 고르는 규칙도 채점했다.

별도 Silver 12단위·88 anchors에서 저비용, 상태별 단일, 구조 보완 정책의 품질과 비용을 같이 봤습니다.

R0저비용 기준선68/88 · 77.3%

Native + Tesseract 중심

R1상태별 단일76/88 · 86.4%

형식·페이지 상태로 한 파서 선택

R2구조 보완82/88 · 93.2%

Docling 또는 PP-Structure+OCR 병합

가벼움구조 복원 강화
정책Object F1행·열 exactRelation F1순차 wallRSS 하한
R00.000 · N=20.000 · N=20.000 · N=226.230초156.9 MiB
R10.000 · N=20.000 · N=20.000 · N=245.415초2,300.8 MiB
R20.478 · N=120.250 · N=120.296 · N=12164.793초2,972.4 MiB

R0·R1의 구조 지표는 적용 단위가 2개뿐입니다. R2의 N=12와 구조 점수를 직접 순위화하지 않습니다. R0·R1은 기존 실행 선택 simulation입니다.

08 · PP → VLM ABLATION

VLM의 이득은 전체 페이지가 아니라,
검출된 표 안에서 났다.

사람이 자른 표나 정답 bbox는 쓰지 않았습니다. PP-Structure가 표를 찾고, 검출된 영역만 VLM으로 다시 읽어 기존 결과와 병합했습니다.

원본24 units
자동 검출7 units · 10 crops
VLM 재인식10 raw outputs
결정적 병합24 B1 common
선택 셀 행·열+문자
22.4%
34.2%
표 topology exact
1/6
2/6

병목은 VLM보다 표 검출입니다. 검출된 표의 셀은 좋아졌지만 표 검출 8/13과 관계 F1은 개선되지 않았습니다.

조건Anchor표 검출Object F1CellTopologyRelation
전체 렌더 VLM Spotting108/172 · 62.8%N/A0.0%0/76 · 0.0%0/6 · 0.0%0.0%
PP-Structure 단독146/172 · 84.9%8/13 · 61.5%25.6%17/76 · 22.4%1/6 · 16.7%4.2%
자동 PP bbox → VLM → 병합146/172 · 84.9%8/13 · 61.5%25.6%26/76 · 34.2%2/6 · 33.3%3.8%

Spotting의 구조 점수 0은 모델 일반 능력의 0점이 아니라 text-span만 내는 현재 출력 계약의 결과입니다.

09 · OPERATIONS PILOT

프로세스 성공과
쓸 수 있는 출력은 다르다.

처리시간과 메모리는 정확도와 분리했습니다. 페이지·프레임·section은 작업량이 달라 서로 다른 행의 속도를 종합 순위로 비교하지 않습니다.

cold 단발392tasks / 121 inputs
process success390명령 실행 성공
usable output354내용이 있는 공통 출력
warm 반복111/11137 units × 3회
입력파서usablewall p50 / p95RSS p50 / p95
디지털 PDFPoppler29/300.130 / 0.155초16.8 / 17.6 MiB
디지털 PDFDocling29/309.921 / 15.660초1,136.3 / 1,352.2 MiB
텍스트 없음 PDFTesseract28/303.406 / 6.048초143.1 / 152.1 MiB
텍스트 없음 PDFPaddleOCR28/307.316 / 8.525초2,190.7 / 2,231.2 MiB
텍스트 없음 PDFPP-Structure28/3011.422 / 15.220초2,859.1 / 2,918.3 MiB
TIFFTesseract30/303.379 / 5.632초144.9 / 154.4 MiB
HWPHWP Native30/300.092 / 0.256초18.7 / 27.8 MiB
HWPsyhwp30/300.120 / 0.420초19.3 / 26.7 MiB
30.689 → 2.514초MinerU Pipeline cold 대비 steady warm p50, 12.21배 차이
20.722쪽/분60쪽 직렬 warm E2E, common 60/60 유효
0/30 usable텍스트 없음 PDF에서 Poppler는 실행됐지만 내용은 비어 있음

운영 수치는 파일럿 조건의 관측값이며 서비스 SLA, 동시 처리량, 전체 코퍼스 완료시간을 뜻하지 않습니다.

10 · COMMON SCHEMA

결과를 평문으로 뭉개지 않고,
객체와 출처 계보를 함께 저장한다.

파서마다 JSON 모양과 좌표계가 달라도 raw를 보존하고 adapter로 common-v2에 매핑했습니다. 공통화가 원문에 없는 의미를 새로 만들지는 않습니다.

runparser · version · timing
documentunitobject
cellrelation
provenancesource · derived_from
warningpartial · bbox limitation
파서 고유 rawPoppler · bbox-XHTML
<word xMin="118" yMin="84" xMax="176" yMax="101">공사명</word>
adapter
공통 출력common-v2 JSON
{
  "unit": { "kind": "page", "index": 6 },
  "objects": [{
    "type": "text_line", "text": "공사명",
    "location": { "space": "pdf_point", "bbox": [118,84,176,101] }
  }],
  "run": { "parser": "poppler_native" }
}

실제 실행 출력과 연구원 제공 상용 JSON에서 구조가 드러나는 부분만 비식별·축약했습니다.

선택된 예시: Poppler · bbox-XHTML
COMMERCIAL REFERENCE

상용 2종도 같은 공통 명세에 매핑한다.

제공받은 10개 입력의 JSON 69건을 구조 검증했습니다. 사이냅은 페이지 중심, 한컴은 문서 중심 출력이지만 object·text·bbox·cell을 공통 객체로 투영할 수 있었습니다.

공통 항목사이냅 도큐애널라이저한컴 데이터로더명세 분류
페이지·객체·텍스트·bbox지원지원공통 필수
표 셀 행·열·병합부분 지원HWP 지원 · PDF 미관측조건부
수식 기계판독 표현MathML · PDF 부분HWP script · PDF 미관측조건부
캡션과 대상 연결미관측미관측선택·추가 추론
도면 의미 필드미관측미관측건설 특화
처리시간·메모리제공값 없음제공값 없음별도 운영실험
사이냅페이지별 JSON 44건type · level · boundbox · contents · MathML
한컴JSON 25건 · PNG 80건category · content · bbox · pageIndex · clientInfo
평가 원칙출력항목 매핑에 포함동일 Gold·실행 로그가 없어 정확도·속도 순위에서는 제외
39공통 필드필수 8 · 조건부 16 · 선택 10 · 건설특화 5
21설정 트랙parser × configuration × input
819매핑 행지원 317 · 부분 88 · 미관측 341 · N/A 73
244 / 270DB 적재계약 위반 26건 격리

DB 적재는 구조를 저장할 수 있다는 뜻입니다. 값 정확도나 파서 우위를 뜻하지 않으며, 미관측도 곧바로 제품 미지원은 아닙니다.

11 · TASK OUTPUTS

조사표, 성능표, 라우팅안과 스키마 명세가 하나의 근거 사슬로 이어진다.

과업 1기술 현황·파서 선정표

방법군별 역할과 지원 형식, 출력항목, 실행조건을 비교해 본실험 후보를 확정합니다.

과업 2정확도·운영성 결과표

동일 Gold 채점과 반복 실행 로그를 분리해 문서 상태별 성능과 한계를 제시합니다.

과업 3권장 조합·공통 스키마

성능이 좋은 경로를 선택하고 상용 2종을 포함한 모든 출력을 공통·조건부 필드로 매핑합니다.

파일럿으로 확인

상태별 라우팅 필요성, 표 영역 VLM 보완 효과, 공통 DB 적재 가능성

아직 미확정

범용 1등 파서, HWPX 순위, 상용 정확도, Human Gold 최종 성능, 운영 SLA

모든 정확도는 단일 검토자 Silver 파일럿입니다. HWPX는 1건이라 정확도 집계에서 제외했습니다. 객체·관계 라벨은 대표 항목 진단용이며, 2인 Human Gold 작성과 제3자 조정은 아직 시작 전입니다.