Soundex (od ang. sound: dźwięk) – algorytm fonetyczny wymyślony przez Roberta Russella i Margaret Odell i opatentowany w latach 1918 i 1922 (USA)[1].
Soundex używany jest do porównywania słów w języku angielskim[1]. Słowa podobnie brzmiące (np. Robert i Rupert) będą miały ten sam 4-znakowy kod Soundex (w tym przypadku R163). Jest wykorzystywany m.in. przy poszukiwaniach genealogicznych różnych wariantów tego samego nazwiska, a obliczenie kodu Soundex umożliwiają niektóre programy genealogiczne.
Dokładny opis algorytmu[2]:
- Pierwsza litera wyrazu staje się pierwszym znakiem kodu.
- Spośród pozostałych liter usuwane są a, e, h, i, o, u, w i y.
- Pozostałym literom przypisuje się następujące liczby:
- b, f, p, v
- c, g, j, k, q, s, x, z
- d, t,
- l
- m, n
- r
- Spośród kolejnych wystąpień tego samego kodu w kolejnych literach wyrazu po usunięciu h lub w usuwane są wszystkie poza pierwszym.
- Jeżeli pozostaje więcej, niż trzy cyfry to następne są usuwane. Jeżeli jest ich mniej niż trzy, to dodawane są zera.
- Kodem Soundex wyrazu jest jego pierwsza litera i trzy uzyskane powyżej cyfry.
- Donald Knuth: The Art of Computer Programming, Volume 3: Sorting And Searching. Reading, Massachusetts: Addison-Wesley, 1998. ISBN 0-201-89685-0. Brak numerów stron w książce