Türkçe Metin Normalizasyonu ve Fonetik Eşlemede Yöntem Seçimi
Deasciification, karakter normalizasyonu, Numeric Soundex, edit distance ve heceleme gibi araçların hangi problemi çözdüğünü ve hangi durumda birbirinin yerine kullanılmaması gerektiğini ayıran teknik rehber.
Türkçe metin eşlemede farklı problemler sık sık tek “fuzzy matching” başlığı altında toplanıyor. Oysa sahin → şahin düzeltmesi ile Şahin ve Sahin değerlerini aynı aday kümesine almak, iki sözcüğün edit uzaklığını hesaplamak veya bir sözcüğü hecelerine ayırmak farklı görevlerdir. Tek algoritmayı hepsine uygulamak kolay görünür; sonuçların anlamını belirsizleştirir.
Önce problem sınıfını belirlemek
ASCII yazılmış Türkçeyi geri kurmak → deasciification
Türkçe/ASCII varyantı aynı anahtar olsun → karakter normalizasyonu
fonetik aday kümesi üretmek → Numeric Soundex benzeri fonetik anahtar
karakter düzeyinde yakınlık → edit distance
hece sınırı bulmak → heceleyici
morfolojik çözümleme → ayrı bir NLP problemiDeasciification tahmin problemidir
cagri dizisini çağrı biçimine getirmek yalnız karakter tablosu uygulamak değildir. c, g, i, o, s, u karakterlerinin Türkçe karşılığı bağlama göre değişebilir. Bu nedenle gerçek deasciification, olası Türkçe biçimi seçmeye çalışan bağlam duyarlı bir dönüşümdür.
Buna karşılık Ş karakterini indeks anahtarında S olarak ele almak bir tahmin değil, normalizasyon kararıdır. İki işlem aynı başlık altında değerlendirilmemelidir.
Fonetik anahtar aday üretir
Numeric Soundex gibi bir anahtarın görevi aynı kişiyi veya aynı sözcüğü kanıtlamak değildir. Amaç, pahalı karşılaştırmadan önce aday alanını küçültmektir. Aynı anahtarı alan farklı adlar bulunabilir; collision algoritmanın doğal sonucudur.
Bu nedenle tipik akış şudur:
normalize
→ phonetic key
→ candidate bucket
→ ikinci karşılaştırma
→ uygulama kararıİkinci karşılaştırma edit distance, başka bir isim benzerliği ölçüsü veya domain kuralı olabilir.
Edit distance fonetik değildir
Levenshtein uzaklığı bir diziyi diğerine çevirmek için gereken insertion, deletion ve substitution sayısını ölçer. Karakter dizisine bakar; Türkçe fonetiği hakkında kendiliğinden bilgi taşımaz. ph/f, ğ etkisi veya ASCII/Türkçe karakter ilişkisi ancak preprocessing veya maliyet modeliyle ayrıca temsil edilir.
Bu nedenle fonetik anahtar ile edit distance birbirinin alternatifi olmak zorunda değildir. Biri candidate generation, diğeri candidate ranking aşamasında kullanılabilir.
Heceleme eşleme algoritması değildir
Hece sınırı; konuşma, eğitim, metin üretimi veya dilbilimsel preprocessing için yararlı olabilir. Fakat iki ismin aynı olup olmadığını belirlemek için hece sayısını veya sınırlarını tek başına kullanmak anlamlı bir kimlik ölçütü oluşturmaz. Sonlu durumlu Türkçe heceleyici bu nedenle Soundex'in “daha gelişmiş sürümü” değildir; başka bir problemi çözer.
Pipeline'ı ölçmek
İsim eşlemede tek bir accuracy değeri yerine en az iki aşama ayrılmalıdır:
- candidate recall: gerçek eşleşme aday kümesine girebildi mi?
- candidate reduction: toplam veri kümesinin ne kadarı elendi?
- final precision/recall: ikinci aşama hangi hataları yaptı?
Fonetik anahtarın başarısı yalnız collision sayısıyla ölçülmez. Çok az collision üreten fakat gerçek eşleşmeleri de ayıran anahtar candidate-generation amacı için kötü olabilir.
İlişkili içerikler: Sayısal Soundex ile Türkçe Fonetik Eşleme, Sonlu Durumlu Türkçe Heceleme Algoritması, C# ile Türkçe Deasciification.