Harun Reşit Zafer

bâki kalan bu kubbede bir hoş sadâ imiş

Türkçe İmla Denetimi Üzerine

Geçenlerde üzerinde çalıştığım bir proje gereği kapsamlı bir Türkçe kelime listesine ihtiyaç duydum. Buradaki listeden kastım standart bir Türkçe sözlükte bulunan kelimelerin listesi değil bunların ek almış hallerinin de bulunduğu geniş bir listeydi. Mesela “ev” kelimesinin “evim”, “evimiz”, “evimdeki” gibi biçimlerini de içeren bir liste. Peki, böyle bir liste kaç kelime ihtiva eder?

Soruyu şu şekilde de sorabilirdik: Türkçedeki “mümkün” tüm kelimelerin sayısı nedir? Mümkün (imkân dâhilinde) kelimesi size garip geldiyse hemen birkaç örnek vereyim; “bardaklaşıyordum”, “dondurmalandırmacı”  gibi. Bu garip kelimeler teorikte mümkün ve Türkçenin gramer kuralları açısından doğru ancak hali hazırda anlamlı değiller ve kullanılmıyorlar. Ama ileride mesela “bardaklaşmak” deyimi geçerli bir anlam kazanabilir. Tıpkı bir zamanlar “havalandırmacı” kelimesinin bir anlam ifade etmediği gibi.

Dilbilimci Hankamer’e göre Türkçede bu şekilde 200 milyar farklı kelime üretmek mümkün. Gerçek hayatta ise bunların yaklaşık 2-3 milyon kadarını kullandığımızı sanıyorum ben. Zira ODTÜ’nün 1990 ve sonrası pek çok Türkçe metni bir araya getirerek oluşturduğu derlemde 2 milyon farklı kelime var. Ben de aslında aşağı yukarı bu uzunlukta bir liste arıyordum.

Diyelim ki elimizde böyle bir liste var. Bu listeye dayanarak imla denetimi yapabilir miyiz? Mesela yazılan bir kelime listemizde yoksa, yani bu 2 milyon kelimeden biri değilse altını kırmızı ile çizelim ve yanlış olarak kabul edelim. O halde yukarıdaki “bardaklaşmak” kelimesi muhtemelen yanlış sayılacaktır. Peki ya fantastik edebiyat türünde eser veren bir yazar “tabaklar bardaklaşıyordu” gibi bir cümle kuruyorsa ve bu cümle eser içerisinde gayet anlamlıysa? Sonuç olarak bu tür bir liste ile Türkçe imla denetimi yapmak ideal bir çözüm olmasa da çoğu zaman işimizi göreceğini de kabul etmek gerekir.

Aslında çoğu imla denetim sistemi bir dildeki mümkün bütün kelimeleri üretmek ve yeni gelen kelimelerin bunlardan biri olup olmadığını kontrol etmek mantığı üzerine kuruludur. Açık kaynak yazılımların neredeyse tamamı, hatta kapalı kaynak yazılımların da bir çoğu imla denetimi için Hunspell ve benzeri sistemleri (aspell, ispell, myspell vs) kullanıyorlar. Apple Mac OS X, Firefox, Chrome, Open Office ve daha pek çok yazılım Hunspell aracılığıyla imla denetimi yapıyor.

Hunspell bir dilde imla denetimi yapabilmek, yani o dildeki mümkün olan tüm kelimeleri oluşturabilmek için 2 dosyaya ihtiyaç duyuyor. Bunlar:

1- Sözlük (.dic uzantılı dictionary dosyası)
2- Ekler (.aff uzantılı affix dosyası)

Mesela bir dil için sözlük dosyamız aşağıdaki gibi olsun:

merhaba
gel/MEK
araba/LAR
ev/LER

Ek dosyamız da böyle olsun:

SFX LAR N 1
SFX LAR 0 lar .
SFX LER N 1
SFX LER 0 ler .
SFX MEK N 1
SFX MEK 0 mak .

Bu dildeki mümkün tüm kelimeler aşağıdaki gibidir:

merhaba, gel, gelmek, araba, arabalar, ev, evler

Bu kelimelerin dışında kalan bütün kelimeler ise geçersiz yani yanlış sayılacaktır. Hunspell ve benzeri (aspell, myspell, ispell vs.) sistemler tasarlanırlen her ne kadar tüm dilleri kapsamaları hedeflenmiş olsa da, Türkçe gibi eklerin ardı ardına geldiği dillerde dil paketi hazırlamak çok ama çok zahmetli bir iş. Hatta Türkçe için bu sistemde ideale yakın bir imla denetiminin mümkün olup olmadığı tartışılır. Zira henüz bunu becerebilen yok. Bendeniz de yaklaşık 4 yıl kadar önce bir heves ile bunu denemiş ancak işin zorluğunu fark edince tek başıma yapamayacağıma kanaat getirmiştim. Beni işten asıl soğutan ise sistemin aslında Türkçe’nin yapısına uygun olmayışı idi. Yani ne kadar zorlarsam zorlayayım muhtemelen muvaffak olamayacaktım.

Motivasyonum ise Türkçe için bu 2 dosya -yani dil paketi- hazırlandığında yukarıda saydığım yazılımlar ve daha birçoğunun Türkçe imla denetimi yeteneği kazanacak olmalarıydı. En fazla da Firefox’ta ihtiyaç duyuyordum. Aynı ihtiyacı benden bir kaç yıl önce Open Office için hissedenler ise Zemberek ekibiydi. Onlar da sanırım bir müddet kastırdıktan sonra Hunspell ile etkili ve verimli bir Türkçe imla denetiminin mümkün olmadığına karar kıldılar ve bunun yerine Zemberek’i kodlamaya başladılar. Daha sonra da bir eklenti olarak Open Office’e entegre edildi Zemberek. Ancak Zemberek’i her yazılıma kolayca entegre etmek mümkün değil. Hatta bazıları için imkansız.

Sonuç olarak Hunspell Türkçe dil paketi önemli bir ihtiyaç olarak duruyordu. Sonunda Zemberek ekibi derledikleri Türkçe metinlerden elde ettikleri 1,4 milyon farklı kelimeyi tanıyabilecek bir Hunspell dil paketi oluşturmayı başardılar. Bu da bir Firefox eklentisi olarak yayınlanmış durumda. Bu paket Zemberek yazılımı tarafından otomatik olarak hazırlanmış durumda. Sözlük dosyasında 250 bin kelime, ek dosyasında ise 20 bin ek var. Ve sistemin %97-98 oranında doğru çalıştığını söyleyebiliriz. Yüksek bir oran gibi gelebilir ancak tersinden baktığımızda %2-3 hata payı var. Yani yazdığımız her 100 kelimeden ikisi-üçü hatalı olarak denetleniyor. Neticede ideal bir çözüm olmasa da oldukça işe yaradığını söylemeliyim. Özellikle e-posta yazarken yapılan küçük hataları büyük oranda yakalıyor ki imlası bozuk bir e-postanın yazıştığınız insanlar nazarındaki saygınlığınızı azaltacağına inananlardanım. Bu paketi hazırlayanlara teşekkürlerimi de ileteyim buradan.

Mevcut Hunspell dil paketini incelemek, üzerinde çalışmak ve başarımını yükseltmek isteyenler pakete buradan erişebilirler. Ayrıca paketin tanıdığı tüm kelimelerin listesi de burada. Paylaştığım tüm bu dosyalar büyük olduğundan açmak için notepad++ kullanmanızı öneririm.

Yazıyı bitirirken, Türkçe için imla denetimi yapan mevcut yazılımlar içerisinde en oturmuş olanın yine de MS Word olduğunu belirtelim. Zemberek ise onun hemen ardından geliyor. Aralarındaki temel farklılık Zemberek’in teorikte mümkün olan tüm kelimeleri doğru kabul etme eğiliminde yatıyor. Zembereğin saçmala butonuna bastığınızda bu teorikte doğru ama çoğu pratikte kullanılmayan yeterince kelime göreceksiniz. Mesela “bardaklaşmak” kelimesini MS Word yanlış kabul ederken Zemberek doğru kabul ediyor. Ben birinci yaklaşımın gerçek hayatta daha çok işe yarayacağını düşünüyorum ama Zemberek’in sadece bir imla denetim yazılımı olmadığını ve pek çok bilimsel çalışmada kullanıldığını hatırlatalım. Yani Zemberek için ikinci yaklaşım daha doğru aslında.

Umarım faydalı bir yazı olmuştur. Herkese kolay gelsin.

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPrint this pageEmail this to someone

7 Yorum

  1. Mükemmel bir yazı elinize sağlık!

  2. Bu sistemler yanlış yazımı tespit ediyor, peki ya doğrusunu önerebiliyorlar mı?

  3. Merhaba,

    Güzel bir makale olmuş, teşekkürler. Bu konuda daha iyi algoritmalar yapılabileceği düşünüyorum. Şu satırları yazıyorken bile (Chrome kullanıyorum) karşıma çıkan kırmızı satırlar çıkabiliyor. Hatta bir süredir bunları not alıyorum ve neden böyle olduğunu çözmeye çalışıyorum. Çünkü sözcükler normal ama altı çizili. İşte ben bundan nefret ediyorum 🙂

    Basit bir örnek vereyim:

    – (aratırsak): An itibariyle, Google üzerinde “anlayamayışımızın” sözcüğünü aratırsak 400’den az sonuç çıkacaktır. Çünkü bu sözcüğü herkes doğru yazamıyor.

    Bunun dışında şu benzer sözcüklerde yine aynı durumlar karşılaşıyoruz:

    – vurulmadın
    – tutunmadın
    – boyanmadın
    – saplamadın

    Bu durum öyle salakça bir hal almış ki “açmadın” dediğinizde altı kırmızı çizgiler ile karşılaşmıyorsunuz ama “koşmadın” dediğiniz de o nefret edilecesi şey yine çıkıyor 🙂

    Off, off! Ben çok dertliyim de neyse. Çalışmalarınızda başarılar dilerim…

    • admin

      24 Nisan 2014 at 04:16

      Yazıda da bahsettiğim gibi Problem morfolojik çözümleme yerine kelime listesi kullanımı. Kelime listede var ise doğru, yok ise yanlış kabul ediliiyor. Yine de Firefox’un eklentisinde bayağı bir kelime var. Chrome eklentisinde liste biraz küçük sanırım.

  4. Bir metinde geçen farklı kelime sayısı bulunur mu, diye ararken bu yazıya ulaştım. Çok güzel olmuş.)

    Peki bulunur mu?
    Ama, ek alararak farklılaşanları saymayacak.

Bir Cevap Yazın

E-posta adresiniz yayınlanmayacak

*

© 2017 Harun Reşit Zafer

Temayı tasarlayanAnders NorenYukarı ↑