🔍 Docling으로 논문에서 Figure를 추출할 때 자주 묻는 질문 (Q&A)
최근 PDF 기반 논문에서 유의미한 정보를 효과적으로 추출하고, Retrieval-Augmented Generation(RAG) 시스템에 통합하는 방법에 대해 많은 관심이 높아지고 있습니다. 특히 의학 연구 논문에서는 figure에 중요한 데이터가 포함되어 있어, 단순한 텍스트 중심의 접근만으로는 정보 누락이 발생하기 쉽습니다.
이에 따라 Docling 프로젝트는 PDF에서 표(table), 그림(figure) 등을 자동으로 추출하고 구조화된 데이터로 저장하는 기능을 제공합니다.
본 글에서는 Docling의 figure 추출 기능에 대해 직접 실험하고 고민했던 내용을 Q&A 형식으로 정리합니다. 실무 적용이나 RAG 파이프라인 구축 시 참고하시기 바랍니다.
✅ Q1. Docling의 figure 추출 기능은 어떤 구조로 작동하나요?
A. Docling은 PictureItem
, TableItem
등으로 PDF 내의 시각 요소를 탐지하고, 각각의 그림과 표를 이미지로 추출할 수 있는 기능을 제공합니다. 주요 흐름은 다음과 같습니다:
for element in conv_res.document.iterate_items():
if isinstance(element, PictureItem):
# element.get_image()로 그림 저장
추출된 결과는 .png
이미지로 저장되며, 아래와 같은 마크다운/HTML 파일로도 자동 출력할 수 있습니다:
document-with-images.md
(이미지를 base64로 포함)document-with-image-refs.md
(이미지 파일을 링크로 참조)document-with-image-refs.html
(HTML로 구성)
📌 예제 및 전체 코드 구조는 Docling 공식 페이지의 Export Figures Example에서 확인할 수 있습니다.
✅ Q2. 논문에서 figure의 caption(설명) 정보는 함께 추출되나요?
A. 현재 기본 Docling 기능으로는 caption 텍스트까지는 자동 추출되지 않습니다. 그림은 잘라서 이미지로 저장되지만, 그림 아래쪽에 있는 "Figure 3. Kaplan-Meier survival curve..."
같은 설명 텍스트는 누락됩니다.
이는 특히 의학 논문에서 문제를 유발할 수 있는데, 이유는 다음과 같습니다:
- figure는 데이터를 시각화하지만, 해석은 caption에 담겨 있음
- 본문에는 없는 정보가 caption에만 명시되는 경우도 많음
- 따라서 RAG 시스템에서 정확한 context 연결이 어려움
✅ Q3. figure와 caption을 어떻게 함께 저장하면 좋을까요?
A. 가장 실용적인 방식은 **"figure 이미지와 caption 텍스트를 함께 마크다운 구조로 저장"**하는 것입니다. 예시는 아래와 같습니다:
### Figure 1

*Figure 1: Dose-response curve of Docetaxel in breast cancer cell lines.*
이 방식은 다음과 같은 이점을 가집니다:
장점 | 설명 |
---|---|
의미 단위 유지 | 이미지 + caption이 하나의 chunk로 구성됨 |
RAG에서 효과적 | embedding 및 유사도 검색 시 정확도 향상 |
LLM-friendly | 질의응답 시 "Figure 1에 따르면..." 과 같은 질문 처리에 적합 |
전처리 통합 가능 | 본문 텍스트와 함께 .md 로 저장하여 통일된 pipeline 구성 |
향후 Docling 내부 코드(PictureItem
핸들링)에서 figure 위치의 아래쪽 텍스트를 caption으로 자동 추출하도록 확장하면, 이 구조를 자동화할 수 있습니다.
✅ Q4. embedded
방식과 referenced
방식 중 어떤 게 나을까요?
A. embedded
방식은 이미지가 base64로 마크다운에 포함되기 때문에 시각화는 편하지만, 검색 및 RAG chunking에는 비효율적입니다. 반면 referenced
방식은 외부 이미지 링크를 사용하고, 그 아래 caption 텍스트를 함께 작성하면 텍스트 기반 검색 및 retrieval에 유리합니다.
따라서 **"referenced + caption 포함 마크다운 저장"**이 가장 RAG 최적화된 방식입니다.
🧩 마무리 요약
목적 | 권장 방식 |
---|---|
논문 figure 추출 | Docling PictureItem.get_image() 사용 |
caption 추출 | 레이아웃 기반 OCR 또는 주변 텍스트 박스 인식 |
저장 형식 | Referenced .md 파일 + caption 포함 |
RAG chunking | 이미지와 caption을 하나의 chunk로 묶어서 처리 |
확장 개발 | Docling 코드 내 PictureItem 에 caption 추출 추가 가능 |
📌 관련 링크:
도움이 되었기를 바랍니다!
'앱개발' 카테고리의 다른 글
[데이터마이닝] PubMed에 대한 새로운 관련성 검색- Best Match (1) | 2025.05.22 |
---|---|
LangGraph를 활용한 고급 RAG 아키텍처 (1) | 2025.05.11 |
📘 RAG에서 문서 청크와 KV 캐시, 벡터 임베딩은 어떻게 다를까? (0) | 2025.04.19 |
PDF parser - LLamaparse 대안 오픈소스는? (0) | 2025.04.02 |
Streamlit vs Shiny for Python: LLM 에이전트 개발에 더 유연한 선택은? (0) | 2025.04.02 |