
SOUNDEX 함수 블록은 문자열의 음향 유사성을 계산합니다.
Soundex 값은 유사한 발음의 단어가 동일한 Soundex 값을 생성하는 특성이 있습니다. 이는 정확한 철자를 모르지만 발음을 알고 있을 때 데이터베이스 검색에 사용할 수 있습니다. Soundex 함수는 첫 번째 문자로 시작하는 네 문자 문자열을 반환합니다.
입력은 계산할 문자열을 정의합니다.
Soundex 코드가 포함된 문자열을 반환합니다.
모든 Soundex 코드는 하나의 문자에 이어서 세 개의 숫자로 구성됩니다. 예를 들어, A532는 Antcas에 대해 사용됩니다. 인코딩할 단어가 너무 길어 더 많은 숫자를 생성할 수 있다면 세 번째 숫자에서 중단합니다. 단어가 너무 짧으면 마지막 숫자를 0으로 채웁니다. 따라서 아시아 이름인 Lee는 L000로 인코딩됩니다.
| 숫자 | 대응하는 문자 |
|---|---|
| 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, E, I, O 및 U와 자음 H, W 및 Y는 첫 번째 문자를 제외하고 무시됩니다. 독일어에 대해 확장할 수 있습니다: Ä, Ö 및 Ü는 무시되며, "sharp S" ß는 단순한 S로 인코딩됩니다.
원래 문자열에서 연속된 여러 문자가 동일한 Soundex 코드를 가지면 결과에는 한 번만 나타납니다. 예를 들어, abfx는 A120이 됩니다 (a는 첫 번째 문자로 유지되며, b와 f는 모두 동일한 코드 1을 생성하며, x는 2를 생성합니다. 마지막에 0이 추가되어 네 문자가 되도록 합니다).
Soundex 방법을 실용적으로 적용할 때 주로 두 가지 문제가 제기됩니다: 첫째, 영어에 매우 특화되어 있으며 둘째, 매우 거친 분석만 제공한다는 것입니다.
그럼에도 불구하고 이 알고리즘은 음향 검색을 위해 가장 자주 사용되는 것으로 간주됩니다. 이는 Oracle 데이터베이스에 대한 PL/SQL 표준 명령이 이미 오래전에 구현되었기 때문일 것입니다.