Funkcióblokk SOUNDEX

A SOUNDEX funkcióblokk kiszámítja egy karakterlánc hangulatszerűségét.

A Soundex-értékek azokat a tulajdonságokat mutatják ki, hogy hasonlóan ejtett szavak ugyanazt a Soundex-értéket generálják. Ezt használhatja fel adatbázisban történő kereséshez, ha ismeri a kiejtést, de nem a pontos írásmódot. A Soundex függvény egy négy karakterből álló karakterláncot ad vissza, amely egy betűvel kezdődik.

STR bemenet

A bemenet meghatározza azt a karakterláncot, amelyet kiszámítani kell.

Kimenet

Visszaad egy karakterláncot a Soundex-kóddal.

Alapvető szabályok

Minden Soundex-kód egy betűből és három számjegyből áll, például A532 az Antcas számára. Ha a kódolandó szó olyan hosszú, hogy több számjegyet generálhatnánk, akkor a harmadik számjegy után szakadunk meg. Ha a szó túl rövid, akkor a utolsó számjegyeket nullákkal töltjük fel. Az ázsiai Lee név tehát L000 kódként jelenik meg.

Számjegy Reprezentált betűk
1 B, F, P, V
2 C, G, J, K, Q, S, X, Z
3 D, T
4 L
5 M, N
6 R

A magánhangzók A, E, I, O és U és a mássalhangzók H, W és Y figyelmen kívül hagyandók, kivéve az első karakterben. Kiegészítendő a német nyelv számára: az umlautok Ä, Ö és Ü figyelmen kívül hagyandók, a "scharfe S" ß úgy kódolható, mint az egyszerű S.

Ha több egymás után következő betű van az eredeti karakterláncban, amelyek ugyanazt a Soundex-kódot adnak, akkor ez csak egyszer jelenik meg az eredményesetben, tehát abfx például A120-t ad (a marad, mert első betű, b és f ugyanazt a kódot adja 1, x pedig 2-t, a végén egy nulla van hozzáadva, hogy négy karakter legyen).

A Soundex eljárás gyakorlati alkalmazása során főleg két pont kritizálható: Egyrészt nagyon angol nyelvűre van orientálva, másrészt csak nagyon nagy vonalakban nyújt elemzést.

Mindezek ellenére megállapítható, hogy a bemutatott algoritmus valószínűleg a leggyakrabban alkalmazott fonetikus kereséshez. Segített benne az is, hogy az Oracle adatbázis számára már nagyon korán egy megfelelő PL/SQL szabványparancs implementálása történt.