PDF’yi Metne Dönüştürmek Zor Bir Sorun
(marginalia.nu)- Arama motoruna PDF indeksleme eklendi, ancak PDF’lerden aramada kullanılabilecek yapılandırılmış metin elde etmek, HTML işlemeye kıyasla çok daha zorlu
- PDF, bir metin belgesinden çok koordinat tabanlı bir grafik biçimine daha yakın; bu yüzden glifler döndürülmüş, üst üste binmiş veya sıraları karışmış halde yerleştirilebiliyor
- PDFBox’ın PDFTextStripper aracı bir başlangıç noktası olabilir, ancak başlık ve paragraf gibi anlamsal yapıları yeterince koruyamadığı için arama ilgililiğini değerlendirmede sınırlamalar yaratıyor
- Başlıklarla paragrafları ayırmak için belge geneli yerine sayfa bazlı yazı tipi boyutu istatistikleri ve satır aralığı medyanı gibi sezgisel yöntemler daha kullanışlı
- Kusursuz PDF metin çıkarımı zor olduğundan, arama motoru için başlık, özet ve gövde yapısını istikrarlı biçimde elde eden yeterince iyi bir çözüm daha gerçekçi bir hedef
PDF indeksleme eklenirken ortaya çıkan sorun
- Arama motoru artık PDF dosya biçimini indeksleyebiliyor ve değişiklikler birkaç ay boyunca dağıtıma çıkacak
- Arama motoru açısından temiz HTML en kolay işlenen biçim, ancak PDF aynı düzeyde yapılandırılmış metni doğrudan sunmuyor
- Dışarıdan metin görünse bile, PDF içinde aranabilir cümleleri ve paragrafları geri oluşturmak neredeyse ayrı bir problem
PDF neden metin çıkarmayı zorlaştırıyor
- PDF, tipik bir metin biçimi değil; daha çok grafik biçimine yakın
- İç temsili, cümle veya paragraflardan çok “kâğıt” üzerindeki koordinatlara gliflerin yerleştirilmesine benziyor
- Glifler şu durumlarda olabilir
- döndürülmüş
- birbirinin üstüne binmiş
- okuma sırasından farklı konumlandırılmış
- iliştirilmiş anlamsal bilgisi çok az
- PDF görüntüleyicisinde ya da tarayıcıda
ctrl+file arama yapılabilmesi başlı başına oldukça etkileyici - Görüntü tabanlı makine öğrenimi modelleri şu anda iyi bir yaklaşım olabilir, ancak GPU’suz tek bir sunucuda yüzlerce GB PDF işlenecek ölçekte uygun değil
PDFBox ile başlanabilir ama yeterli değil
- Bu tamamen keşfedilmemiş bir alan değil; PDFBox içindeki PDFTextStripper sınıfı başlangıç noktası olabilir
- PDFTextStripper, PDF’lerden metin çıkarıyor, ama adından da anlaşılacağı gibi odak noktası metni “soyup almak”
- Arama motorları için başlık gibi anlamsal bilgiler önemli bir ilgililik sinyali, ancak temel çıkarım sonucu tek başına bu tür yapıları yeterince vermiyor
Başlık bulmak için sezgisel yöntemler
- En basit başlık tespiti, diğer metinden ayrılmış semibold ya da daha kalın satırları bulmak
- Ancak her başlık kalın yazılmıyor; birçok belge başlıkları yazı tipi boyutuyla ayırıyor
- Küresel yazı tipi boyutu eşikleri belgeler arasında tutarsızlık gösterebiliyor
- bir belgede gövde metni 10pt, başlık 16pt olabilir
- başka bir belgede gövde metni 14pt, başlık 20pt olabilir
- Belge genelinden çok sayfa bazlı istatistikler daha uygun olabiliyor
- ilk sayfa, özet ve yazar listesi nedeniyle diğer sayfalardan çok farklı yazı tipi seçimleri içerebilir
- örnek belgede belge başlığında 17 punto, sonraki başlıklarda ise 14 punto yazı tipi kullanılıyor
- Her sayfada genellikle gövde metnine karşılık gelen baskın bir yazı tipi boyutu bulunuyor
- Sayfa bazlı medyan yazı tipi boyutuna yaklaşık %20’lik bir katsayı eklemek, başlıkları oldukça istikrarlı biçimde belirleyebiliyor
- İstisnalar kalsa da, önemli vakaların çoğu yakalanabiliyor
Çok satırlı başlıkları tek parça haline getirmek
- Başlıklar biçimlendirme nedeniyle sık sık birden fazla satıra bölünüyor; bu yüzden art arda gelen başlık satırlarını bazen birleştirmek gerekiyor
- Ne zaman birleştirileceğine karar vermek basit değil
- Örnekte şu koşullar birlikte görülüyor
- iki satırlı bir başlık
- sağa hizalı bir başlık
- başlığın ardından gelen semibold yazar adı
- birkaç satır aşağıda yer alan kalın olmayan bir başlık
- Girinti paragraf ayrımı için de sinyal olarak kullanıldığından, sağa hizalı başlıklar kararı daha da zorlaştırıyor
- Aynı yazı tipi boyutu ve kalınlığa sahip ardışık başlıkları birleştirme yaklaşımı genel olarak iyi çalışıyor, ancak istenmeyen sonuçlar da üretebiliyor
Paragraf tanımada satır aralığının yarattığı tuzaklar
- PDFTextStripper, paragraf tanımlamayı oldukça iyi yapıyor
- Satır aralığı ve girintiye birlikte bakarak paragrafın nerede bölüneceğine karar veriyor
- Özellikle satır aralığı mantığında geliştirme payı var
- PDFTextStripper’ın büyük sorunu, satır ayrımı için sabit bir eşik kullanması
- satırlar arası boşluk eşikten büyükse, aynı paragraf olmadığına karar veriyor
- belgeler arasındaki satır aralığı farklarını yeterince hesaba katmıyor
- Akademik taslaklarda ve preprint’lerde 1,5–2 kat satır aralığı oldukça yaygın
- Eşik çok yüksek seçilirse bazı başlıklar gövde paragraflarına karışarak başlık tespitini bozabiliyor
Satır aralığı istatistikleriyle düzeltme
- Yazı tipi boyutu işlemeye benzer şekilde, satırlar arasındaki mesafeye de istatistiksel teknikler uygulanabiliyor
- Metin sayfasında satırlar arası mesafe histogramı oluşturulunca, büyük aykırı değerler çıkma eğiliminde oluyor
- Ortalama aykırı değerlerden kolay etkilenirken, medyan bazen gövde metninde kullanılan satır aralığıyla tam olarak örtüşebiliyor
- Medyana belirli bir katsayı eklenirse, farklı satır aralıklarında da dayanıklı bir paragraf ayırma sezgisi kurulabiliyor
Gerçekçi hedef mükemmellik değil, istikrar
- PDF’den metin çıkarma işi kusursuz hale getirilmesi zor bir alan
- PDF biçimi zaten bu iş için tasarlanmadı ve “yeterince iyi” bir çözüm seçerken çeşitli ödünleşimler ortaya çıkıyor
- Arama motorunun özellikle ilgilendiği bilgiler şunlar
- başlık gibi ilgililik sinyalleri
- özetin tespiti
- kalan metnin bir ölçüde tutarlı yapısı
- Bu hedeflerle, ilgili belgelerin çoğunu nispeten sorunsuz işleyen bir çözüme yaklaşmak mümkün
Kullanılan örnek metinler
Can Education be Standardized? Evidence from Kenya (2022) - Working PaperGuthrie Gray-Lobe, Anthony Keats, Michael Kremer, Isaac Mbiti, Owen W. OzierThe 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
1 yorum
Hacker News yorumları
Bazen aylarca, yıllarca derinlemesine uğraşıp uzman seviyesine geldiğim bir şeyi tamamen unutuyorum; sonra da ileride “Bu yeni ve ilginçmiş” diye hissediyorum
Oldukça ilginç işler yapmış olsam da hafızadan siliniyor; bir şey tetikleyene kadar kendimi hayata yeniden başlayan biri gibi hissediyorum
6–7 yıl kadar önce PDF ve OCR ile epey havalı bir şeyler yaptığımı belli belirsiz hatırlıyorum; bakınca bunun Tesseract olduğunu düşünüyorum
Bu daha çok sezgisel bir hack’ti ve o dönemde Poppler’ın eski API’si metin akışlarını erişilebilirlik API’lerine uygun biçimde ifade etmiyordu sanırım
Çok sütunlu seçim özelliği bir ölçüde eklendi, ama sonradan performans iyileştirme önerilerini kabul ettirmek zordu; çünkü sezgiseller biraz farklı olduğundan bazı durumlarda seçim sonucu değişiyordu
Zaten baştan tek bir “doğru cevap” yoktu; dolayısıyla sonuçların birebir aynı olmasını istemek anlamsızdı ve böylece kpdf’in çok sütunlu seçim özelliği bir seviyeye kadar oluştu
Bugün böyle bir kullanım için Tesseract’ı doğrudan kullanmak muhtemelen daha mantıklı
Bu deliliğin ne zaman biteceğini bilmiyorum
Varsayılan doğruluğu daha yüksek, GPU hızlandırması var ve birden fazla metin algılama/tanıma modeli mimarisini birleştirilebilen bir pipeline olarak sunuyor
PyTorch veya TensorFlow ile eğitip ince ayar yaparak belirli alanlardaki performansı daha da yükseltebilirsiniz
Yani gerçekten böyle şeyler oluyor
Sonraki iş tamamen başka bir alanda oluyor, ben de yine temelden başlıyorum
Keşke biri PDF’ler için tarayıcı geliştirici araçları gibi bir şey yapsa
“Ögeyi incele” benzeri şekilde PDF’nin içerik akışını kaynak olarak görebilsek ve
BT … ETmetin operatörlerinin ya daTjmetin yerleştirme operatörlerinin her pikseli nasıl belirleyip ürettiğini inceleyebilsek harika olurduBu, güncel akımda olduğu gibi görsel modellerin PDF’ye insan gibi “bakıp” okumasının tersi; ama PDF dosyasının içinde gerçekten ne olduğunu anlayabilmek çok daha iyi olurdu
PDF içeriğini inceleyen birkaç araç var (https://news.ycombinator.com/item?id=41379101), ama bunlar PDF nesnesi seviyesinde duruyor ve tüm içerik akışı tek bir nesne gibi görünüyor
Örneğin yazıda anılan https://bfi.uchicago.edu/wp-content/uploads/2022/06/BFI_WP_2... bağlantısındaki PDF’nin 6. sayfası, belge içindeki 8. PDF sayfasında,
BT, yazı tipi ayarları,Td,TJgibi operatörlerle metni yerleştiriyorBöyle bir “kaynağı” ve render edilmiş PDF’yi yan yana görüp bir tarafta fareyi gezdirince diğer taraftaki karşılık gelen alanın vurgulanması sağlansa, HTML sayfalarında olduğu gibi hata ayıklamak mümkün olurdu
Örneğin her
Tjtek bir DOM ögesi olur,TJise birden fazla ögenin grubu gibi davranırÇalışabilmesi için özgün belgeyi doğru yansıtması gerekir; bu yüzden oldukça sadık bir dönüşüm olabilir
cpdf -output-json -output-json-parse-content-streams in.pdf -o out.jsonile JSON üretebilir, sonra o JSON’u düzenleyipcpdf -j out.json -o out.pdfile yeniden PDF’ye dönebilirsinizAma gerçek zamanlı çift yönlü bağlantı yok
Yalnız sayfayı incelemek yerine içerik ağacında gezinme şeklindeydi ve sayfadaki nesneleri vurguluyordu
Komut düzeyine kadar inmiyordu; yalnızca nesne veya akış seviyesine kadar gidiyordu
https://observablehq.com/@player1537/pdf-utilities
PDF’ye insan gibi “bakıp” yalnızca metni okumak yerine; tablo, görsel, metin, formül ve el yazısı dâhil içeriği anlamaya çalışıyorlar
Bu yüzden PDF’yi parse edip birden çok modeli çalıştırarak Markdown parçaları veya JSON çıkarıyorlar; böylece gerçek veriler AI ajanlarına, LLM’lere ve diğer uygulamalara aktarılabiliyor
https://tensorlake.ai
“PDF’yi metne dönüştürme” ifadesi fazla basitleştirilmiş
Bu kategorinin içinde 1) arama indeksleme veya vektör DB girdisi için güvenilir OCR, 2) belirli değerleri çıkaran yapılandırılmış veri çıkarımı, 3) ipotek başvurusu otomasyonu gibi uçtan uca belge iş akışları var
Marginalia’nın çözmeye çalıştığı şey 1 numaralı OCR ve Gemini Flash gibi modeller sayesinde hızla genelleşiyor
Birçok şirketin mevcut OCR hattını Flash ile değiştirip maliyeti ciddi biçimde düşürdüğünü gördüm ve bu oldukça şaşırtıcı
Ama 2 ve 3 çok daha zor; ham OCR çıktısından üretim ortamındaki görev açısından kritik belge iş akışlarına gitmek arasında hâlâ büyük bir boşluk var
LLM’ler ve görsel dil modelleri sihir değil; %100 otomasyon beklerseniz şaşırırsınız
Veri kümesi oluşturma ve etiketleme,
sınıflandırma -> bölütleme -> çıkarımhattı orkestrasyonu, belirsizlik tespiti ve insan incelemesi, ince ayar gibi şeyler hâlâ gerekiyorUzun vadede neredeyse tam otomasyona yaklaşabiliriz, ancak bu zaman ve emek gerektiriyor; yine de geleceğin bu yöne gittiği açık görünüyor
Bununla ilgili olarak https://extend.ai adlı bir LLM belge işleme şirketi kurdum
İş dünyasındaki iş akışları çoğu zaman birkaç sabit belgeyle uğraşır, ama genel amaçlı bir PDF okuyucu kullanıcının hangi belgeyi açacağını bilemez
Sadece metni değil; tabloları, üstbilgi ve altbilgileri, dipnotları, başlıkları, matematik ifadelerini de tanıması gerekir
İnsan tüketimi için olduğundan hataları en aza indirmek gerekir; bu yüzden gereksiz olduğunda OCR kullanılmamalı, PDF’ye gömülü temel metinden yararlanılırken anlamsal yapı da çıkarılmalıdır
Sonuçta hem sadece görüntüden oluşan PDF’ler hem de içerik akışından bilgi alınabilen PDF’ler için iki ayrı yol gerekir
Ancak içerik akışında gerçek ekrandakinden farklı metin bulunabilir. Beyaz yazıyla gizlenmiş bilgiler ya da Unicode aksanları yerine komutlarla aksan işareti çizen LaTeX tarzı uygulamalar gibi durumlar vardır
Bu genellikle kullanıcının düşük performanslı cihazında yerel uygulama olarak çalışır ve sunucu ya da abonelik modeli olmayabilir; bu yüzden bulut yapay zeka modelleri de kullanılamaz
Erişilebilirlik yazılımı kullanıcıları çıktıyı alıp kalemle doldurmakta zorlanabilir; bu nedenle yalnızca spesifikasyona uygun temiz formlar değil, baskı amaçlı formlar da işlenebilmelidir
Bu, çözülmeye hiç de yakın olmayan açık bir problem; mevcut çözümlerin hepsi bir şekilde yetersiz ve yukarıdaki 5 unsurun tamamını gerçekten çözen tek bir çözüm yok
Görüntü etiketlemede çok iyiler ve tek sütunlu metin, ortalanmış tek seviyeli başlık, sayfa başına tek görsel veya tablo gibi basit belgelerde fena değiller
MVP demolarının çoğu bu tür örnekleri gösteriyor
Ama tablo ve görsellerin karıştığı karmaşık belgelerde, “kötü seviyede” bile olabilmesi için çok daha fazla parametre gerektiği hissi var
Şu anda halüsinasyon o kadar fazla ki, üstte başlığı olan, ortasında veriler bulunan ve altta özeti olan basit bir tabloyu bile olduğu gibi kullanmak zor
Günümüz OCR’ı mükemmel, ancak belgenin küresel yapısını korumak çok daha zor
Büyük belgelerde tutarlı HTML elde etmek hâlâ uzak görünüyor; belge yapısını çıkarmak için LLM’yi birden fazla kez çalıştırıp bunu sayfa bazlı çıkarıma bağlam olarak vermekle Markdown tarafında bir ölçüde iyi sonuçlar alınabiliyor
Apple bu problemi yıllar boyunca oldukça başarılı biçimde ele aldı; temel püf noktası her şeyi geometrik yapı olarak görmek ve kümeleme analiziyle kelime aralıklarını harf aralıklarından ayırmaya çalışmaktı
Birçok PDF’de çok iyi çalışıyor, ama PDF türleri o kadar çeşitli ki sonucun kötü olduğu durumlar her zaman var
Bugün yeniden yapsam geometrik yapıyı korur, OCR’dan tamamen kaçınır ama makine öğrenimi kullanırdım
Makine öğreniminin büyük avantajı, bilinen metinden PDF üreten mevcut araçlardan yararlanarak eğitim aşamasını tamamen otomatikleştirebilmek
Bertrand Serlet’in bu özelliği WWDC 2009’da tanıttığı an: https://youtu.be/FTfChHwGFf0?si=wNCfI9wZj1aj9rY7&t=308
Daha iyi bir çözüm, PDF’nin içine düzenlenebilir kaynak belgeyi birlikte gömmektir
LibreOffice’te bu kolayca yapılabiliyor ve iyi sıkıştırıldığı için genelde neredeyse hiç ek yer kaplamıyor
Böylece metin ve anlam açısından çok daha iyi bilgi elde edilebilir ve mevcut PDF okuyucularında da sorunsuz çalışır
Elektronik delil keşfi alanında, delili sunan tarafın karşı tarafın avukatlarının içeriği tüketmesini zorlaştırmak için kasten PDF dökümü yapması yaygındır
İki tarafın da çok parası varsa bu engel olmaz, ama örneğin baro tarafından atanan bir avukatın PDF’leri okunması kolay bir biçime dönüştürecek kişiyi tutacak bütçesi olmayabilir; bu da işlem süresini ciddi biçimde uzatır ve sanık üzerinde psikolojik yük oluşturur
Hatta veriler doğru şekilde işlenemeyebilir bile
Çözüm, bu tür davranışları yasa dışı hâle getirmektir
Örneğin telefon dinleme verileri standartlaştırılmış makine tarafından okunabilir biçimde sağlanmalıdır; basit teknik sürtünmelerin ceza yargılamasının sonucunu etkilemesi için etik bir gerekçe yoktur
Bu çözümün etkisini göstermesinin ne kadar süreceğini merak ediyorum
Şirkette de bunlardan binlerce var; bazıları çok kötü taramalar, bazılarında Adobe OCR gömülü, ama çoğunda hiçbir şey yok
Ama genel olarak böyle bir kontrolünüz olmuyor
Aşağıdaki PDF aslında bir
.txtdosyasıdır.pdfuzantısıyla kaydederseniz PDF görüntüleyicide açılabilir ve bir metin düzenleyiciyle de değiştirilebilirÖrneğin bu metin dosyasını düzenleyerek PDF açıldığında ekranda gösterilen metni, yazı tipini, yazı boyutunu, satır aralığını, satır başına azami karakter sayısını, sayfa başına satır sayısını, kağıt genişliği ve yüksekliğini, hatta dikey-yatay yönünü bile değiştirebilirsiniz
Örnek,
%PDF-1.4ile başlayan en minimal PDF yapısıdır veCatalog,Pages,Font,Page,Contents,xref,trailergibi bölümlerin doğrudan metin olarak yazıldığı bir biçimdedirPDF, metin için değil yerleşim ve grafikler için tasarlanmıştır
Örnek iyi olsa da, her satır karakter başına bir çağrı ya da kelime başına bir çağrı olacak şekilde parçalanabilir ve sıraları da karışabilir
PDF 1.0 referans belgesinin “2.3.2 Portability” bölümünde PDF dosyası 7 bitlik bir ASCII dosyası olarak tanımlanır; görüntüler ve özel karakterler içeren belgelerin bile yalnızca ASCII'nin yazdırılabilir alt kümesi kullanılarak ifade edildiği belirtilir
Bunun sonucunda farklı donanım ve işletim sistemi ortamları arasında son derece taşınabilir olduğu açıklanır
https://opensource.adobe.com/dc-acrobat-sdk-docs/pdfstandard...
Günümüzde PDF'lerin çoğunda tüm nesneler deflate ile sıkıştırılmıştır
Üstelik takip etmeyi daha da zorlaştırmak için birçok PDF, nesnelerin çoğunu nesne akışı türündeki nesnelerin içine toplar ve sonra yeniden sıkıştırır
Bu yüzden
6 0 Rsonunun izini sürmeye çalışsanız bile bir metin düzenleyicide6 0 Objdiye arama yapamazsınızBu yazıda anlatılan zorlukları gösteren sevdiğim bir belge var: https://academic.oup.com/auk/article/126/4/717/5148354
İlk sayfadan itibaren tipik iki sütunlu metin, ortalanmış bir başlık ve iki sütunun arasına girerek satır uzunluğunu ve girintiyi değiştiren bir metin kutusu bulunuyor
Sonrasında tek ve çift sayfalarda değişen üstbilgiler, ayrıca ciddi ölçüde farklılaşan bölüm başlığı kuralları ortaya çıkıyor
Daha kötüsü, paragraflar arasında ek boşluk yok ve ilk satır girintisi de her zaman bulunmuyor; yani akla gelebilecek her türlü zorluk var
Bunun yaklaşık %95'lik kısmı gayet iyi çalışıyordu ve Mac'teki PDFKit ile Preview için yıllar boyunca bu yeterli oldu
PDF'i üreten asıl uygulamayı, örneğin bir kelime işlemciyi düşünürseniz, büyük olasılıkla kendi metin tamponundan PDF bağlamına metni oldukça makul bir sırayla işliyordu
Bu yüzden iki sütunlu belgelerde bile metin çoğu zaman sol sütundan sağ sütuna doğru düzgün akıyor ve PDF'in içine de zaten doğru sırayla yazılmış oluyordu
Yine de sayfa altbilgisi veya üstbilgisinin PDF üreten uygulama tarafından bağlama hangi sırayla döküldüğünü bilmenin bir yolu yok
PDF'ten metin, hatta yapılandırılmış metin çıkarmak hiç kolay değildir
Bir HTML belgesinden tablo kazımak, site her şeyi
divile yapma anti-pattern'ini kullansa bile çoğu zaman basittir; anlamlı öğeler kullanılıyorsa daha da kolaydırPDF böyle değildir
Biçim uzmanı değilim, dolayısıyla anlam yapısı desteğinin ne kadar olduğunu bilmiyorum; ama render edildiğinde ancak tablo gibi görünen grafik ve metin öğelerinin gevşek bir toplamından oluşan çok sayıda PDF tablosu gördüm
Pratikte, Poppler PDF araçlarıyla PDF'i HTML'e dönüştürdükten sonra beklenen tablo başlıklarını bulup her değerin x koordinatına göre sütunları hesaplayarak satır bazında değer çıkarmada epey başarılı oldum
Kirli bir yöntem ama ihtiyaç duyduğum kullanım için güvenilir biçimde çalıştı ve düzensiz aralıklı ya da satır ortasında satır sonu barındıran biçimlendirilmiş düz metinden çok daha iyiydi
Çeşitli yan işlevleri var ama temel hedef,
page.find('text:bold:contains("Summary").below().extract_text()gibi daha insansı bir şekilde etkileşim kurmakHer PDF kendine özgü bir kâbus olduğu için, çıkarması zor örnekleri toplayıp bir yöntem kütüphanesinin temeli haline getirmeye çalışıyorum
https://jsoma.github.io/natural-pdf/
https://badpdfs.com/
C++ uygulamasına entegre edilebilen ve ücretsiz olan ya da birkaç yüz doların altında kalan bir PDF tablo çıkarma kütüphanesi bilen varsa duymak isterim
Aynı PDF'i üretmenin gerçekten çok sayıda yolu vardır
Bazı araçlar, grafik düzenleyicide metin ve grafik içeren bir yerleşimi dışa aktarmaya daha yakındır; bazılarıysa kelimelerin önce geldiği, kelime işlemci benzeri metin ve grafikleri dışa aktarmaya daha yakındır
Üreten uygulamanın bilgiyi ele alış biçimi, PDF çıktısının nasıl oluşacağını da sık sık etkiler
Hazır bir yardımcı araç arıyorsanız, cisdem gibi araçlar yerel kullanıcılar için yapılandırılmış veriyi oldukça iyi çıkarmaya kadar bu sorunu belli ölçüde çözmüş durumda
Bu tür araç çok ve birçoğu yapılandırılmış veri desteği vadeder, ancak yapmayı düşündüğünüz işle iyi uyuşması gerekir
PDF bir gösterim biçimidir
İnsan gözüne ve yazıcılara göre optimize edilmiştir ve özellikleri zamanla giderek artmıştır
Makineler arası veri aktarım aracı olarak berbat olsa da, insanların okuması veya bir A4 sayfasını saklamak için son derece iyidir
.pdfmetni saklıyor diye o metni almak istediğiniz varsayımıyla başlarsanız, bu kabaca "gidip kendi gözünüzü büyütün" demek olurYa da son derece karmaşık şeylerle uğraşmanız gerekir
Öncelikle, o metnin gerçekten metin mi yoksa görüntü mü olduğu bile bir sorundur
İnsan gözü gözlüğünü yeniden takınca fark etmeksizin okuyabilir, ama bir ayrıştırıcı segmentasyon hataları verip bozulabilir
PDF insanlar okusun diye vardır; bu yüzden PDF okumak için insanı taklit etmeniz gerekir
Eskiden oyuncak bir PDF ayrıştırıcısı yapmayı denemiştim; biçimin nasıl çalıştığını öğrenince epey afalladım
Bunu düşününce, metin ağırlıklı kullanım alanlarında PDF'nin bu kadar sık kullanılması daha da tuhaf geliyor
Özellikle fatura gibi örnekleri düşündürüyor
Dijital sistemler veriyi dosyadan kolayca çıkarabilmeli, ama aynı zamanda insana da iyi görünecek şekilde biçimlendirilmiş olmalıdır
Teknoloji sektörü daha iyi biçimlere geçse çok daha iyi olur gibi geliyor