кодировать | декодировать | сжимать

> soundex | фонетика | fuzzy‑поиск <

// Soundex – фонетический алгоритм индексирования имён по звучанию

[PHONETIC]

Основано на звучании

Кодирует имена по произношению, а не по написанию.

[FUZZY]

Нечёткое сопоставление

Находит похожие по звучанию имена даже при разной орфографии.

[GENEALOGY]

Генеалогия

Важный инструмент для генеалогических исследований и исторических архивов.

>> техническая информация

Как работает Soundex:

Soundex сохраняет первую букву и заменяет согласные цифрами в соответствии с фонетическими группами. Сходные по звучанию согласные получают одинаковый код, гласные игнорируются, а результат дополняется или обрезается до 4 символов (American) либо имеет переменную длину (Refined).

Правила кодирования:

1 = B,F,P,V 2 = C,G,J,K,Q,S,X,Z 3 = D,T 4 = L 5 = M,N 6 = R Robert → R163 Rupert → R163 Rubin → R150

Зачем использовать Soundex?:

  • >Поиск и удаление дубликатов в БД
  • >Генеалогические исследования
  • >Анализ данных переписей
  • >Сопоставление записей о клиентах
  • >Исправление орфографических ошибок

>> Частые вопросы

Что такое Soundex?

Soundex — это фонетический алгоритм, запатентованный в 1918 году для индексирования имён по их звучанию. Он был разработан для переписи населения США, чтобы упростить поиск фамилий с похожей произношением при разном написании.

Чем отличается American от Refined Soundex?

American Soundex создаёт коды из четырёх символов (буква + 3 цифры). Refined Soundex (например, в SQL Server) использует более детальные соответствия и коды переменной длины, повышая точность сопоставления.

Почему разные написания могут иметь один и тот же код?

В этом и есть идея Soundex. Алгоритм группирует имена с похожим звучанием — например, Smith и Schmidt — чтобы проще находить вариации одного и того же имени в базе данных.

Каковы ограничения Soundex?

Soundex лучше всего работает с английскими именами. Для других языков точность может снижаться, а сильно отличающиеся написания одного и того же имени иногда получают разные коды.

// Краткий справочник

DigitLetters
1B F P V
2C G J K Q S X Z
3D T
4L
5M N
6R
—A E I O U Y H W (skipped)

// Примеры кода

1. Keep the first letter.
2. Replace the other letters with digits (table above).
3. Drop vowels and Y; H and W are skipped (letters on both sides of H/W
   with the same code collapse into one digit).
4. Collapse adjacent identical digits.
5. Pad with 0 or truncate to letter + 3 digits.

Robert -> R163   Rupert -> R163   Rubin -> R150
Ashcraft -> A261   Tymczak -> T522   Pfister -> P236

>> Другие вопросы

В: Почему у Robert и Rupert одинаковый код Soundex?

О: Оба начинаются с R и кодируются по группам согласных: B/P → 1, R → 6, T → 3 дают R163. Soundex объединяет близкие по звучанию согласные, поэтому варианты написания одного имени часто совпадают.

В: Как Soundex обрабатывает H и W?

О: H и W пропускаются и не разделяют: если согласные по обе стороны имеют один код, они считаются одним звуком. Поэтому Ashcraft даёт A261, а не A226. Гласные же разделяют.

В: Каковы ограничения Soundex?

О: Он создан для английских имён (патенты 1918/1922 годов, Рассел и Оделл) и игнорирует звучание после первой буквы. Имена с разной первой буквой, например Catherine и Katherine, не совпадают.

Другие языки