// Refined Soundex - ulepszone kodowanie fonetyczne z wieloma wariantami
Dokładniejszy niż standardowy algorytm Soundex.
Obsługuje wersje Refined, Apache oraz SQL Server.
Inteligentnie grupuje spółgłoski o podobnym brzmieniu.
Refined Soundex ulepsza oryginalny algorytm Soundex, wykorzystując bardziej zaawansowane mapowania znaków, które lepiej wychwytują podobieństwa fonetyczne. Zachowuje pierwszą literę, a kolejne spółgłoski koduje w grupy cyfr na podstawie ich właściwości dźwiękowych. Algorytm oferuje trzy warianty: standardową wersję Refined, implementację Apache Commons oraz wariant zgodny z funkcją SOUNDEX w SQL Server.
Encoding process:
1. Keep first letter
2. Map consonants to digits
3. Remove duplicates
4. Pad with zeros to length
Refined mappings:
B,P � 1
F,V � 2
C,K,S � 3
G,J � 4
Q,X,Z � 5
D,T � 6
L � 7
M,N � 8
R � 9
Examples:
THOMPSON � T81938
T-H[0]-O-M[8]-P[1]-S[9]-O-N[3][8]
JACKSON � J23938
J-A-C[2]-K[3]-S[9]-O-N[3][8]
Apache variant:
Additional mappings for W,Y
SQL variant:
Original Soundex mappings
Refined Soundex to ulepszona wersja oryginalnego algorytmu Soundex, zapewniająca dokładniejsze fonetyczne kodowanie nazw. Wykorzystuje ulepszone mapowania spółgłosek, które lepiej oddają rzeczywistą wymowę.
Refined Soundex używa większej liczby grup cyfr (0–9 zamiast 0–6) oraz bardziej zaawansowanych mapowań spółgłosek. Na przykład rozróżnia litery M i N, przypisując im różne kody, oraz odróżnia więcej dźwięków spółgłoskowych niż oryginalny algorytm.
Standardowy wariant Refined zapewnia najlepszą dokładność. Wybierz wariant Apache, jeśli potrzebujesz zgodności z biblioteką Apache Commons Codec. Użyj wariantu SQL Server, gdy porównujesz z funkcją SOUNDEX w SQL Server.
Refined Soundex zwykle zapewnia lepszą dokładność dla angielskich nazw, zwłaszcza gdy różnice w wymowie są subtelne. Dla nazw nieangielskich lub specyficznych zastosowań lepsze mogą być algorytmy takie jak Double Metaphone lub Daitch-Mokotoff.