Hatalı Kelimeler Icin Kelime Önerme Algoritması

Bilgisayar anilbirgul

algoritma

Algoritmanın Yapacağı İşlemler ve Gerekli olan Soru Aşağıda Belirtilmiştir.

Kullandigimiz metin editorleri (or. Word Processor) yazim hatasi iceren kelimeleri algilamakta ve bu kelimelerin yerine kullanilan dilin sozlugunde yer alan alternatif kelimeler onermektedir.

Genellikle hizli klavye kullanimindan kaynaklanan olasi yazim hatalari asagida belirtilen 4 temel kategoride incelenebilir. Hata kategorileri ‘algoritma’ kelimesi uzerinde orneklenmistir.

1. Yanlis karakter kullanimi : ‘algoritma’ yerine ‘algotitma’ yazilmasi.
2. Yer degistiren karakterler : ‘algoritma’ yerine ‘algortima’ yazilmasi.
3. Eksik karakter: ‘algoritma’ yerine ‘algritma’ yazilmasi.
4. Fazla karakter : ‘algoritma’ yerine ‘algroritma’ yazilmasi.
Butun hata turlerinde en fazla 2 karakter hatasi icin oneri yapabilen bir karakter eslestirme algoritmasi gelistirmeniz istenmektedir. Ornegin, eksik karakter hatasinda ‘lgorima’ kelimesi yazildiginda 2 harf eksik oldugu icin ‘algoritma’ kelimesi onerilecek ancak ‘alorit’ kelimesi yazildiginda 3 harf eksik oldugu icin ‘algoritma’ kelimesi onerilmeyecektir.

Referans olarak K adet kelime iceren bir sozluk kullanildigi varsayilacaktir. Algoritmanizi sozde kod seklinde; karmasikligini ise asimptotik notasyon ile belirtmeniz gerekmektedir.

CEVAP :

 
Algorithm kelimeDuzeltme (word,n)
input array Word of n char
output new Word
for i1 than break // l ile j arasında fark 1'i geçmişse kelimeler ya aynı değildir yada 1 den fazla eksik vardır
// döngüden çıkarım
if j==length(word)-1 than return k[i] // eğer döngünün sonuna gelmişsem kelime önerilecek kelimedir ve onu geri döndürürüm.
if length(word)+1==length(k[i]) than // kelimenin uzunluğu kütüphaneden çağırdığım kelimenin uzunluğundan 1 fazlaysa
for j<-0,l1 than break // l ile j arasında fark 1'i geçmişse kelimeler ya aynı değildir yada 1 den çok fazla karakter vardır
// döngüden çıkarım
if j==length(word)-1 than return k[i] // eğer döngünün sonuna gelmişsem kelime önerilecek kelimedir ve onu geri döndürürüm.
// k dizisi kütüphanedeki kelimeleri tuttuğunu varsaydım.

Sosyal Ağlarda Paylaş

{anilbirgul}

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir