Doğal Dil İşleme Nedir ? (NLP) yapay zeka metotlarını kullanarak bilgisayar ile doğal dilde iletişim

Giriş

Doğal dil işleme (NLP), yapay zeka metotlarını kullanarak bilgisayar ile doğal dilde iletişimin sağlanmasıdır. Bunun için öncelikle bilgisayarın dilbilgisi dediğimiz doğal dil kurallarını öğrenmesi gerekmektedir. Bunun yanında dil içinde kullanılan deyim ve tabirleri de bilmelidir. Bunun için bilgisayar genel bir sözlüğe ve bu sözlüğün kullanımına yardımcı olacak algoritmalara ihtiyaç duyar. Bilgisayar dil ile ilgili genel bilgilerin yanında ihtiyaç duyduğu ve dilin genel yapısından bağımsız olarak algılanması gereken "alana özel" hatta "göreve özel" bir bilgi tabanına gereksinimi vardır. NLP’de arzulanan bilgisayarın verilen girişi anlaması ve bu girişe uygun bir çıktı vermesidir. Aynı zamanda verilecek olan çıktının da doğal dilde olması istenir. Bunu sağlamanın en kolay yolu da bilgisayarın kullanabileceği cümlelerin, sözcük öbeklerinin, deyim ve tamlamalar ile varsa genel manada paragrafların bilgisayara verilmesidir.

NLP’de Kullanılan Terimler

Doğal Dil (NL) : İnsanlar arasında iletişimi sağlayan sözlü ve yazılı kurallar dizisidir. Dil içerisinde sesler, işaretler, semboller, kelimeler, cümleler ve paragraflar kullanılır.

Dilbilim (Linguistic) : Dillerin nasıl yapılandığını ve kullanıldığını araştıran bilim alanıdır. Dilbilimi, genel olarak kullanılan tüm kelime ve deyimleri organize ederek lexicon adı verilen ir sözlükte toplar. Lexicon, bir dilde kullanılan tüm kelimelerin alfabetiksel olarak sıralandığı bir sözlükten başka bir şey değildir.

Bir dilde, düşünce ve duyguların anlatılabilmesi için kelimelerin ne şekilde bir arada kullanılabileceğini gösteren kurallar dizisine gramer denir. Gramer, sözdizimi (syntax) ve anlambilimi (semantics) denilen iki alt parçadan oluşur.

Sözdizimi (sentaks), cümle içinde kelimelerin, isim, fiil, zarf, sıfat vb. gibi hangi görevler ile yer alacağını inceler. Diğer bir anlatım ile sentaks kelimelerin bir cümle içinde yer alırken uyulması gereken bir metottur.
Semantik ise dil içindeki kelimelerin anlamı ve birbiri ile iletişimi üzerinde çalışan bir bilim alanıdır. Semantik bize söyleneni analiz etmeyi, anlamayı ve yorumlamayı sağlar.

NL ile çalışılırken bilgisayar için gerekli olan genel kültür bilgi tabanı, alana özel bilgi tabanı ve göreve özel bilgi tabanı sağlansa dahi, dilin farklı kullanımlarından kaynaklanan belirsizlikler ortaya çıkar. Bu nedenle NL üzerine çalışmak oldukça zordur.
Örneğin;

Hasan : Bu gece kim daha şanslı İstanbul mu Beşiktaş mı ?
Ali : Bence karakartal, ya sen ne diyorsun ?
Hasan : Olmaz oyle sey, Kartal, Nauma’sız uçamaz.
…….

Böyle bir konuşma bizim için çok şey ifade etse de bilgisayar için oldukça karmaşık bir anlama sahiptir. Anlaşılması ve yorumlanması zordur.

NLP Programları Nasıl Çalışır

NLP programlarında kullanılan üç temel teknik vardır.
1. Anahtar kelime arama
2. Sentaktik ve semantik analiz
3. Kavramsal bağlılık
Aşağıda sıra ile bu teknikler incelenecektir.

Anahtar kelime arama

Anahtar kelime analizi (AKA), NLP’de kullanılan en temel tekniktir. Program daha önceden tanımlanmış ve bilgi tabanında bulunan anahtar kelime ve deyimleri cümle içerisinde arar. Bulunan kelime ya da deyimlere uygun cevap üretilir. AKA ‘da kullanılabilecek olan algoritmanın en genel şekli Şekil 1’de görülmektedir.

Image

Şekil 1. AKA süreci

Böyle bir sistemde ilk olarak kullanıcıdan gelen istek ya da giriş cümlesini alarak bir tampona (buffer) yükler. Daha sonra, bu cümle içindeki kelimeleri bilgi tabanında bir arama yapar. Bu raştırma sonucunda eğer hiçbir anahtar kelimeye ulaşılamamış ise programa bu duruma uygun bir mesaj gösterir. Eğer bir kelime bulunmuş ise daha fazla anahtar kelime olup olmadığına bakılır. Eğer araştırma tanımlanmış ise gerekli cıktı kullanıcıya gösterilerek işlem tamamlanır.

Sentaktik ve Semantik Analiz

NLP’de yaygın olarak kullanılan diğer bir teknikte sentaktik ve semantik analizdir. Bilindiği gibi, bir dilin en temel elemanı cümlelerdir. Cümleler ile tamamlanmış olan düşünceler ifade edilir, soru sorulur, yanıt ya da emir verilir. Cümleler kelimelerden oluşur. Her kelimenin kendi başına bir anlamı olduğu gibi birden fazla anlamı da olabilmektedir. Kelimenin anlamına cümlenin geneline göre karar verilir. Aynı zamanda farklı kelimeler bir araya gelerek de belirli deyimleri ya da tamlamaları oluştururlar. Anahtar kelime arama ile cümleler içerisindeki kelimelerin farklı kullanımları tam olarak tespit edilememektedir. Sentaktik ve semantik analiz ile cümle kelimelerin farklı kullanımlarını ya da aynı anlama gelen farklı cümleleri daha kolaylıkla tespit edilmekte ve anlama artmaktadır. Bu yaklaşımda giriş cümlesinin sistematik bir analizi yapılmaktadır. Bir kelimenin birden fazla anlamı olduğu ile cümle içerisinde birden fala görevde de rol alacağı ve bu anlamların kullanım yerlerine göre değiştiği, cümlelerin farklı yapıda kurulabildiği düşünülürse böyle bir analizin oldukça zor olduğu anlaşılacaktır.

Kavramsal bağlılık

Kavramsal bağlılık teorisi Roger Schank tarafından geliştirilerek, 70’li ve 80’li yıllarda öğrencileri tarafından uygulanmıştır. Temel yaklaşımı anlam çıkartmayı kolaylaştıracak gösterimlerin geliştirilmesidir.

NLP Sistemi

NLP sisteminin beş temel elemanı bulunur.

1. Parser
2. Lexicon
3. Anlayıcı
4. Bilgi tabanı
5. Üretici

Bu beş eleman ve etkileşimi Şekil 2’de gösterilmektedir.

Image

Şekil 2. NLP sistemlerinin genel blok diyagramı. – ekli daha yakında görmek için üzerine tıklayınız…

Sıra ile bu elemanları incelersek ;

1. Parser

Parser, NLP’in en temel elemanıdır. Parser verilen cümleyi sentaktik olarak analiz ederek, parser ağacı denilen yapıya ayırır. İngilizce cümleler için ortaya konulan parser ağacında öncelikle cümle (S), isim sözcük öbeği ( noun phrase- NP) ve fiil sözcük öbeği (verb phrase -VP-) olmak üzere ikiye . Daha sonra fiil sözcük öbeği fiil ve isim sözcük öbeği olmak üzere tekrar ikiye ayrılır. Burada dikkat edilmesi gereken nokta bulunan ilk isim sözcük &oum
l;beği cümlenin öznesini gösterir. Diğer sözcük öbeği ise cümlenin nesnesini belirler. Parse ağacı Şekil 3’de görülmektedir. Bu işlem bizim ilkokul yıllarında öğrendiğimiz cümlenin öğelere ayrılmasına benzemektedir. Bu işlemden sonra görevleri belirlenen kelimeler semantik analize tabi tutularak giriş cümlesi ile ilgili bir çıkış cümlesi oluşturulur.

Image

Şekil 3. Parse ağacı

2. Lexicon

Lexicon program tarafından tanınmasını istediğimiz tüm kelimeleri içeren bir çeşit sözlüktür. Daha önceden de bahsedildiği gibi alana veya göreve özel alt öğelere sahiptir. Parser, lexicon ile sentaktik analiz yaparak çalışır. Lexicon her kelimenin doğru hecelenmesi ile her kelimenin NLP sistemi tarafından tanımlanan ve tanınmasını istenilen kelimelerin kök ve anlamlarını içerir. Doğaldır ki, kelimeler tek başlarına bir anlama sahip oldukları gibi birden fazla kelime ile bir araya gelerekte çeşitli anlamlar içerebiliyorlar. Bu tür kelimelerin tanınması için NLP sisteminin buna göre yapılandırılması gereklidir.

Bazı parser sistemleri kök analizi yapabilir. Verilen kelimenin anlamına ulaşabilmek için kelimeyi hecelerine ayırarak kelimeni köküne ulaşılır. Bu durumdan dolayı lexicon içerisinde çeşitli kelimelerin temel köklerinin bulunması gereklidir. Kök analizi yapılmayan NLP sistemlerinde lexicon içerisinde kelimelerin muhtemel tüm köklerinin bulunması gereklidir.

NLP sistemlerinde parser ile lexicon birlikte çalışırlar. NLP sistemi giriş cümlesinde parser ağacını meydana getirir ve bir anlama ulaşmaya çalışır. Ancak sentaktik analize rağmen bir sonuç çıkatılamayabilir. Bu durumda NLP sistemi semantik analize ihtiyaç duyar. Cümle içerisinden bir kelime seçilerek bu kelime lexiconda içinde araştırılır. Bir sonuça ulaşılmış ise bu bellek içerisinde saklanır ve parser diğer bir kelimeyi seçerek lexicon içerisindeki araştırmasına devam eder. Tüm bu arama ve seçme işlemleri sırasında tesbit edilen yazım ve kullanım hataları kullanıcıya gösterilerek, kullanıcıdan gelen cevaplara göre doğru sonuca ulaşılmaya çalışılır.

Lexicon üzerinde yapılan işlemler temel olarak dört bölümde incelenebilir.

1-Tokanizasyon: Giriş cümlesi belirli taken (jeton)lar kullanılarak bölümlenir. Bu jetonlar genellikle kelime ve noktalama işaretleridir. Yalnız bu jetonlar dilin yapısına bağlı olarak secilirler. Örneğin bir dilde boşluk jeton olarak seçilirken, japonca’da kullanılamaz. Çünkü japonca’da kelimeler arasında boşluk işareti kullanılmamaktadır.
2- Köksel analiz : Bu aşamada kelime hecelelerine ayırt edilerek kelimenin köküne ulaşılır. Hecelere bölümlenerek köksel analiz Türkçe ve Fince gibi sondan eklemeli diller için NLP sistemlerine önem arz etmektedir.
3- Sözlüğe bakma : Yukarıda belirtilen teknikler kullanılarak tesbit edilen kök kelimenin ne anlama geldiği sözlüğe bakılarak tesbit edilir.
4- Hata dönüşümü : ulaşmış olduğunuz bir kökü sözlük içerisinde bulamamış iseniz muhtemelen bir hata oluşmuştur. Bu hatalar genellikle kelimenin yanlış hecelenmesinden, özel isimlerin doğru tesbit edilememesinden ya da kelimein yazı biçiminden kaynaklanır.

Pratikte, NLP sistemleri içerisinde kullanılan lexicon içerisinde 10000 ile 100000 arasında kelime bulunur. Bu sayılar göz önüne alınırsa lexiconun oldukça büyük ve karmaşık bir yapı olduğu ve büyük bir yatırım ve zaman gerektirdiği görülür.

3- Anlayıcı ve Bilgi Tabanı

Anlayıcı, bilgi tabanı ile birlikte cümlenin ne anlama geldiğini tespit etmeye çalışır. Bilgi tabanı kavramsal olarak genel bilgi tabanı ve görev bağımlı bilgi tabanı olmak üzere iki alt öğeden oluşur. Anlayıcının temel görevi oluşturulan parse ağacının bilgi tabanındaki karşılığını bulmaktır. Böylece sorulan sorunun ya da istenilen veriye bilgi tabanı ve onun öğeleri kullanılarak cevap verilmiş olunur.

4- Üretici

Anlayıcı verilen cümleye uygun cevabı hazırlar ve belleğe yükler. Daha sonra kullanıla arayüz buradan bu cevaba bakarak kendisinde bulunan uygun cevabı kullanıcıya gösterir. Bu cevap bir veri tabını yönetiminde bir sorgulama ya da onun sonucu olabilir. NLP sistemlerinde kullanılan en temel üretici sistemi, belli kelime ve cümleler için depolanmış belirli kalıpların kulanıcıya gösterilmesidir.

NLP Uygulamaları

NLP sistemleri çeşitli sistemlerde kullanılmaktadır. En fazla kullanılan yerler, veri tabanı yönetim sistemleri, NLP arayüzleri, tercüme programları ile gramer analiz ve belge yönetim programlarındır.

1- Veri Tabanı Yönetim Sistemleri

NLP sistemleri, üzerinde büyük ve geniş veri dosyalarının depolandığı ve depolanan bu dosyalar üzerinde çeşitli işlemlerin gerçekleştirildiği veri tabanlarının yönetimlerinde kullanılırlar. NLP’nin 60’lı ve 70’li yıllarındaki gelişim süreci içerisinde birçok veri tabanı yönetimlerinde kullanıldılar. Bu kullanımlarından en ilgiçlerinden bir tanesi NASA tarafında coğrafik veri tabanı üzerinde kullanılan ve LUNAR adı verilen sistemdir. Bu sistem %75 ile %80 doğruluk oranları arasında çalışmaktaydı. Bu çalışmanın bir benzeri yine coğrafik veri tabanı üzerinde 1983 yılında geliştirilen CHAT adı verilen bir diğer benzer sistemdir. Bu sistemin doğruluk oranı daha yüksektir. Veri tabanı yönetiminde kullanılan bir diğer sistemde, IBM işletim sistemleri üzerinde çalışan INTELLECT isimli bir yazılımdı. Bu yazılım kullanıcıya veri tabanı üzerinde doğal dili kullanarak sorgulama yapıp rapor hazırlamasını sağlar.

2- Tercüme Sistemleri

Bilgisayarın gelişim süreci içerisinde bilgisayarlardan en fazla beklenilen bir işte, bir dilden diğer bir dile tercüme yapılmasıydı. Zamanla böyle bir işin NLP sistemlerinin kullanımı ile mümkün olabileceği anlaşılmıştır. Bir cümlenin bir dilden diğer bir dile tercümesinde en önemli iş verilen cümlenin iyi anlaşılması ve anlam kaybına uğramadan diğer dilde ifade edilmesidir. Montreal Üniversitesinde geliştirilen ve TAUM-METEO adı verilen sistem bu tür yazılımlara bir örnektir. Bu yazılım İngilizci’den Fransızcı’ya resmi raporların tercümesinde kullanılmıştır. Doğruluk oranı oldukça yüksektir. Bu oranın yüksek olmasının sebebi ise resmi raporlarda kullanılan formatın ve dilin formalize edilmiş olmasıdır. Bu tür sistemlere bir diğer örnek ise SPANAM isimli İspanyolca’dan -İngilizce’ye tercüm
e yapan bir yazılımdır. Bu yazılım anlaşılır bir tercüme yapsa da gramer yönünden doğru bir çözüm sunamamaktadır. Bu nedenle doğruluk oranı TAUM-METEO’ya göre oldukça düşüktür. Şekil 4’de örnek bir tercüme sistemi görülmektedir.

Image

Şekil 4. Örnek bir tercüme sistemi

3- Gramer Analizi Sistemleri

NLP sistemlerinin bir diğer uygulama alanı da gramer analizi sistemleridir. Gramer analiz sistemleri verilen bir yazıyı öncelikle yazım hatasına karşı denetlerler. Daha sonra, metin içerisindeki yanlış kelime ve deyim kullanımlarına bakarlar. Eğer yanlış kelime veya deyim kullanımı mevcut ise bunların düzeltilmesini önerilerde bulunarak isterler. Aynı zamanda, yanlış kullanılmamış, fakat kullanılan deyim ya da kelime yerine daha uygun bir deyim veya kelime var ise onu öneri olarak sunarlar. Gramer analiz sistemleri bununla birlikte metin içerisindeki cümleleri konu ve fiil yönünden de incelerler. Eğer konuya uygun düşmeye fiiller varsa onların yerine kullanılabilecek fiilleri öneri olarak sunar. Bazı gramer analiz sistemleri metnin okuma seviyesini ya da parse ağacını dahi çıkartabilmektedir. Bu tür sistemlere UNIX üzerinde çalıştırılmak üzere Bell laboratuarlarında geliştirilen Writer’s Workbench ile IBM sistemleri üzerinde çalışan EPISTLE birer örnektir.

4- Belge Yönetim Sistemleri

Belge yönetim sistemleri NLP’nin kullanıldığı bir diğer uygulama alanıdır. Bu tür programlar çok fazla sayıda belgenin bulunduğu ortamlarda, verilen anahtar kelimelere göre belgeler arasında araştırma yaparak belgelerin özetini hazırlayabilirler. SCISOR isimli belge yönetim yazılımı bu tür yazılımlara bir örnektir.

5- Konuşma Tanıma

Konuşma tanıma NLP ile ilgili bir diğer yapay zeka (AI) alanıdır. AI yazılımları bilgisayar sistemine sesli bir giriş yapılabilecek şekilde tasarlanabilirler. Sesli bir giriş sonrasında elde edilen girdi NLP sisteminde kullanılabilir. Aynı şekilde sistemin vereceği cevap yine sesli bir şekilde kullanıcıya iletilebilir.

NLP sistemleri hayatımızın çeşitli evrelerinde kullanılması yaşamımızı kolaylaştırır. Fakat, NLP sistemlerinin eklendiği bir yazılım daha fazla maliyetli ve daha fazla karmaşıktır. Aynı zamanda daha fazla belleğe ihtiyaç duyar. Bazen normal sistemlere göre veri girişi daha uzun süre alabilir.

Posted in Genel.

Bir cevap yazın