Docling 라이브러리 적용
YOLOv11 및 PyMuPDF를 이용한 PDF 문서 추출 파이프라인은 대체로 양질의 결과물을 냈지만, 추출한 텍스트를 문서 구조 상 자연스럽게 읽히도록 정렬하고 제목과 본문과 테이블등을 마크다운으로 구조화하는 작업은 여전히 개발자의 몫이였다.
또 기존의 파이프라인은 poppler라는 파이썬과 별개의 패키지에 의존하고 있으며, 사전학습 모델 파일도 직접 관리해야하기에 프로젝트 관리 측면에서 불편함이 있었다.
이러한 모든 귀찮은 작업들을 한방에 해결해줄, 문서 분석만을 위해 만들어진 올인원 패키지가 분명 어딘가에 있을것이라는 생각이 들어서 조사해보았다. 그리고 Docling이라는 매우 훌륭한 오픈소스 패키지를 발견하였다.
Docling
Docling은 IBM Research가 개발한 만능 문서 분석 프레임워크이다. 내부적으로 DocLayNet으로 학습된 레이아웃 분석 모델을 사용하며, 후처리 단계에서 문서 구조에 맞에 읽기 순서를 추론해 레이아웃을 정렬하는 과정을 포함한다.
또 Docling은 pip install docling으로 간단히 설치해 사용할 수 있다. 모델 파일이 필요하지만 HuggingFace에서 자동으로 다운로드 하므로 개발자는 코드만 작성하면 된다.
Docling은 PDF와 MS 문서, HTML등을 지원하며 각각 다른 파이프라인에 의해 처리된다. 파이프라인은 분석, 취합 과정을 거쳐 최종적으로 Docling Document 형식으로 변환되는데, docx나 pptx, html등은 구조가 정의된 문서이기에 Simple Pipeline으로 간단히 처리된다.
하지만 PDF는 구조가 존재하지 않는 문서로 OCR, 레이아웃 분석, 테이블 구조화와 같은 여러 단계에 의해 처리된다.

Docling 초기화 코드
Docling 문서 분석 코드
분석 결과
원본 PDF 페이지
