Her ne kadar bu işi ya da benzerini yapan sistemler daha önceden geliştirilmiş olsa da Python ile yeniden yazmanın gerekli olduğuna karar verip bunu gerçekleştirdim çünkü:
- Deniz Yüret'in geliştirdiği turkish-mode Emacs için Emacs Lisp ile geliştirilmiş bir sistem. Ben de Emacs kullanıyorum ama çoğunluk için bu durum geçerli değil.
- Bu sistemin Javascript implementasyonu http://turkce-karakter.appspot.com/ adresinde mevcut ve son kullanıcı için pratik fakat komut satırından yahut kendi programları içinden iş yapmak isteyen programcılar için çok pratik değil.
- Zemberek tabanlı bir 'deasciifier' açık kodlu olarak erişilebilir durumda ve web tabanlı hali de var http://zemberek-web.appspot.com/ adresinde ama yine programcılar için çok pratik değil. Tek istediğiniz pratik şekilde 'deasciification' yapmak ise önce Java kurmak, ardından da tam teşeküllü bir imla kontrol sistemini devreye sokmak, vs. biraz yorucu bir iş. Ayrıca Zemberek'in kullandığı yöntemler farklı ve bazı metinleri düzgün 'deasciify' edemiyor.
- Sabancı Üniversitesi'de Gökhan Tür tarafından geliştirilmiş (ve burada bahsedilen deasciifier'a ilham kaynağı olmuş) sistemin bazı kısıtkamaları var: Kaynak kodu açık değil, sistemi download edemiyorsunuz, web arayüzünün uzunluk limiti var. Ayrıca neden verilerinizi bir başkası ile paylaşmak zorunda kalasınız ki?
Şimdi de birkaç kullanım örneği, önce Python içinden:
Ve şimdi de komut satırından:
$ echo "Yilanlarin Ocu" | python deasciify.py
Yılanların Öcü
echo "Hic fena olmadi sanirim, ne dersin hocam?" | python deasciify.py
Hiç fena olmadı sanırım, ne dersin hocam?
Elbette bu deasciifier da mükemmel değil, bazen hata yapabiliyor ancak anadili Türkçe olan biri olarak pratik olarak hemen her türlü durumda işe yaradığını ve çok pratik olduğunu söyleyebilirim. Sistemin ardındaki teoriyi merak ediyorsanız Deniz Yüret'in makalesini okuyabilirsiniz. Bu sisteme eklenebilecek en heyecan verici özellik herhalde sistem çalışırken onun hatalarını düzeltip sistemi eğitebilme özelliği olurdu ancak bu başka bir projenin konusu olsun şimdilik. Şimdiki yakın vadeli planlarım arasında şunlar var: Sisteme web arayüzü eklemek, daha da kolay kullanılmasını sağlamak için Python Package Index'e eklemek, kendi başına çalışan GUI tabanlı bir versiyon geliştirmek ve Linux ile Windows'da kolayca kullanılabilmesini sağlayacak şekilde eklemeler yapmak.
Not: Bu yazı http://ileriseviye.org/blog/?p=3274 adresindeki İngilizce yazının çevirisidir.