Doğal Dil İşlemeye Genel Bir Bakış ve Biçimbilimsel Çözümleyiciler - 1

 

Biraz felsefe...

20. yüzyılda bilim ve felsefenin daha önceki zamanlarda hiç olmadığı kadar birbirine yaklaşmış olduğu düşünülür. Soyutun temsilcisi felsefe ile somutun bayraktarı olan bilim, özellikle matematik ve fizikteki iki önemli gelişmenin doğurduğu sonuçlarla  birbirlerini kucaklamış görünüyor.

Fizik alanında, Einstein’ın uzay, zaman ve madde kavramlarını değiştiren izafiyet teorisinin açıklanmasında bir dizi denklem ve hesaplamalardan daha çok işin altyapısındaki felsefi yaklaşım önem kazanmıştır. Özellikle ‘zaman’ kavramını yüzyıllardır tartışan felsefe (‘Zaman geçmişten geleceğe bir bütün müdür, yoksa anların birleşiminden oluşan bir zincir midir?’ sorusu gibi...), görelilik teorisi ile bu tartışmalarının somut düzleme aksetmesini yoğun bir ilgiyle karşılamıştır.

Matematik sahasındaki gelişme ve bu gelişimin etkilerini ise, bir anlam da bilgisayar devriminin temelleri saymak çok da abartılı bir ifade olmaz. Esasen felsefe ve matematik daha eskilerden beri ‘mantık’ bilimi ortak paydasında bir birlikteliği sürdürüyorlardı. Elektronik devrim ve sonucundaki bilgisayarların, yani 0 ve 1’lerin dünyasının keşfi, yine soyut önermelerin somut karşılıklarının oluşmasının ilk sinyalleri  sayılabilir. Fakat kanımca,  felsefe ve matematiğin buluşma noktası olan ‘mantık’, esas itibarını yapay zeka (YZ) çalışmalarının başlamasıyla oluşturmaya başlamıştır. Yapay zeka konularında her şeyin öncesinde ulaşılmak istenilen hedefin mantıksal olarak sağlam temeller üzerine oturtulması ve modellenmesi gereklidir. Dikkat edilirse daha çok YZ alanında kullanılan Prolog benzeri programlama dillerinin yazım kuralları (syntax) çok basit olmasına rağmen, esas zorluğu çözülecek problemi sağlam, kaçağı olmayan önermelerle ifade etmektir. YZ alanında kısa sayılabilecek bir zaman öncesinde başlayan araştırmalar çok da uzak olmayan tarihlerde vereceği sonuçlarla insan hayatını birebir değiştirecek ve önümüzdeki yüzyıla damgasını vuracaktır.

Biraz tarih...

Tarih boyunca bilimin gelişmesinin iki ana sebebi olmuştur. Tıp ve savaşlar... Birincisinin insan hayatını kurtarmaya yönelik, ikincisinin ise bunun tam tersine bir amaç gütmesi ne kadar da garip bir tezattır. İkinci dünya savaşında Almanlar'ın şifreli haberleşmesini kırmaya yönelik çalışmalar dahilinde Alan Turing’in çalışmaları, sonlu durum tekniklerinin (finite state machines) temeli olan Turing makinesi ve ilk programlanabilir bilgisayarın yapılması, muhteşem ilerlemeler ifade ediyordu. Bu gelişmeler savaştan sonra bilgisayar biliminde önemli basamaklar oldular. Turing’in çalışmalarının yapay zeka alanında, özellikle de YZ’nın da Doğal Dil İşleme (Natural Language Processing) konusunda, belki de en temel taşları oluşturduğu düşünülebilir. Bu savın dayandığı temel noktaların izahı yazının ileriki bölümünde biçimbilimsel çözümleyiciler (morphological analyzers) bahsinde ifade edilecektir.

Bilim ağacının her dalı belli bir problemi çözmek üzere uç verir ve bu yeni sürgünden ana problemin alt sorunlarını halletmek üzere yeni dallanmalar, budaklanmalar olur. Bu bağlamda yapay zekanın ulaşmak istediği nokta neresidir? Hedef; taklidin orijinalinden fark edilemeyecek kadar iyi olması...  Bu amaç 1950 yılında Alan Turing tarafından ‘telefonda konuştuğunuz kişinin kanlı canlı bir insan mı yoksa bir bilgisayar mı olduğunu ayırt edememek’ şeklinde ifade edildi. 1966 yılında Joseph Weizenbaum‘un yaptığı ELIZA adlı program çok basit kalıpları tanıyarak (template recognition) kullanıcısına psikolojik terapi uygulayabiliyordu. İlkel bir uygulama olmasına rağmen ELIZA projesi insanla bilgisayar arasında normal bir iletişim kurulabileceğine dair araştırıcılara güç verdi. Başlangıçta YZ’nın küçük bir kolu kabul edilen doğal dil işleme, kısa sürede genişleyerek başlı başına bir disiplin oldu. Günümüzde artık telefon konuşmalarında anında çeviri yapabilen sistemler pilot uygulama aşamasına gelmiş bulunuyor. İngilizce ve Japonca konuşan iki insan telefonda karşılıklı kendi anadillerinde iletişim kurabiliyor.

Biraz teknik...

Makinelerle aramızda bir duvar var sanki. İnsan ve onun yaptığı makine değişik dillerde konuşuyor. Herhangi bir işi yaptırmak için belirli düğmelere basmamız, belirli komutları belirli formlarda girmemiz, yani kendi oluşturduğumuz sistemde o sistemin kurallarıyla hareket etmemiz gerekiyor. Oysa bilim-kurgu filmlerindeki tipte bilgisayarlar gerçek olsa da direk kendi ana dilimizde ve kendi sesimizle işlerimizi halledebilsek ne kadar büyük bir kullanım kolaylığı oluşur. Yani oturup kahve içerken ‘ZET, bana İnternet'ten en büyük on akıllı kart üreticisi firmayı bul ve bunların içinden de X ürünü bazında fiyat sıralamasını yap.’ deyip, sonuçları birkaç saniye sonra sesli dinleyebilsek, hatta ZET bize daha efektif çözümler için önerilerde bulunabilse, veya farklı dilleri konuşanlar birbirlerinin dillerini öğrenmek zorunda kalmadan otomatik çeviri sistemleriyle anlaşabilse, veya çağrı merkezlerindeki bilgisayarlarla konuşarak anlaşabilsek.... Bunlara benzer örnekleri çoğaltmak sadece insanın hayal gücü ile sınırlı. İşte en uç noktasıyla dil ve ses teknolojilerinin yapay zeka ile ulaşmaya çalıştıkları hedef dünyadan birkaç portre...

Şimdi, insan ve bilgisayar arasındaki bu tip iletişimleri sağlayabilecek sistemlerin mimarisine biraz yakından ve biraz da teknik olarak bakalım. Evvela işin ses işlemesi ve  dil işlemesi olarak iki ana ayağı mevcut. Başlı başına ayrı bir konu teşkil eden ses teknolojileri çok genel bir ifadeyle dilin fonolojik özelliklerinin incelenerek sesten yazıya ve yazıdan sese çevrimler yapılması olarak özetlenebilir. Dil işleme tekniklerini ise dört ana basamak halinde açıklamak mümkün.

Kelimeden hareket ederek cümleye ve oradan da anlam çıkarmaya yönelik bu basamakların ilki sözcük oluşumunu ele alan biçimbilim (Morphology). Bu basamaktaki en temel amaç analiz edilen kelimenin kökünü ve eklerini doğru olarak tespit ve tasnif edebilmek. Bu amaç için programlanan biçimbilimsel çözümleyiciler (morphological analyzers) dil işleme tekniklerinin de en temel motorunu oluşturmakta. Zira bundan sonraki basamaklar bu çözümleyicilerin sonuçlarını girdi olarak kabul edip ona göre çıktılar vermekte. Bir sonraki kısımda daha derinden inceleyeceğimiz bu morfolojik analiz programlarının tek başlarına kullanım sahaları da mevcut.

İkinci basamak sözcüklerin birleşmesi ile oluşan cümlelerin analizi. Sentaks (Syntax) olarak adlandırılan bu kısımda cümlenin oluşturulması veya bir cümlenin ana bileşenlerine ayrılması (parse) amaçlanmakta. Yani tamlama gruplarını, sözcük öbeklerini tespit etmek. Dilin cümle oluşum gramerini temel alan bu çalışmalar sonucunda gelinen aşama biçimbilimsel çözümleyici ile analiz edilen kelimelerin birleşerek oluşturdukları öbekler ve onların da tekrar birleşerek oluşturduğu cümleler.

Üçüncü basamak olan anlam incelemesi (semantics) esas  olarak cümlelerin beynimizde şekillenerek bir mana ifade etmesi noktası olarak algılanabilir. Çözümlenmiş kelimelerin ve ayrıştırılmış cümlelerin gerçek dünyadaki yankılanması olan bu basamak daha evvelki basamaklarda ortaya çıkan birden çok çözümün anlam irdelenmesi yapılarak teke indirilmesini ihtiva eder. Yani bir çeviri sisteminin A dilinden B diline çeviri yapması için A dilindeki girdinin son biçimlenme ve B dilinde anlamlandırılma aşaması denilebilir.

Son olarak cümlelerin birleşerek oluşturduğu ifadelerin (context) bütünü içerisinde de  birbirine işaret eden kısımların da ilişkilendirilmesi ve anlam bütünlüğü açısından irdelenmesi gerekir (pragmatics). Esasen üçüncü ve dördüncü basamaklar arasında çok derin bir ayrım bulunmamakta ve bu bağlamda bazı araştırmacılarca bir arada değerlendirilmektedir.

Sonuç olarak en temel kavramları ile açıklamaya çalıştığımız doğal dil işleme “ana işlevi doğal bir dili çözümleme, yorumlama, anlama ve üretme olan bilgisayar sistemlerinin tasarımını ve gerçekleştirilmesini konu alan bilim ve mühendislik dalı” olarak tanımlanmaktadır.

M. Oğuzhan Külekçi

 

 

Bu yazının haftaya yayınlanacak ikinci bölümünde biçimbilimsel çözümleyiciler ve pratik kullanım alanlarına değinilecektir. Yazıyla ilgili görüş ve yorumlarınızı yorum@teknoTurk.org ve kulekci@uekae.tubitak.gov.tr adreslerine yollayabilirsiniz.