PDF 표 추출 정확도를 높이는 법 — PyMuPDF4LLM 1.28
태그: pymupdf4llm, pdf, table-extraction, rag, llm
카테고리: 읽을거리&정보공유
표 추출, 이제 훨씬 정확하고 빨라집니다.
문서에서 데이터 뽑아보신 분들은 아실 텐데, 표(table)만큼 골치 아픈 게 없습니다. 셀은 삐뚤빼뚤하고, 병합된 셀도 있고, 줄바꿈까지 섞여 있으면 정말 답이 없습니다.
PyMuPDF4LLM 1.28이 바로 이 문제를 정면으로 다뤘습니다. 기본값인 Layout 모듈에서 표 추출 기능이 대폭 개선됐거든요. 문서 인텔리전스 분야에서 손꼽히게 까다로운 문제인 만큼, 이번 업데이트는 꽤 의미가 큽니다.
뭐가 바뀌었나
PyMuPDF4LLM 1.28은 이제 이런 순서로 표를 처리합니다.
- 표 바운딩 박스 감지 — 기존에도 하던 거지만, 정확도가 한층 올라갔습니다
- 표 구조 감지 — 행 나누기, 열 나누기, 셀 그리드까지 다시 짜맞춥니다
- Layout 모듈 안에서 한 번에 처리 — 표 구조 파악이 이제 전체 레이아웃 분석 과정에 자연스럽게 녹아들었습니다
왜 중요한가
표 추출이 정확해지면 이런 작업들이 다 같이 좋아집니다.
- LLM에 넣을 데이터 만들 때
- RAG 파이프라인 돌릴 때
- 금융·과학 문서처럼 표가 많은 문서 다룰 때
- 컴플라이언스·감사 자료 처리할 때
- 데이터 추출하고 분석할 때
표 구조를 얼마나 정확하게 뽑아내느냐에 따라 이후 모델 성능이 크게 달라집니다.
직접 비교해보면 확실합니다
예전 로직은 표 내부 구조를 완벽하게 못 잡아내는 경우가 꽤 있었어습니다. 열 구분선이 통째로 빠지거나, 반대로 셀을 너무 잘게 쪼개서 인식하는 바람에 문맥이 뚝뚝 끊기던 경우도 있었습니다.
아래는 반대 케이스입니다. 예전 로직이 오히려 너무 잘게 쪼개서 셀을 인식하는 바람에 문맥이 뚝뚝 끊기던 경우가 있었는데요.
위 결과를 보시면 셀 경계를 훨씬 자연스럽게 잡아내서, 표의 열 헤더가 이제 흐트러지지 않고 일관되게 뽑힙니다. 두 예시 모두 PyMuPDF4LLM 1.28의 새 Layout 모듈이 복잡한 표를 예전보다 훨씬 꼼꼼하게 다룬다는 걸 보여줍니다.
사용법
기존에 쓰던 API를 그대로 쓰시면 됩니다. 별도로 호출할 함수가 늘어난 게 아니라, 내부의 Layout 모듈이 알아서 개선된 결과를 돌려주는 방식이에요.
md = pymupdf4llm.to_markdown("doc.pdf")
json = pymupdf4llm.to_json("doc.pdf")
txt = pymupdf4llm.to_text("doc.pdf")
문서 안에 표가 있다면 결과물에도 그 구조가 그대로 살아있을 겁니다.
정리
RAG 파이프라인에서 표가 깨져서 들어가면 그 뒤 검색·답변 품질까지 같이 흔들리는 경우가 많은데, 이번 업데이트는 그 앞단(추출 단계)의 정확도를 끌어올린 케이스라 공유드립니다. 코드를 바꿀 필요 없이 라이브러리만 올리면 적용되는 부분이라 부담 없이 시도해보셔도 좋을 것 같습니다.
참고로, 스캔 문서나 Office 파일까지 포함해서 더 복잡한 문서 파싱이 필요하시거나, 상용 목적의 사용이 필요하시다면 PyMuPDF Pro를 검토해보시길 바랍니다.

