· kaynak Hacker News – Front Page (native)
papero: Yalnızca CPU ile çalışan PDF parser, ML modeli olmadan tabloları, formülleri ve yerleşimi kurtarıyor
papero adlı açık kaynak bir parser, PDF okuma düzenini, tabloları, formülleri ve blok bazlı bounding box'ları yalnızca geometriyi kullanarak yeniden oluşturuyor — ML modeli yok, yalnızca CPU — Python'da, tarayıcıda veya Docker API olarak çalışıyor.
GPU olmadan geometri tabanlı PDF çıkarma
papero adlı açık kaynak bir proje, Hacker News'in ön sayfasında belge pipeline'ı kuran herkes için çekici bir vaatle ortaya çıktı: Bir PDF'in yapısını — okuma düzenini, tabloları, formülleri, şekilleri ve her bloğun konumunu — yalnızca geometriyi kullanarak, ML modeli ve GPU olmadan bir dizüstü CPU'sunda yeniden oluşturmak. Depo (beatrizalmeidaf/papero-pdf-text-extractor) MIT lisanslı ve Python kütüphanesi, CLI, Docker üzerinde barındırılan REST API olarak ya da tamamen tarayıcı içinde çalışabiliyor.\n Projenin README'sine göre çözülen sorun metin çıkarma değil, yapı kurtarma. Bir PDF'ten karakterleri almak kolaydır; hangi sütunun önce okunacağını, hangi satırların bir tablo oluşturduğunu ve bir formülün nerede durduğunu bilmek ise çıktıyı RAG, arama ve LLM alımı için kullanılabilir kılan şeydir.
Nasıl çalışıyor
İki motor dosyayı paralel olarak işler. PDFium üzerine kurulu bir yerleşim motoru her glifi konumu, fontu ve boyutuyla, ayrıca kurallar ve görsellerle birlikte okur; ardından sütun farkındalıklı bir XY-cut algoritması kullanarak sütunları, tabloları, formülleri, listeleri ve şekilleri yeniden oluşturur. Apache Tika ise metadata, etiketli PDF başlık tespiti, Tesseract üzerinden OCR ve DOCX, PPTX, XLSX, EPUB ve HTML gibi PDF olmayan formatların ayrıştırılmasını sağlar; tika=False seçeneği yerleşim motorunu Java olmadan tek başına çalıştırır.
Tarayıcı uygulaması, pdf.js üzerinde çalışan aynı algoritmanın JavaScript portudur ve projenin CI'ı Python ile tarayıcı motorlarının blok blok uyuştuğunu denetler — bu, iki uygulama arasındaki sessiz sapmaya karşı yararlı bir güvencedir.
Birkaç uç durum açıkça ele alınıyor: LaTeX tarafından üretilmiş PDF'lerde ayrı glifler olarak çizilen aksanlı karakterler yeniden birleştiriliyor, form üreteçlerinin kullandığı görünmez beyaz metin atılıyor ve taranmış sayfalar OCR'dan geçiriliyor (Tesseract, Docker imajında yer alıyor ve varsayılan olarak Portekizce ile İngilizce destekliyor).
Çıktılar ve arayüzler
Her blok tiplendirilmiş durumda — başlık, paragraf, liste öğesi, tablo, şekil, formül, açıklama, kod — ve puan cinsinden bir bounding box taşıyor; üstbilgiler, altbilgiler ve sayfa numaraları ise gövde metninden ayrı tutuluyor. Formüller kesirler, kökler, üstel ifadeler ve indisler için yaklaşık LaTeX olarak geri geliyor, ayrıca bir yedek olarak kırpılmış bir PNG veriliyor; şekiller açıklamaları, eksen etiketleri ve lejantlarla birlikte tutularak PNG'ye kırpılıyor; çizgili, kenarlıksız ve booktabs tarzı tablolar satır ve sütunlar halinde geri geliyor, CSV veya Excel'e aktarılabiliyor.
Geliştiriciler pip ile kuruyor (paketin adı papero-extract ve pdf_text_api olarak içe aktarılıyor) ve Python bağlamaları, bir pdf-text-api CLI'sı, POST /v1/extract uç noktası sunan bir docker compose yığını ve 8000 portunda bir tarayıcı uygulaması elde ediyor. Tarayıcı sürümü dosyaları yerel olarak işliyor, yani hassas PDF'ler hiçbir zaman makineden çıkmıyor; ayrıca Python yolu üzerinden henüz mevcut olmayan Word ve Excel dışa aktarımını da kapsıyor.
Benchmark'lar ve belirtilen sınırlar
Projenin kendi benchmark'ı — birden fazla sütun, formül, tablo ve şekil içeren 54 yoğun arXiv makalesi üzerinde koşulan — sıfır hata bildiriyor ve GPU'suz bir dizüstü CPU'da sayfa başına medyan 39 ms değerini veriyor. Karşılaştırma tablosu papero'yu PyMuPDF, pdfplumber, pypdf, Docling ve Marker ile konumlandırıyor: bu kümede tamamen tarayıcıda çalışan tek araç ve Docling ile Marker'ın aksine PyTorch'a ihtiyaç duymuyor; PyMuPDF AGPL ve Marker GPL lisanslı, ikisi de ticari ürünlere gömmek için zor lisanslar.
Sınırlamalar bölümü alışılmadık derecede spesifik. Matematik glifler ve çizgilerden yeniden oluşturulduğu için matrisler, hizalanmış denklem sistemleri ve iç içe yapılar doğrusallaştırılmış olarak çıkıyor ve kırpılmış görsel her zaman ekleniyor. Çok dar sütun aralıklarına sahip kenarlıksız tablolar düz metin olarak yanlış okunabiliyor. Word dışa aktarımı her PDF sayfasını kendi sayfasına sabitliyor ve birkaç satır fazladan bir sayfaya taşabiliyor. README ayrıca ML tabanlı araçların çok düzensiz yerleşimlerde ve karmaşık matematikte hâlâ önde olduğunu kabul ediyor.
Neden önemli
RAG ve LLM pipeline'ları için belge alımı, GPU ve büyük model indirmeleri varsayan ağır ML yığınlarına doğru kaydı. papero buna bir karşı örnek: etkileşimli kullanım için yeterince hızlı, CPU dostu, izin veren bir lisansla ve tarayıcıda çalıştırıldığında gizliliği koruyan. Blok bazlı bounding box'lar da yerleşimin ötesinde önemli — retrieval sistemlerinin bir pasajın sayfadaki tam konumunu göstermesine olanak tanıyor ve bu, temellendirilmiş yanıtlar için küçük ama önemli bir yapı taşı. Çoğunlukla yıpranmış taramalar yerine makaleler, raporlar ve sözleşmeler gibi iyi biçimlendirilmiş belgeleri işleyen geliştiriciler için, neyi yapamayacağına dair net bir listesi olan geometri öncelikli bir araç çoğu zaman daha güvenilir bir seçimdir.
- #open-source
- #document-processing
- #rag
- #developer-tools
İlgili yazılar
- GitButler yazısı, Git 3.0'ın varsayılan SHA-256 geçişini getirisine kıyasla maliyetli bir değişiklik olarak nitelendiriyor
- Herkese açık 7.749 MCP tool manifesti tarandı: üçte biri riskli tool eşleşmeleri nedeniyle engellendi
- AWS, TypeSafe'ın Jev'inden esinlenen küçük bir karar modeli olan Strands Decider 2B'yi açık kaynak yaptı