-
PDF 파일에서 텍스트 추출은 예상보다 훨씬 어렵고, PDF는 본질적으로 그래픽 기반 파일 포맷임
- PDF 안의 글리프 위치 정보만 존재하고 의미론적 신호는 거의 없어 텍스트의 식별과 재구성이 까다로운 상황임
- 검색 엔진에서는 HTML 형태의 깔끔한 입력을 요구하지만, 기존 오픈소스 도구들은 제목이나 문단 등 구조적 정보 추출에 한계가 있음
-
머신러닝 기반 비전 방식이 가장 정확하지만, 리소스와 성능 문제로 대규모 적용에 어려움이 있음
- 주요 개선책으로는 폰트 크기와 통계 기반의 제목·문단 식별 알고리듬을 도입해 추출 정확성을 높임
PDF에서 텍스트 추출의 도전
- 최신 검색 엔진은 PDF 파일 포맷을 인덱싱하는 기능을 갖추게 되었음
- PDF에서 정보 추출은 쉽지 않은 문제로, PDF가 원래 텍스트 포맷이 아닌 그래픽 포맷임에 기인함
- 실제 텍스트 대신 글리프가 좌표에 배치된 형태라서, 회전, 겹침, 순서 뒤섞임, 의미 정보 결여 등이 발생함
- 우리가 보통 생각하는 텍스트로서의 정보가 파일 내에는 직접 존재하지 않음
- PDF 뷰어에서 ctrl+f로 텍스트 검색이 가능하다는 것은 사실 놀라운 일임
검색 엔진의 요구와 기본 접근법의 한계
- 검색 엔진이 가장 선호하는 입력은 깨끗한 HTML 형식임
- 최신 머신러닝 기반 컴퓨터 비전 모델이 가장 좋은 성능을 보이지만,
- 대용량(수백 GB) PDF 파일을 GPU 없이 한 서버에서 처리하는 것은 비효율적임
- 다행히 이 분야가 완전히 미지의 영역은 아니어서,
-
PDFBox의 PDFTextStripper 클래스를 활용해 출발점으로 사용 가능함
- 하지만 제목 등 의미론적 구조 파악이 거의 되지 않음—문자열만 추출됨
제목 식별 알고리듬
제목 식별의 기본 원리
- 보통 제목은 세미볼드 혹은 더 굵직한 글씨가 고립되어 있음을 활용할 수 있음
- 굵게 처리되지 않은 제목도 흔해, 이 방법만으론 한계가 있음
- 많은 경우, 폰트 크기가 제목을 구분하는 기준이 됨
- 그러나 폰트 크기는 문서마다 전혀 다르고, 글로벌 임계치 사용이 불가능함
폰트 크기 통계 활용
- 각 페이지에는 대체로 지배적인 폰트 크기(본문) 가 존재함
- 1페이지(표지)는 서술적 내용 및 저자 정보가 있어 폰트 크기 분포가 다름
- 페이지별 폰트 크기 분포가 다르므로, 문서 전체가 아니라 페이지 단위 통계 활용이 효과적임
- 각 페이지의 중앙값 폰트 크기에 20% 가량 상향을 적용해 제목을 꽤 정확히 식별 가능함
여러 줄 제목의 병합 문제
- 스타일적 이유로 제목이 여러 줄로 나뉘기도 함
- 제목 병합 시점 판단은 간단하지 않으며, 두 줄 이상의 제목이나 저자명, 별도의 강조 텍스트가 혼재할 수 있음
- 병합 규칙:
-
동일한 폰트 크기와 굵기를 갖는 연속 줄을 합치는 것이 꽤 잘 동작
- 하지만 예외 상황 많이 존재—무분별한 병합은 엉뚱한 결과를 초래할 수 있음
문단 식별 개선
- PDFTextStripper는 줄 간격 및 들여쓰기에 기반해 문단을 식별함
- 라인별 구분 임계치를 고정 값으로 사용하므로, 문서마다 다른 줄 간격 적용에는 한계가 있음
- 특히 논문 초안/사전출판본에서는 1.5~2배 줄 간격도 흔함
- 임계값이 너무 크면, 제목이 본문에 포함되는 오류가 발생함
통계 기반 문단 구분
- 폰트 크기처럼, 라인 간격에 대해서도 통계처리를 적용
- 줄 사이 거리의 중간값(중앙값)을 활용해, 어떤 줄 간격이든 견고한 문단 구분이 가능함
결론
- PDF에서 텍스트를 추출하는 것은 근본적으로 완벽하지 못할 수밖에 없음
- PDF 포맷 자체가 그 용도에 맞게 설계되지 않았기 때문임
- 실제 구현에서는 타협이 필수이고, “충분히 괜찮은” 정도의 결과를 얻는 전략이 중요함
- 검색 엔진은 제목, 요약, 주요 구조적 단서 등 의미 있는 신호 추출에 집중함이 효율적임
참고 샘플 텍스트
- Can Education be Standardized? Evidence from Kenya (2022) - Working Paper
: Guthrie Gray-Lobe, Anthony Keats, Michael Kremer, Isaac Mbiti, Owen W. Ozier
- The theory of ideas and Plato’s philosophy of mathematics (2019)
: Dembiński, B.
- The role of phronesis in Knowledge-Based Economy (2024)
: Anna Ceglarska, Cymbranowicz Katarzyna