- İzlandaca kişisel ad çekimi, bağlama göre 4 farklı biçime dönüşür
- Girilen bir ada uygun gramatik durumu döndüren bir işlevi geliştirmek için veri odaklı bir JavaScript kütüphanesi oluşturuldu
- Tüm adları doğrudan saklamak, boyut artışı ve veri kaybı sorunlarına yol açtığı için, trie yapısı ve sıkıştırma teknikleri kullanılarak bu sorunlar giderildi
- Trie sıkıştırması sayesinde ortak desen tabanlı otomatik çıkarım mümkün oldu ve verinin %80’inden fazlasını kapsayan çok küçük bir veritabanı elde edildi
- Yaygın durumlarda %74’ün üzerinde doğruluk sağlanırken, kamu sektörü ve yüksek doğruluk gereken senaryolar için ayrı bir strict sürümü sunuldu
Sorunun Arka Planı
- İzlandaca arayüzlerde kişisel adlar gösterilirken, çekim (declension) nedeniyle zorluklar yaşanıyor
- İzlandaca adlar nominatif, akuzatif, datif ve genitif gibi 4 gramatik duruma göre farklı şekiller alır
- Veritabanlarına genelde adlar nominatif biçimde kaydedilir ve bağlama göre farklı bir duruma ihtiyaç olduğunda sorun oluşur
- Doğru biçim kullanılmadığında, dilin yerelini gibi durmayan veya yapay bir izlenim ortaya çıkar
Veri Toplama ve Temizleme
- İzlanda, Árnastofnun tarafından yönetilen DIM(Database of Icelandic Morphology) verisi açıldı
- Ad çekim verisi, Kristín’s Format(K-format) CSV formatında işlenebilir
- DIM veri kümesi 7 milyon satır olduğu için çok büyüktür; bunun yerine resmî olarak onaylı kişisel adlar (4.500 adet) arasından seçilerek 3.600 civarında ada ait çekim bilgisi elde edildi
- Her ad için nominatif~genitif biçim dizisi oluşturulabilir
Kütüphane Temel Yapısı
- İlk uygulama, ad~durum dönüşüm dizisinden uygun biçimi döndüren applyCase işlevi ile başladı
- Ancak basit dizi yükleme yöntemiyle boyut 30kB gzipped olarak yüksek çıktı
- Veri kümesine dahil olmayan adlar için karşılık verememe gibi bir sınırlılığı vardı
Örtüşmeleri Azaltma ve Kalıp Çıkarma
- İsimlerin 4 biçimi arasındaki ortak önekler çıkarılarak, her biri için yalnızca sonek kümeleri (suffix encoding) saklandı
- Aynı çekim kalıbını izleyen çok sayıda adın bulunduğu fark edildi
Desen Eşleştirme için Trie'nin Kullanımı
- Benzer kalıpları paylaşan ad gruplarının değer eşlemelerini optimize etmek için trie yapısı (sonek temelli ters ekleme) kullanıldı
- Ortak desenlerin (ad son ekleri) altında çekim bilgisi yalnızca bir kez saklanır ve yeni adlar için güçlü bir tahmin gücü sağlanır
Trie Sıkıştırma ve Optimizasyon Süreci
- Alt ağacın tüm yaprak (leaf) değerleri aynıysa üst düğüme bu değer atanıp çocuk düğümler silinerek ağacı sıkıştırırız
- Bu sayede düğüm sayısı %15.4’e kadar düşürüldü ve boyut 4.01kB’ye indirildi
- Değerleri aynı olan kardeş yaprak düğümlerini tek bir düğümde birleştiren ikinci bir sıkıştırma ile 3.27kB’ye ulaşıldı
Trie Performansı ve Genelleştirme
- Yeni bir ad girildiğinde benzer desen tabanlı otomatik çekim yapılabilir
- Bilinmeyen adlarda %74 doğru çekim, %26 hata gözlendi; gerçek kullanıcılar için hata oranı yalnızca %0.34
- Verinin düzenliliği (regularity) ve kapsayıcılığı (comprehensiveness) ne kadar yüksekse, sıkıştırma ve otomatik çıkarım doğruluğu o kadar artar
Gerçek Kütüphane ve Uygulama
- Sonuç olarak, sıkıştırılmış trie kullanan beygla kütüphanesi dağıtıldı
- En küçük boyutlu sürüm (4.46kB) ve daha katı ve kusursuz eşleştirme sağlayan özelleştirilmiş bir strict modülü (15kB) sunuldu
- Resmî belgeler gibi %100 doğruluk gereken yerlerde strict sürümü, genel web uygulamaları için hafif sürüm seçilebilir
Sonuç ve Genişletilebilirlik
- Trie destekli dil çekim kalıbı verisi sıkıştırması, İzlandaca dışındaki birçok çekimli dildeki kişisel ad, adres ve diğer adların otomatikleştirilmesi için uygulanabilir
- Düzenliliği yüksek veriler ile trie sıkıştırmasının birleşimi, morfolojik çekim işleme otomasyonunda hem veri hem de performans verimliliğini maksimize eden bir yaklaşım sunar
Teşekkür ve Kaynak
- beygla geliştirme sürecinde farklı uzmanlardan gelen geri bildirimler ve optimizasyonlar alındı
- Trie’ye ek sıkıştırmalar uygulanarak 3.43kB → 3.27kB’ye kadar boyut azaltıldı
Özet
- İzlandaca ad çekimi otomasyonuna yönelik problemi, örüntü tabanlı bir trie veri yapısıyla küçültüp otomatikleştiren bir örnektir
- Doğru boyut–doğruluk dengesini gözeten pratik bir veri işleme stratejisi için önemli bir örnektir
Henüz yorum yok.