Mlliyet Milliyet Blog Milliyet Blog
 
Facebook Connect
Blog Kategorileri
 

04 Mart '07

 
Kategori
Yazılım
Okunma Sayısı
4663
 

Çeviri programı yazmak

Çeviri programı yazmak
 

Günümüzde Türkçe' den İngilizce ve diğer dillere, yine bu dillerden Türkçe' ye çeviri yapan gerçek anlamda bir program henüz yok. Gerçi İngilizce' den Türkçe' ye nispeten başarılı bir iki program mevcut; özellikle İngilizce' yi hiç bilmeyen kullanıcılar için bazı alanlarda kullanışlı olabiliyorlar. Ancak gerçek anlamda bir çeviri yapmaktan çok öteler. Hele Türkçe' den İngilizce' ye çeviri yapan tek bir program bile mevcut değil - sözcüklerin karşılığını vererek çeviri yaptığını iddia edenleri saymıyorum tabi.

Şahsen çok uzun süredir güzel bir çeviri programı nasıl yapılır, bu konu üzerinde kafa yoruyorum. Öyle bir çeviri programı ki, profesyonel bir çevirmen kadar başarılı ve doyurucu çeviri yapabilsin. Bu yazımda sizinle bugüne kadar edindiğim birikimi paylaşmak istiyorum:

Dilbilim yani linguistik kitaplarını incelerseniz, kullandığımız dilin genel olarak iki ana bölüme ayrıldığını görürsünüz: Sentaks (sözdizim) ve semantics (anlamdizim). Sözdizim, cümle içindeki her bir sözcüğün yeri ve rolünü gramer açıdan ele alan bilimdir. Sentaks ise o sözcüğün anlam açısından niteliğini inceler. Geliştireceğimiz çeviri programı da bu iki aşamayı içinde barındırmalı. Tabi sözdizim bölümü halledilmeden anlamdizim aşamasına geçilemez. Ancak yalnızca sözdizim aşamasında bili oldukça yetenekli bir çeviri programı geliştirmemiz mümkün olacaktır.

Sözdizim aşamasının en temeli ise cümle ayracı yani bir parser programdan geçmektedir. Ayraç modülü, cümleyi özne, nesne, yüklem gibi rollerine ayırırken, her bir rolü de kendi içinde isim tamlaması, sıfat tamlaması, zarf gibi yapılara ayırmayı başarır. Bu özellik bize cümle üzerinde dilediğimiz oranda hakimiyet verir. Örnek olarak:

"The sad man walks slowly on the bridge now" cümlesini ele alalım. Bu cümleyi ayraçladığımızda aşağıdaki yapıyı elde ederiz:

-
English Sentences
-
Main Clause
-
the sad man
the
-
sad man
sad
man


-
walks slowly
walk
slowly

-
on the bridge
on
-
the bridge
the
bridge


now

Visual Studio .NET C# dilini kullanarak geliştirdiğim bu modülü yazarken gördüğünüz gibi XML tabanlı bir yapı seçtim. XML oldukça esnek bir yapısal bir nitelik taşımakta. Tabi ayraç programımızın temel mantığı geriyeçağrışımlı (recursive) yordamlardan oluşuyor. Dolayısıyla bir cümle ne kadar karışık, içiçe ve uzun olursa olsun, programımız o cümleyi başarılı bir şekilde ayraçlayacaktır. İngilizce Ayraç modülünü büyük oranda bitirmiş durumdayım ancak henüz hala bir prototip aşamasında. Özellikle tüm zaman kiplerinin (tense), bileşik cümlelerin ve kalıpların ele alınması uzun bir süreci kapsamakta.

Tabi bu modülün yanında bir de Türkçe ayraç modülümüz var sırada. Her ne kadar iki dil birbirinden çok farklı yapıda gibi görünse de, XML çanta sistemini kullanarak, aynı mantıkla Türkçe ayraç modülü geliştirmemiz mümkündür (bu aşamaya maalesef henüz ulaşamadım, ama aynı kaynak kodunu bir miktar özelleştirerek sonuca ulaşabileceğimi düşünüyorum).

Aynı mantıkla örülü iki ayraç sistemimiz olduktan sonra, çanta mantığını kullanarak (örneğin sıfat tamlama çantası içinde yer alan bir isim tamlama çantası gibi) iki dil arasında karşılıklı dönüşüm dolayısıyla çeviri yapmamız mümkün olacaktır.

Burada en önemli nokta, çanta mantığının bize bütüncül bir yaklaşım sunması ve bir sözcüğün tamlama, rol veya cümle içindeki konumuna göre anlamının değişebilmesi. Dolayısıyla mecaz dahil istediğimiz sözcük veya kalıbın çevirisini tam olarak elde etmemiz - üstelik sözdizim düzeyinde - mümkün olacaktır. Bu aşamadan sonra gelecek anlamdizim aşaması ise gerçek anlamda Yapay Zeka sistemlerinin geliştirilmesinin önünü açacaktır.

Böylesi bir projeyi doğal olarak tek başıma bitirmem neredeyse imkansız. Yine de geliştirdiğim bu yaklaşımın başarılı olduğuna ve olacağına, sonuçta da çeviri programcılığında - özellikle profesyonel bir çeviri bürosu ile beraberce projelendirildiği takdirde - çığır açacağına inanıyorum.

Önerilerine Ekle Beğendiğiniz blogları önerin, herkes okusun.

 
Tıklayın, siz de blog yazarı olun! Aklınızdan geçenleri paylaşın!
 
 

Tevratta yer alan Cenneteki yasak bilgi ağaçı, ne kadar dil ağaçına benziyor değil mi? Diğer taraftan dil, kuavantum fiziğine ne kadar benziyor. Bir kelimenin sözlükte birden fazla anlamı oluyor genelde. Kelime, kendi başına bütün bu anlam koordinatlarında aynı zamanda bulunabiliyor. Tıpkı, bir elektronun aynı zamanda birden fazla yerde bulunması gibi. Kelimeler cümle içinde diğer kelimelere ve bu cümleden önceki diğer cümlelerin kelimelerine göre tek bir anlam koordinatına yuvalanır. Ya da çöker. Tıpkı kuvantum olasılık dalga fonksiyonun çökmesi gibi. Yani, aslında anlam kelimelerde değil, ilişkilerde saklıdır. Son noktalama işareti de okununcaya kadar, çeviri yapılamaz. Bu nedenle iyi çevirmenler, çevirecekleri kitabı önce okuyup, bitirirler. Sonra çevirirler. Yani, kelimeler arasındaki ilişkilerin oluşturduğu resmi görüp, sonra aynı resmi diğer dille oluştrumaya çalışırlar. Resim sanatı, aynı anda ilişkilerini sergiler. Dil ve müzik zamanda ilişkilerini sergiler. İyi çalışmalar

Deniz Postacı 
 01.06.2007 18:26
Cevap :
Herşeyin özündedir Söz. "Başlangıçta Söz vardı" diyerek başlar Yuhanna. Kur'an kelimesi, "okumak" kökünden gelir; bir gün tasarlanacak Yaşayan Söz algoritması, özde somutlaşmış Kur'an olacaktır... Bütünsellik içindeki ilişkisellik... Cümle içinde sözcüklerin konumu. Konu içinde cümlelerin durumu. Makale içinde konuların bulunumu... Cümle, insan zihnine açılan en basit ama en karmaşık kilit gibi... Değerli katkınız için çok teşekkür ederim. Ancak Google'ın stokastik bir yaklaşımla yüz dili kapsayan bir çeviri sistemi geliştirdiğini öğrenince moralim bozulmadı değil :)  02.06.2007 10:28
 

Çeviri programı oğlumun ödevi için gerekliydi. Uzun bir metindi ve oğlumun bunu rahat bir şekilde çevirecek zamanı yoktu. Benden, netten bulmam konusunda yardım istedi. Sizinde dediğiniz gibi ne yazıkki bulamadım. Mevcut programlarında yeterli olduğunu düşünmüyorum. Umarım bu yöndeki girişiminizde başarılı olursunuz. Kolay gelsin

Abla 
 05.03.2007 23:32
Cevap :
Sevim Hanım, sizin de bizzat gözlemlediğiniz gibi bu alanda ciddi bir boşluk var. Benim yaptığım bu konuya iyi niyetli bir girişim ama hali hazırda tek kişilik bir hobi çalışmasından ibaret. Gerçek anlamda kullanabileceğimiz bir yazılımın ortaya çıkması için, bu konunun çok ciddi bir şekilde projelendirilmesi gerekiyor. Umarım yazdıklarım ilgilenenlerin zihninde bir ışık yanmasına yardımcı olur. Çok teşekkür ederim, oğlunuza başarılar :)  06.03.2007 8:15
 

İşiniz zor. çeviri işi ancaky apay zeka gibi bir şeye ulaştığınızda iyi bir kıvama gelir. Çeviri yorum isteyen bir şeydir. Bir dilden diğer bir dile çeviri yaparken, çeviren okuduğunu değil o cümleden çıkan anlamı, yani anladığını çevirir. Birebir çeviri dediğimiz şey konuşmalarda olur ki onda bile çeviren kişi kendi yorumunu katıp çevirir. Yani işiniz zor. Kolay gelsin ne deyim. Sevgilerle

Gülün içinden 
 04.03.2007 21:02
Cevap :
Sevgili Gül, bir İngilizce öğretmeni olarak bu işin ne kadar ayrıntılı ve karmaşık olduğunu sizden daha iyi kim bilebilir ki?.. Zaten yazımın sonunda özellikle böyle bir yazılımın, profesyonel bir çeviri bürosu ile içiçe projelendirilmesinin en uygun olacağını düşündüğümü belirtmiştim. Çünkü olay sizin de belirttiğiniz gibi, teknik bilginin ötesinde bir sanat işi aynı zamanda. Açıkçası bu süreci tamamlayabilir miyim veya sonu ne olur ben de bilmiyorum. Tek amacım, bugüne kadar edindiğim birikimi ilgi duyabilecek insanlarla paylaşmaktı. Katkınız için çok teşekkür ederim, sevgilerimle...  05.03.2007 8:51
 
Facebook hesabınızla yorum yapın, daha çabuk onaylansın!
Toplam blog
: 72
Toplam yorum
: 89
Toplam mesaj
: 18
Ort. okunma sayısı
: 1895
Kayıt tarihi
: 11.10.06
 
 

Yazar 1975 Ankara doğumludur. Monterey Postgraduate School / California'da bilgisayar bilimi dalı..

 
 
Yazarı paylaş
  • Tümünü göster