Algoritma bir yazım denetleyicisi olarak öneriniz ne veriyor?
Ne algoritması genellikle sözcük önerileri ile birlikte olduğunu bir yazım denetleyicisi uygularken kullanılır?
İlk başta ben düşündüm de belki hiç kontrol her yeni yazdığınız kelime (bulunmazsa sözlük) aykırı Levenshtein distance her kelime sözlük ve dönen top sonuçları. Ancak, bu son derece verimsiz, tüm sözlüğü tekrar tekrar değerlendirmek zorunda olurdu gibi geliyor.
Nasıl bu genellikle yapılır?
CEVAP
İmla düzeltici uygulamak için nasıl good essay by Peter Norvig yoktur. Temelde aday dizeleri çalışan bir kaba kuvvet yaklaşımı düzenlemek, belirli bir mesafe ile. (Here imla düzeltici performansı Bloom Filter*.* 4) kullanarak artırabilir nasıl bazı ipuçları
Bir yazım denetleyicisi için gereksinimleri daha zayıf. Tek bir kelime sözlükte olmadığını öğrenmek zorunda. Bloom Filter daha az bellek tüketen bir yazım denetleyicisi oluşturmak için kullanabilirsiniz. Eski bir sürüm Jon Bentley tarafından Programming Pearls İngilizce bir sözlük için 64 KB kullanarak decribed.
BK-Tree bir alternatif bir yaklaşımdır. Güzel bir yazı here.
Levenshstein mesafe tam olarak doğru bir yazım denetleyicisi için uzaktan düzenleme değildir. Sadece ekleme, silme ve değiştirme biliyor. Hukuka eksik ve 1 karakter (1 Silmek ve 1 ekleme) bir kopyası için 2 üretir. Damerau–Levenshtein distance uzaktan düzenleme hakkına sahiptir.
Algoritma rastgele estetik olarak hoş ...
Cellat olarak zorluk seviyesi sınıflan...
XML denetleyicisi dönüş'in Eylem ...
Python: bir jeneratör olarak özyinelem...
ASP.NET Denetleyicisi için görünümden ...