2 puan yazan GN⁺ 2025-08-04 | Henüz yorum yok. | WhatsApp'ta paylaş
  • İ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.

Henüz yorum yok.