2014 2015 2016 2017 2018
BEBRO konkurso užduotys 2018

 

Soundex algoritmas

Taškai: 12

Soundex algoritmas sukurtas vardams atpažinti, nepaisant nedidelių skirtingų pateikimų. Iš esmės jis skirtas anglų kalba tariamiems vardams indeksuoti. Kiekvienam vardui generuojamas 4 skaitmenų kodas pagal šias taisykles:
1.     Palikti pirmąją žodžio raidę.
2.     Pašalinti visas šias raides: A, E, I, O, U, H, W, Y.
3.     Likusias raides pakeisti skaitmenimis iš lentelės:

Raidės

Skaitmenys

B, F, P, V 1
C, G, J, K, Q, S, X, Z 2
D,T 3
L 4
M, N 5
R 6

4.   Du ar daugiau iš eilės einančius tuos pačius skaitmenis pakeisti vienu tuo pačiu skaitmeniu.

5. Imti tik pirmuosius keturis žodžio simbolius; jei žodis trumpesnis, pabaigoje pridėti nulių

Pavyzdys:

Žodis Kodas
BEBRAS B162
VAIDOTAS V320
LINA L500
VALENTINA V453

Koks kodas būtų sugeneruotas vardui ZIGMANTAS?

A) Z255
B) Z250
C) Z253
D) Z252

Paaiškinimas

Algoritmas žinomas Soundex vardu.

Soundex algoritmas naudojamas vardų paieškai pritaikant tarimą anglų kalba. Algoritmas daug dėmesio skiria fonetinių klaidų korekcijai: klaidoms, atsirandančioms rašant vardų sekas, ypač kai yra panašiai tariamų žodžių. Algoritmą naudoja įvairios tarptautinės institucijos (pavyzdžiui, Interpolas), tačiau kai kurių šalių vardams netinka.

https://en.wikipedia.org/wiki/Soundex

Algoritmas išpopuliarėjo, kai jį aprašė Donaldas Knuthas savo knygoje "The Art Of Computer Programming, vol. 3: Sorting And Searching".

Atsakymas

Teisingas atsakymas: C.

1. Paliekama pirmoji žodžio raidė (S).
2. Skomantas → Z25532 (pritaikius pirmąsias tris taisykles).
3. Z2532 (iš eilės einantys skaitmenys pakeičiami į vieną)
4. Z253 (paliekami tik pirmieji keturi simboliai).

Interaktyvi užduotis