Skip to content

Metin Normalizasyonu

Ahmet A. Akın edited this page Oct 7, 2018 · 3 revisions

Kelime listelerinin elde edilmesi

Eldeki derlemler iki gruba ayrılır. Haber, kitap, alt-yazı türü derlemler temiz (clean), forum, tweet türü derlemler gürültülü (noisy) olacak şekilde.

Daha sonta morfolojik analiz kullanarak her iki derlem için doğru (correct) ve yanlış (incorrect) kelime listeleri üretilir. Bunu yaparken morfolojik analiz aracı içindeki hataya yol açabilecek bazı sözlükler iptal edilebilir. Rakamlar, url, hashtag vs ise ihmal edilen kelimeler (ignored) listesine girer. Listeye girmeden kelimeler küçük harfe dönüştürülür ve kesme işaretleri silinir. Listeler aynı zamanda frekans bilgisi de içerir.

Bu listelerden bazı yararlı veriler kurallar ve dil modeli kullanarak elde edilebilir.

  • Türkçe karakter kullanılmayan kelimelerin türkçe karakter kullanılan hallerinin bulunması (sadece adaylar)
  • Yanlışıkla bitişik yazılan kelimelerin büyük oranda bulunması
  • Soru eklerinin bulunması
  • Temiz-doğru ve gürültülü-doğru içerisinde aslında doğru olmayan ama morfolojik analizden geçen kelimelerin bir kısmı bulunur. Bunlar "muhtemelen yanlış (possibly incorrect)" listesi olarak elde edilir. temiz-doğru ve gürültülü-doğru birleştirilir, oluşan listeden "muhtemelen yanlış" çıkarılır. Temiz-yanlış ve gürültülü-yanlış birleştirilir.

Sonuçta elimizde üç liste oluşur (ihmal edilen kelimeleri kullanmıyoruz).

  • Doğru
  • Yanlış
  • Muhtemelen Yanlış

Hatalı kelime karşılık aday tablosunun bulunması

İki taraflı ağ üzerinde rasgele yürüme

Hatalı kelimelerin yerine gelebilecek doğru keliemlerin bulunması için yapılan işlerden birisi özel bir graf üzerinde rasgele yürüme algoritmasının işletilmesidir. Bu oldukça yüksek işlem gücü ve bellek gerektiren bir iştir. Bunun için kelime listelerinin çıkarıldığı derlemler ve üretilen kelime listeleri kullanılır. Derlemler baştan sonra taranır. Paragraflar cümlelere ayrılır. Her cümle içindeki kelimelerin sıra ile taranır. Eğer bir kelime kelime listelerinin birine dahilse, bağlama bakılır. Bağlam, farklı şeyler olabilir. Örneğin kelimenin sol ve sağındaki kelimeler olsun. "Bu akşam baılk var !" cümlesi için kelime ve bağlamlar:

 Bu: <s>,akşam
 akşam: Bu,baılk
 baılk: akşam,var
 var: baılk,!

sonra çift taraflı (bipartite) bir bağlam-kelime ağı çıkarılır. Sol tarafta bağlamlar, sağ tarafta kelimeler yer alır. Her bağlamdan o bağlam içinde geçen kelimelere bir bağlantı vardır. Bu bağlantının değeri ise o kelimenin o bağlamda kaç kez geçtiği bilgisidir.

Örneğin

[akşam,var] --- 35 --- ziyafet
[akşam,var] --- 12 --- parti
[akşam,var] --- 5  --- balık
[akşam,var] --- 1  --- baılk

Elbette aynı şey kelime sabit tutularak düşünülebilir.

[denizde,var] --- 12 --- balık
[çok,tuttum]  --- 12 --- balık
[akşam,var]   --- 5  --- balık
[hangi,taze]  --- 1  --- balık