Firecrawl 열린 pdf-inspector: PDF in Markdown(밀리초), OCR 없음
웹사이트에서 데이터를 추출하는 도구를 만드는 Y Combinator의 스타트업인 Firecrawl는 pdf-inspector의 소스를 공개했습니다. 이 Rust 라이브러리는 앞에 있는 텍스트가 PDF인지 스캔인지를 밀리초 단위로 결정하고 텍스트 문서를 OCR가 전혀 없는 순수한 Markdown로 변환합니다. 팀의 추정에 따르면 실제 문제의 PDF 중 약 54%가 텍스트 기반이며 느리고 비용이 많이 드는 OCR를 통해 실행하는 것은 전혀 의미가 없습니다.
신경망 PDF(계약서, 보고서, 책)을 입력해 본 적이 있다면 다음과 같은 느낌을 아실 것입니다. 파일이 열리는 것처럼 보이지만 파일의 텍스트가 복사되지 않거나 죽으로 복사됩니다. 클래식 파서는 테이블을 질식시키거나 각 페이지를 OCR까지 실행하여 몇 초와 돈을 낭비합니다. pdf-inspector는 바로 이 문제를 해결합니다. 먼저 파일이 어떤 종류인지 빠르게 확인하고 실제 스캔인 경우에만 OCR 연결합니다.
먼저 분류한 다음 추출
한 번의 패스에서 라이브러리는 PDF를 TextBased, Scanned, ImageBased 또는 Mixed의 네 가지 유형 중 하나에 할당하고 0에서 1까지의 신뢰도와 페이지 경로(텍스트로 읽을 항목, OCR로 보낼 항목)를 제공합니다. 분류에는 10~50밀리초가 걸립니다. 다음으로 텍스트 페이지의 경우 좌표, 글꼴, 읽기 순서로 추출하여 제목, 목록, 표, 링크가 포함된 Markdown이 출력됩니다.
인상적인 숫자
200개 PDF pdf-inspector 중 opendataloader-bench에서 0.47초 만에 전체 케이스를 분해했습니다. 비교를 위해: pymupdf4llm - 17초, markitdown - 16초. 동시에 품질 면에서도 가장 높습니다. 전체 점수는 pymupdf4llm의 경우 0.735, markitdown의 경우 0.589에 비해 0.875입니다. 0.814와 0.401 및 0.273이 테이블을 훨씬 더 잘 인식합니다.
그는 또 무엇을 할 수 있나요?
다중 열 신문 레이아웃, 오른쪽에서 왼쪽 텍스트, CID 글꼴, 손상된 인코딩 감지. 별도로 - 선택적 OCR: 개별 스캔 페이지가 PDF에 걸린 경우 전체 문서가 아닌 OCR, 로컬, PP-OCRv6 Small을 통해서만 실행할 수 있습니다.
문제는 어디에 있습니까?
솔직히 말해서, 문서의 실제 스캔과 사진의 경우 OCR가 여전히 필요하며 여기서 pdf 검사기는 마술이 아닙니다. 필요하지 않은 것에 OCR를 쓰지 않습니다. 수식과 레이아웃이 텍스트와 혼합되어 있는 복잡한 레이아웃도 작동할 수 있습니다. 그리고 이것은 기성 서비스가 아닌 라이브러리입니다. 이를 사용하려면 약간의 코드를 작성해야 합니다.

Python, Node.js 및 브라우저 기반 WASM에 대한 바인딩이 있습니다. 동일한 Rust 파서는 서버 없이 브라우저에서 직접 작동합니다. GitHub의 저장소는 이미 거의 17,000개의 별을 얻었습니다. 신경망에서 PDF를 자주 사용한다면 한 번 살펴볼 가치가 있습니다.