Toimintosarja SOUNDEX

Toimintosarja SOUNDEX laskee merkkijonon äänihyvyysarvon.

Soundex-arvoilla on ominaisuus, että samantapaisesti lausutut sanat tuottavat saman Soundex-arvon. Tämä voidaan käyttää tietokannissa hakemiseen, jos tiedät sanan lausunnan mutta ei tarkkaa kirjoitusasua. Funktio Soundex palauttaa neljän merkin pituisen merkkijonon, joka alkaa kirjaimella.

Syöte STR

Syöte määrittää laskettavan merkkijonon.

Tulo

Palauttaa merkkijonon Soundex-koodilla.

Perussäännöt

Jokainen Soundex-koodi koostuu yhdestä kirjaimesta, jota seuraa kolme numeroa, esimerkiksi A532 Antcasille. Jos koodattava sana on niin pitkä, että siitä voisi tuottaa enemmän numeroita, keskeytetään kolmannen numeron jälkeen. Jos sanassa on liian vähän kirjaimia, täytetään loput numerot nollilla. Aasian nimi Lee koodataan siis L000.

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

Vokaalit A, E, I, O ja U sekä konsonantit H, W ja Y jätetään huomioimatta, paitsi ensimmäisenä merkkinä. Lisäksi saksan kielelle voidaan määrittää: Ääkköset Ä, Ö ja Ü jätetään huomioimatta, ja "kova s" ß koodataan kuten yksinkertainen S.

Jos alkuperäisessä merkkijonossa on useita peräkkäisiä kirjaimia, joilla on sama Soundex-koodi, ne ilmestyvät tuloksessa vain kerran, joten esimerkiksi abfx muuttuu A120 (a säilyy, koska se on ensimmäinen kirjain, b ja f tuottavat molemmat saman koodin 1, x tuottaa 2, lopussa lisätään nolla, jotta saadaan neljä merkkiä).

Soundex-menetelmän käytännön soveltamisessa kritisoidaan pääasiassa kahta asia: se on hyvin suuntautunut englannin kielelle ja tarjoaa vain hyvin karkean analyysin.

Huolimatta tästä voidaan todeta, että esitetty algoritmi on todennäköisesti yleisimmin käytetty fonetiseen hakemiseen. Tähän on varmasti vaikuttanut se, että Oracle-tietokannalle on jo hyvin aikaisin toteutettu vastaava PL/SQL-standardikomento.