Soundex

**Soundex** on ingliskeelse häälduse põhjal nimede indekseerimise foneetiline algoritm. Selle eesmärgiks on kodeerida häälduselt samasugused nimed sama koodiga. Algoritmis arvestatakse peamiselt konsonante. Vokaale kodeeritakse vaid juhul, kui tegu on sõna esimese häälikuga. Soundex on üks populaarsemaid foneetilisi algoritme (osaliselt seetõttu, et seda kasutatakse tuntud andmebaasides nagu IBM Db2, PostgreSQL, MySQL, SQLite, Ingres, MS SQL Server, Oracle ja SAP ASE). 

## Ajalugu
Soundexi leiutasid Robert C. Russell ja Margaret King Odell ning nad patenteerisid selle 1918. aastal ja 1922. aastal. Selle variatsiooni, Ameerika Soundexi, kasutati 1930. aastatel Ameerika Ühendriikide rahvaloendustel aastatel 1890–1920.  

## Ameerika Soundex
Ameerika Soundex kood nimele koosneb ühest tähest, millele järgneb kolm numbrit: täht viitab nime esitähele ning numbrit ülejäänud kaashäälikuid. Samas kohas hääldatavatel kaashäälikutel on sama number. Näiteks huulhäälikud nagu /b/, /f/, /p/ ja /v/ märgitakse numbriga 1.

Nime Soundexisse kodeerimise algoritm on järgmine:
#Jäta alles nime esitäht
#Kustuta ära kõik järgnevad tähed: a, e, i, o, u, y, h, w.
# Asenda kaashäälikud numbritega (v.a. nime esitäht):
#* b, f, p, v → 1
#* c, g, j, k, q, s, x, z → 2
#* d, t → 3
#* l → 4
#* m, n → 5
#* r → 6
# Kui kaks või enam tähte asuvad järjest ja on sama numbriga, jäta alles esimene täht. Kui kahe sama numbriga kodeeritava tähe vahel on 'h', 'w' või 'y', kodeeritakse need kolm tähte ühe numbriga. Kui aga kahe sama numbriga kodeeritava tähe vahel on täishäälikud, kodeeritakse mõlemad tähed eraldi. See reegel kehtib ka esitähe kohta.
# Kui sõna on nii lühike, et sellele ei saa kolme numbrit määrata, lisa lõppu nulle. Kui sõnale tuleb neli või enam numbrit, jäta alles esimesed kolm.
# If two or more letters with the same number are adjacent in the original name (before step 1), only retain the first letter; also two letters with the same number separated by 'h' , 'w' or 'y' are coded as a single number, whereas such letters separated by a vowel are coded twice. This rule also applies to the first letter.
# If there are too few letters in the word to assign three numbers, append zeros until there are three numbers. If there are four or more numbers, retain only the first three.
Selle algoritmiga on nii "Robert" kui ka "Rupert" kodeeritud kui "R163", samas "Rubin"-i kood on "R150". Nii "Ashcraft" kui ka "Ashcroft" on "A261". "Tymczak" kood on "T522", mitte "T520" (tähed 'z' ja 'k' nimes on kodeeritud eraldi, sest nende vahel on täishäälik "a"). "Pfister" on "P236", mitte "P123" (esimesed kaks tähte on sama numbriga ja seega kodeeritud kui 'P').

## Variatsioonid
Sarnane algoritm "Reverse Soundex" ehk pöördsoundex jätab tähena alles nime viimase tähe

NYSIIS algoritm (ingl ''New York State Identification and Intelligence System'') loodi 1970. aastal Soundexi edaiarendusena.

Daitch–Mokotoff Soundexi (D–M Soundex) lõi 1985.aastal genealoog Gary Mokotoff ning seda arendas hiljem edasi geneaoloog Randy Daitch, kuna originaalne, Russelli versioon ei sobinud juudinimedele, millel olid saksa- või venepärased nimed (nt Moskowitz vs Moskovitz või Levine vs Lewin). D-M Soundexit kutsutakse mõnikord juudi soundexiks või ida-euroopa soundexiks, kuigi autorid selliseid nimesid ei soovita kasutada. D-M Soundex võib ühele nimele tagastada kuni 32 erinevad foneetilist kodeeringut. D-M Soundexi kodeeringud Russelli Soundexist keerulisemad, täies ulatuses numbrilised ja jäävad vahemikku 100000–999999.

Lawrence Philips leiutas 1990. aastal samamoodi Soudexi puudujääkide tõttu uue foneetilise algoritmi, millele pani nimeks Metaphone. 2000. aastal täiendas Philips oma algoritmi ja nimetas selle Double Metaphone'ks ehk topeltmetaphoneks.

## Vaata ka
* Levenshteini kaugus

## Viited