Tarayıcı ve OCR yazılımları, bir kitap sayfasındaki her satırı, yeni bir satır başı olarak tarar, yazıya dönüştürürken. Amaç yazıyı, sayfadaki yerleşimine benzetmektir. Oluşturulan yazı, bilgisayarda incelenirken fena görünmez. Ama tablet ya da telefon gibi küçük ekranlı bir aygıtta incelenirken, çirkin bir yazıyla karşılaşılır. Yazı, olmadık yerlerinden bölünüp alt satıra geçiyordur. Üst satırın yarısı boş kalıyordur oysa. Yazı bütünlüğünü kaybetmiştir. O her satır yeni bir paragraf gibi algılanıyordur çünkü.
Bu fonksiyon yazıdaki satırları birleştirir. Bütün bir yazı oluşur. Sadece gerçek paragrafları böler, doğru yerlerinden. Artık taranan yazı, her ekranda iyi görünecektir.
Fonksiyon Kodu
def satirbirlestir(bmetin):
muzunluk=len(bmetin)-1
sira=0
yenimetin=""
while sira<=muzunluk:
if bmetin[sira:sira+2] == "\n\n":
# Paragraf bitişi
yenimetin+="\n\n"
sira+=2
elif bmetin[sira:sira+2] == "-\n":
# Satır sonu bölünen kelime
sira+=2
elif bmetin[sira:sira+1] == "\n":
# Satır sonundaki tam kelime
yenimetin+=" "
sira=sira+1
else:
# Diğer tüm harfler aynen ekleniyor
yenimetin+=bmetin[sira]
sira+=1
return yenimetin
***
Aslında üreticilerin tarayıcı ve OCR yazılımlarına buna benzer bir kodu hâlâ eklememiş olması ilginçtir. Kullanıcılar, bir kitap sayfası tararken, böyle bir seçeneklerinin olduğunu fark etmeleri hoşlarına gidecektir. Eh, fonksiyonun kodunun çok ayrıntılı olması gerekmediğinden, açık kaynak kod olarak paylaşmakta sorun görülmedi. :-)
Resimlerdeki örneklerde, bir kitap sayfasının bir tablette nasıl göründüğü gösterilmiştir. Daha alttaki örnekte ise bu fonksiyon uygulandıktan sonraki durumu gösterilmiştir.
Fonksiyonu Uygulanmadan Önceki Görünüm:
Fonksiyon Uygulandıktan Sonraki Görünüm:
Not: Blogtaki her alıntı henüz bu fonksiyonla düzeltilmemiştir. Dolayısıyla bir tablet yada telefonla diğer taranan alıntıların nasıl göründüğünü deneyebilirsiniz.
Hiç yorum yok:
Yorum Gönder