
PDF tablolarını Excel'e aktarma: ne çalışır, ne bozulur
PDF'te hücre diye bir nesne yoktur. Araçlar sütunları çizgilerden ve x koordinatlarından tahmin eder: nerede yanılır, sonucu nasıl doğrularsınız?

OCR tek bir işlem değil, bölütleme ile başlayıp sözlük düzeltmesiyle biten bir zincir. Hata zincirin başında oluşur ve aşağı doğru büyür; bu yüzden kaliteyi belirleyen şey taramanın kendisidir.
Taranmış bir PDF, içinde metin bulunmayan bir görüntü koleksiyonudur. OCR bu görüntüyü okunabilir metne çevirirken tek bir işlem değil, birbirine bağlı bir dizi adım uygular: sayfayı metin ve metin dışı bölgelere ayırır, satırları bulur, satırları kelime ve karakter kutularına böler, her kutuyu bir sınıflandırıcıdan geçirir ve çıkan adayları bir dil modeli ile sözlük üzerinden düzeltir.
Bu zincirin önemli bir özelliği var: hata yukarıdan aşağı yayılır. Sayfa bölütleme yanlışsa satırlar yanlış, satırlar yanlışsa karakter kutuları yanlış olur. Sınıflandırıcı ne kadar iyi olursa olsun kendisine yanlış kırpılmış bir kutu verildiğinde doğru cevabı üretemez. Bu yüzden OCR kalitesini belirleyen şey çoğunlukla tanıma motoru değil, ona verilen görüntüdür.
Sınıflandırıcının ayırt edebilmesi için harfin piksel cinsinden yeterli büyüklükte olması gerekir. 300 DPI ile taranmış 10 punto bir metinde küçük harflerin gövde yüksekliği kabaca yirmi piksel civarındadır; bu, "e" ile "c", "rn" ile "m" arasındaki farkı taşımaya yeter. 150 DPI'da aynı yükseklik onun altına iner ve ince çizgiler birbirine değmeye başlar. Tesseract belgeleri de en az 300 DPI önerir.
Düşük çözünürlüklü bir taramayı sonradan büyütmek kaybolan bilgiyi geri getirmez. Ara değerleme yeni piksel üretir, yeni ayrıntı üretmez: birbirine değmiş iki çizgi büyütüldüğünde daha büyük ve hâlâ değmiş iki çizgi olur. Büyütmenin tek faydası, çok küçük görüntülerde tanıma motorunun beklediği ölçeğe yaklaşmaktır; asıl çözüm belgeyi doğru çözünürlükte yeniden taramaktır.
Çoğu motor sayfayı önce siyah beyaza indirger. Tek bir eşik değeri kullanıldığında eşit aydınlatılmamış sayfalarda sorun çıkar: telefonla çekilmiş bir belgede bir köşe gölgede kalır, o bölgedeki harfler eşiğin altında kalıp tamamen kaybolur. Bölgesel eşikleme bu durumu kurtarır. Kağıdın arka yüzünden sızan baskı da aynı adımda karar meselesine dönüşür: eşik biraz düşükse arka yüz metni ön yüze karışır.
Satır bulma işlemi yatay izdüşüm profiline dayanır: sayfadaki siyah piksellerin satır bazında toplamı. Sayfa bir iki derece eğikse bu profildeki tepeler yayılır, iki komşu satır tek tepe halinde birleşebilir. Kitap taramalarında cilt kenarına doğru oluşan bükülme aynı sorunu sayfanın yalnızca bir bölümünde yaratır, bu yüzden metnin ortası düzgün çıkarken kenarı bozulur. Eğiklik düzeltme, OCR'dan önce yapılacak en ucuz ve en etkili işlemdir.
JPEG, keskin kenarların çevresinde halka biçiminde bozulma bırakır ve metin baştan sona keskin kenardan ibarettir. Düşük kaliteli JPEG olarak taranmış bir sayfada harflerin çevresinde gri bulut oluşur, ikilileme adımı bu bulutu ya harfe katar ya da harfi inceltir. Belge taramalarında kayıpsız ya da yüksek kaliteli bir ayar, aynı dosya boyutunu tutan agresif bir JPEG'den çok daha iyi sonuç verir. Sıkıştırmayı arşivleme aşamasına bırakın: metin katmanı eklendikten sonra dosyayı küçültmek tanımayı etkilemez.
Sınıflandırıcı tek bir karakter için birden çok aday üretir ve seçim dil modeliyle yapılır. Yanlış dil seçmek bu düzeltme katmanını zararlı hale getirir: Türkçe bir belgeyi İngilizce modeliyle okutursanız "ı" harfleri "i"ye, "ş" ve "ğ" benzer gövdeli harflere çekilir, çünkü model bu karakterleri beklemiyordur. Karışık dilli belgelerde iki dili birlikte yüklemek, tek dili zorlamaktan daha iyi çalışır.
Çok sütunlu bir sayfada okuma sırası bölütleme kararına bağlıdır. Sütunlar ayırt edilemezse satırlar soldan sağa birleştirilir ve iki sütunun metni birbirine girer. Tablo, dipnot, kenar notu ve filigran da aynı adımda karar bekler. Sayfa düzeni tanınmadığında harf düzeyinde hata yapılmamış olsa bile çıktı kullanılamaz hale gelir; tablo çıkarmak istiyorsanız konu PDF tablolarını Excel'e aktarma yazısında ayrıca ele alınıyor.
Aynı tarayıcıyla aynı ayarda çekilmiş iki sayfa çok farklı sonuç verebilir. Tırnaklı ve düzenli bir gövde metni, tanıma için en kolay girdidir. Daralmış yazı tipleri, el yazısı benzeri başlıklar, tamamı büyük harf yazılmış satırlar ve altı çizili metin belirgin biçimde zorlaştırır: alt çizgi harflerin alt uzantılarına değdiği için karakter kutuları birleşir. Dipnotlardaki altı yedi puntoluk metin de aynı sayfada gövde metni sorunsuz okunurken kelime kelime kaybolabilir.
Kağıdın durumu ikinci etkendir. Fotokopinin fotokopisi her kuşakta kontrastı ve ince çizgileri yitirir; damga, kaşe ve imza metnin üstüne bindiğinde o bölgede tanıma tamamen durur. Delik zımba izi ve katlanma çizgisi bölütleme adımında sahte satır kenarı gibi davranır. Bu kusurların hiçbiri tanıma motorunun ayarıyla çözülmez, ancak daha iyi bir kopyayla çözülür.
OCR çıktısı emin görünür: motor size bir metin verir, hangi kelimeden emin olmadığını yazının içinde belirtmez. Kaba bir kontrol listesi çoğu hatayı yakalar.

Tanıma sonrası düzeltmek yerine girdiyi düzeltmek her zaman daha ucuzdur. Elinizde kağıt varsa tarayıcıyı 300 DPI, gri tonlama ve düşük sıkıştırma ile çalıştırın; renkli tarama metin için ek bilgi taşımaz ama dosyayı büyütür. Telefonla çekiyorsanız gölgesiz ve dik açılı bir kare için belge tarayıcı aracı perspektifi düzeltip kenarları kırpar. Elinizdeki PDF'in görüntü kalitesini görmek için sayfayı görüntüye çevirip yüzde yüz ölçekte bakmak yeterlidir: harflerin kenarları dağılmışsa metin katmanı da dağılacaktır.
Hazır olduğunuzda PDF OCR aracı sayfaya aranabilir bir metin katmanı ekler. Bu katman görünmezdir ve görüntünün üstünde durur, yani belgenin görünümü değişmez.
OCR bir belgeyi aranabilir yaparken aynı içeriğin ikinci bir kopyasını dosyaya yazar. Karartma yaparken bu iki kopyanın ikisini birden ele almak gerekir: görüntünün üstüne siyah dikdörtgen çizmek ne alttaki pikselleri ne de görünmez metin katmanını kaldırır. Ayrıntı için karartma hataları yazısına bakın. Ayrıca bu sitedeki PDF araçlarının dosyayı işlemek için sunucuya yüklediğini hatırlatalım; hassas belgelerde bunu hesaba katın.
Karakterin ayırt edilebilmesi için piksel cinsinden yeterli yükseklikte olması gerekir. 300 DPI'da 10 puntoluk bir metinde küçük harf gövdesi yirmi piksel civarına gelir ve benzer harfler birbirinden ayrılabilir. Daha düşük çözünürlükte ince çizgiler birleşir. Tesseract belgeleri de bu eşiği önerir.
Kaybolan ayrıntıyı geri getirmez. Ara değerleme yeni piksel üretir ama yeni bilgi üretmez; birleşmiş çizgiler büyütüldükten sonra da birleşik kalır. Çok küçük görüntülerde ölçeklendirme motorun beklediği boyuta yaklaştırdığı için yardımcı olabilir, ancak doğru çözüm yeniden taramaktır.
Sınıflandırıcının ürettiği adaylar dil modeliyle seçilir. İngilizce modeli 'ı', 'ş' ve 'ğ' karakterlerini beklemediği için bu harfleri benzer gövdeli Latin harflerine çeker. Karışık dilli belgelerde iki dil verisini birlikte kullanmak tek dile zorlamaktan daha iyi sonuç verir.
Önce sayılara bakın, çünkü sözlük düzeltmesi onları kurtarmaz ve 0/O, 1/l, 5/S karışmaları burada birikir. Ardından metni seçip vurgu kutusunun gerçek kelimenin üstüne oturup oturmadığına bakın ve belgede kesin geçtiğini bildiğiniz birkaç terimi aratın.
Metin katmanı ayrı bir nesnedir, görüntü sıkıştırması onu değiştirmez. Sıra önemlidir: önce tanıma, sonra sıkıştırma. Tersini yaparsanız tanıma motoru artefaktlı bir görüntüyle çalışır ve hata oranı artar.

PDF'te hücre diye bir nesne yoktur. Araçlar sütunları çizgilerden ve x koordinatlarından tahmin eder: nerede yanılır, sonucu nasıl doğrularsınız?

PDF'te üstünü kapatmak içeriği kaldırmaz. Metin akışı, metadata, açıklamalar ve artımlı kayıt nerede iz bırakır, karartmayı nasıl doğrularsınız?