티스토리 뷰

표 추출, 이제 훨씬 정확하고 빨라집니다

문서에서 데이터 뽑아보신 분들은 아실 텐데, 표(table)만큼 골치 아픈 게 없습니다. 셀은 삐뚤빼뚤하고, 병합된 셀도 있고, 줄바꿈까지 섞여 있으면 정말 답이 없거든요.

PyMuPDF4LLM 1.28이 바로 이 문제를 정면으로 다뤘습니다. 기본값인 Layout 모듈에서 표 추출 기능이 대폭 개선됐습니다. 문서 인텔리전스 분야에서 손꼽히게 까다로운 문제인 만큼, 이번 업데이트는 꽤 의미가 큽니다.

뭐가 바뀌었나요?

PyMuPDF4LLM 1.28은 이제 이런 순서로 표를 처리합니다.

  1. 표 바운딩 박스 감지 — 기존에도 하던 거지만, 정확도가 한층 올라갔습니다
  2. 표 구조 감지 — 행 나누기, 열 나누기, 셀 그리드까지 다시 짜맞춥니다
  3. Layout 모듈 안에서 한 번에 처리 — 표 구조 파악이 이제 전체 레이아웃 분석 과정에 자연스럽게 녹아들었습니다

왜 중요할까요?

표 추출이 정확해지면 좋은 게 한둘이 아닙니다.

  • LLM에 넣을 데이터 만들 때
  • RAG 파이프라인을 돌릴 때
  • 금융·과학 문서처럼 표가 많은 문서 다룰 때
  • 컴플라이언스·감사 자료 처리할 때
  • 데이터 추출하고 분석할 때

표 구조를 얼마나 정확하게 뽑아내느냐에 따라 이후 모델 성능이 크게 달라집니다.

직접 비교해보면 확실합니다

예전 로직은 표 내부 구조를 완벽하게 못 잡아내는 경우가 꽤 있었어요. 이미지 왼쪽을 보면 열 구분선이 통째로 빠져있는 게 보이실 텐데, 오른쪽은 같은 표를 그리드까지 온전히 인식한 결과입니다.

아래는 반대 케이스입니다. 예전 로직이 오히려 너무 잘게 쪼개서 셀을 인식하는 바람에 문맥이 뚝뚝 끊기던 경우가 있었는데요.

위 결과를 보시면 셀 경계를 훨씬 자연스럽게 잡아내서, 표의 열 헤더가 이제 흐트러지지 않고 일관되게 뽑힙니다.

두 예시 모두 PyMuPDF4LLM 1.28의 새 Layout 모듈이 복잡한 표를 예전보다 훨씬 꼼꼼하게 다룬다는 걸 보여줍니다.

사용 방법

좋은 소식은, 여러분이 코드를 새로 배울 필요가 없다는 겁니다. 기존에 쓰던 PyMuPDF4LLM API 그대로 쓰시면 됩니다. 별도로 호출할 함수가 늘어난 게 아니라, 내부의 Layout 모듈이 알아서 더 나은 결과를 돌려주는 방식이에요.

md = pymupdf4llm.to_markdown("doc.pdf")
json = pymupdf4llm.to_json("doc.pdf")
txt = pymupdf4llm.to_text("doc.pdf")

문서 안에 표가 있다면, 결과물에도 그 구조가 그대로 살아있을 겁니다. 혹시 제대로 동작하지 않는다면, PyMuPDF 포럼에 알려주세요!

마무리

PyMuPDF4LLM 1.28은 오랫동안 준비해온, AI 시대에 맞춘 묵직한 업데이트입니다. 이번 표 추출 개선도 그 연장선인데, 앞으로도 릴리즈마다 조금씩 더 나은 결과를 내놓겠다는 방향성이 이어지고 있는 것 같습니다.

👉 PyMuPDF4LLM Github 바로가기

👉 PyMuPDF4LLM PyPI 바로가기


🎉 Happy Coding! 🙂

PyMuPDF에 대해 더 궁금하시다면, 이파피루스 홈페이지를 방문해주세요!

👉 문서 데이터 추출 파이썬 라이브러리 PyMuPDF Pro