Türkçe Metinlerde Geçen Kelimelerin Morfolojik Analizi ve Türkçe Karakter Problemi

Türkçe Metinlerde Geçen Kelimelerin Morfolojik Analizi ve Türkçe Karakter Problemi
0 votes, 0.00 avg. rating (0% score)

Türkçe gibi sondan eklemeli dillerde kelimenin kökünü bulmak bir hayli zor. Türkçe bir kelimenin sonuna gelen yapım ekleri ile başka kelimeler türetiliyor. Kelimeye çekim ekleri ile yer,durum, sahiplik  gibi bir çok farklı özellik katılırken kelime kök halinden oldukça farklı bir hale geliyor. Yani bir metinde aynı nesne,duygu veya düşünceyi anlatan bir kelime çok farklı hallerde karşımıza çıkabiliyor. Bu sebeple metinde aradığımız bir kelimenin kök halini doğru olarak bulmak da zor olan bir durum haline geliyor.

Bu konu ile ilgili yapılan çalışmalar mevcut. Bunlardan bir tanesi Deniz Yüret’in çalışması. Bu çalışmada kullanılan uygulamaları çalıştırırken karşımıza çıkan en büyük problemlerden bir tanesi Türkçe karakter problemi. Uygulamaları çalıştırmak ve Türkçe karakter probleminin üstesinden gelebilmek için uygulanan adımlar aşağıda anlatılmıştır.

1. Öncelikle işlemek istediğiniz metnin morfolojik olarak analiz edilmesi gerekir. Bunun için yine Deniz Yüret’in bloğundan ulaşabileceğiniz, Kemal Oflazer’in Türkçe için hazırlanmış sonlu durum makinesini içeren MORPHOLOGYCAL TAGGER uygulaması kullanılabilir. Uygulamaya http://deniz.yuret.com/turkish/tr-tagger.tgz adresinden erişilebilir.

TAGGER’i çalıştırmadan önce makinenizde Xerox Finite State yazılımı bulunmalı. Public olarak bulunabilen bu yazılımı http://www.stanford.edu/~laurik/.book2software/adresinden indirebilirsiniz.

2. Yazılımı kurduktan sonra metnin belirli bir formatta hazırlanması gerekir. Bu format için hazırlanmış örnek input TAGGER içinde sample-input.txt olarak mevcut.

3. Sonraki adımda TAGGER’i çalıştırmak için uygulama içinde gelen Makefile’ı execute etmek gerekiyor. Ancak bu işlemi yapmadan önce Makefile içinde hazır gelen komutta aşağıdaki gibi küçük bir değişiklik yapmak gerek.

sample-output.txt: sample-input.txt

cat sample-input.txt | lookup -latin1 -f tfeatures.scr > sample-output.txt

Yukarıdaki komutun TAGGER içinde gelen Makefile’daki komuttan farkı -latin1 dir. -latin1 encodingini eklemezsek Türkçe karakterler Xerox sonlu durum makinesinden bozularak çıkıyor.

TAGGER’dan output olarak oluşan sample-output.txt bir sonraki adımda kullanacağımız uygulamanın inputu olacak olan dosya. Bu dosyada da Türkçe karakterlerin bozulmadan yazılması için sistem encodingi de set etmek gerek. Uygulamaları java ile çalıştırıyorsanız aşağıdaki kod parçası işe yarıyor.

System.setProperty(“file.encoding”, “8859_9″);

4. TAGGER’in oluşturduğu output dosyası kelimeleri morfolojik olarak analiz edilmiş halidir. Türkçe bir kelimeden eklenen eklerle bir çok farklı kelime türeyebildiği için TAGGER olası ihtimalleri oluşturur. Deniz Yüret’in MORPHOLOGYCAL DISAMBIGUATOR ı bulunan ihtimallerden belirsizliği gidererek sonucu bulmak için kullanılan bir uygulamadır.http://deniz.yuret.com/turkish/tr-disamb.tgz adresinden indirilebilir.

5. TAGGER’ın outputu DISAMBIGUATOR’a input olarak verilir. DISAMBIGUATOR içindeki Makefile execute edildiğinde output.txt’de sonuç bulunur. Makefile içindeki komut aşağıdaki gibidir.

output.txt: sample-output.txt

cat sample-output.txt | singleline.pl | features.pl | ft-model-eval.pl > output.txt

Posted in Blog
1 Comment » for Türkçe Metinlerde Geçen Kelimelerin Morfolojik Analizi ve Türkçe Karakter Problemi
  1. Naci Dai says:

    Türkçe NLP ile ilgili çalışmalar akademik dünya dışarısında ne yazık ki dağınık ve erişilemez durumdalar. Apache OpenNLP benzeri açık kaynak alt yapılarında Türkçe ile ilgili temel desteğin artırılması yazılım endüstrimiz çok önemli katkılar yapacaktır. Invasyon için çok kritik bir yapı taşı.

Leave a Reply

Your email address will not be published. Required fields are marked *

*


1 + = iki