Soundex: Difference between revisions
CSV import |
CSV import |
||
| Line 71: | Line 71: | ||
{{medicine-stub}} | {{medicine-stub}} | ||
{{No image}} | |||
Revision as of 04:16, 11 February 2025
Phonetic algorithm for indexing names by sound
Soundex is a phonetic algorithm for indexing names by sound, as pronounced in English. The goal of Soundex is to encode homophones to the same representation so that they can be matched despite minor differences in spelling. Soundex is used primarily in genealogy and data management.
History
Soundex was developed by Robert C. Russell and Margaret King Odell and patented in 1918 and 1922. It was initially used in the United States Census to help match names despite variations in spelling.
Algorithm
The Soundex algorithm converts a name to a four-character code. The first character of the code is the first letter of the name, and the remaining three characters are numbers that encode the remaining consonants. Similar sounding consonants share the same number, while vowels are ignored unless they are the first letter.
Steps
1. Retain the first letter of the name. 2. Remove all occurrences of 'h' and 'w' except first letter. 3. Replace all consonants (include the first letter) with digits as follows:
- b, f, p, v → 1 - c, g, j, k, q, s, x, z → 2 - d, t → 3 - l → 4 - m, n → 5 - r → 6
4. Replace all adjacent same digits with one digit. 5. Remove all occurrences of a, e, i, o, u, y except first letter. 6. If the result is too short (less than 4 characters), pad with zeros. 7. If the result is too long, truncate to four characters.
Example
For example, the Soundex code for "Robert" is R163: - R (first letter) - o (ignored) - b → 1 - e (ignored) - r → 6 - t → 3
Applications
Soundex is widely used in genealogy for matching surnames that sound similar but are spelled differently. It is also used in data management systems to find duplicate records.
Limitations
Soundex has several limitations: - It is designed for English names and may not work well with names from other languages. - It can produce the same code for names that sound different. - It may not handle names with non-standard spellings well.
See also
Related pages