home
자바
home

OCR 변경 내역

1.
향후 DataBase에 insert 하기 위한 로직 추가
현재 문제점 : 추출 단계에서 to_csv / to_markdown 함수로 csv 파일 혹은 md 파일로 내려지고 있다.
향후 DataBase insert로 확장성을 높이기 위해 논리적 표 객체 리스트로 형태를 반환하도록 수정했다. 따라서 csv, md, DB insert 모두 추출된 논리적 표 객체 값을 매개변수로 받아 파일을 추출하거나 DB에 insert 처리 한다.
2.
연속 페이지 표를 “하나의 논리적 표”로 식별
왜 이런 일이 생기나 (개념): VLM은 페이지를 한 장씩 독립적으로 본다(vlm_pipeline.py:_process_single_page가 페이지 1장을 이미지로 인코딩해 호출). 따라서 "이 표가 앞 페이지 표의 뒷부분"이라는 페이지 경계를 넘는 맥락은 VLM이 원천적으로 알 수 없다. decision Step 5의 "Continued" 판정도 현재 페이지 안의 단서로 추정할 뿐이다. 게다가 설령 "Continued"로 맞혀도, post_processor.py:process_results는 PageResult마다 독립 DataFrame을 만들고 to_csv가 개별 파일로 써서 합치는(같은 표로 보는) 코드가 없다.
해결 방향 (사용자 확정): "표를 합친다(merge)"가 아니라, 모든 페이지 결과가 한곳에 모이는 PostProcessor에서 '같은 논리적 표(같은 주제·같은 데이터)'로 식별한다. 출력 형식(CSV / 마크다운 / 향후 DB insert)은 이 식별 결과를 직렬화만 한다.
"같은 논리적 표" 판정 신호 (정확도순)
1. 기호 시퀀스 실연속성 (핵심 근거): 추출된 표의 기호(index) 열 값을 파싱해 이전 표 마지막 기호 + 1 == 현재 표 첫 기호이면 같은 표로 확정. 컬럼명이 PDF마다 다르므로 값 패턴으로 열 자동 탐지: 아라비아(1 / "1)" / "(1)"), 한글(가·나·다…), 원문자(①②③), 영문(A·B·C / a·b·c). 2. 헤더 동일성(보강): 정규화 헤더 집합이 이전 표와 동일/높은 중복도. 3. 페이지 인접성(보강): 현재 page == 직전 page + 1. 4. VLM 힌트(보조): table_title == "Continued" 또는 직전 표의 is_truncated == True(현재 미사용 필드) → 가산. 단독 결정 근거로는 안 씀. 판정 로직: 인접 + 헤더 일치 전제 하에 (기호 시퀀스 연속) 이면 같은 표. 기호 열이 없거나 파싱 불가하면 VLM "Continued" + 헤더 일치 + 인접을 폴백으로 사용.