Funktionsblok SOUNDEX

Funktionsblokken SOUNDEX beregner lydenærlighed af en streng.

Soundex-værdier har egenskaben, at lignende udtalt ord producerer den samme Soundex-værdi. Dette kan bruges til søgning i databaser, hvis du kender udtalen men ikke den præcise stavemåde. Funktionen Soundex returnerer en streng på fire tegn, begyndende med et bogstav.

Indgang STR

Indgangen definerer den streng, der skal beregnes.

Udgang

Returnerer en streng med Soundex-koden.

Grundlæggende regler

Hver Soundex-kode består af et bogstav fulgt af tre cifre, f.eks. A532 for Antcas. Har ordet så mange bogstaver, at man kunne generere flere cifre, afbrydes efter det tredje ciffer. Har ordet for få bogstaver, udfyldes de sidste cifre med nul. Den asiatiske navn Lee vil derfor blive kodet som L000.

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

Vokalerne A, E, I, O og U og konsonanterne H, W og Y skal ignoreres undtagen ved det første tegn. Yderligere for det tyske sprog kan defineres: Umlauterne Ä, Ö og Ü skal ignoreres, det "skarpe S" ß kodificeres som det enkle S.

Har flere på hinanden følgende bogstaver i den originale streng den samme Soundex-kode, vises denne kun én gang i resultatet, fra abfx bliver det således A120 (a forbliver, fordi første bogstav, b og f giver begge den samme kode 1, x giver 2, til sidst tilføjes en nul for at få fire tegn).

Ved den praktiske anvendelse af Soundex-metoden kritiseres hovedsageligt to punkter: For det første er den meget orienteret mod det engelske sprog, og for det andet tilbyder den kun en meget grov analyse.

Alligevel skal det understreges, at det viste algoritme sandsynligvis er den mest anvendte til fonetisk søgning. Der har sikkert bidraget til dette, at der for databasen Oracle allerede tidligt blev implementeret en passende PL/SQL-standardkommando.