피드로 돌아가기
Dev.toFrontend
원문 읽기
Visual Heuristics를 배제한 Operator Stream 기반의 결정론적 PDF 구조 추출
Stop Parsing PDFs at Render Time: A Better Architecture for Structured Extraction
AI 요약
Context
대부분의 PDF 추출 도구가 Rendered Visual Output의 픽셀 근접도에 의존해 문서 구조를 추론하는 역방향 설계를 채택함. 이로 인해 줌 레벨이나 렌더링 엔진 설정에 따라 결과가 변하는 비결정론적(Non-deterministic) 데이터 추출 문제 발생.
Technical Solution
- Render-time Parsing을 제거하고 PDF Operator Stream을 직접 분석하는 정방향 아키텍처로 전환
- CTM(Current Transformation Matrix) Stack 및 Matrix State 추적을 통한 정확한 좌표계 및 변환 상태 관리
- Bezier Bounding Box 계산 시 재귀적 Subdivision 대신 Quadratic Formula를 적용한 분석적 해법(Analytical Solution)으로 정확도 확보 및 연산 최적화
- Zone Boundary 판정 시 기하학적 중간 지점(Midpoint) 휴리스틱을 폐기하고 Region의 Top Edge(bbox.y) 기준의 구조적 판정 로직 도입
- Subpath를 RECT와 FREE_PATH로 기하학적으로 분류하여 단순 좌표 튜플이 아닌 Provenance가 포함된 Canonical Segment 생성
실천 포인트
- PDF 구조 분석 시 getTextContent()와 같은 상위 API 대신 Operator Stream 직접 파싱 검토 - 시각적 유사성에 기반한 휴리스틱(Heuristics) 대신 명세서(Spec) 기반의 결정론적 알고리즘 적용 - 렌더링 배율(Scale Factor) 변화에도 결과값이 동일하게 유지되는지 검증하는 Determinism 테스트 수행 - 근사치 계산(Approximation) 알고리즘 채택 전 분석적 해법(Analytical Solution) 존재 여부 확인