Что такое Soundex?
Soundex :
фонетический алгоритм индексации имен по звуку, как произносится на английском языке ; впервые разработанный Робертом К. Расселом и Маргарет Кинг Оделл в 1918 году
Как это работает?
Существует несколько реализаций Soundex, но большинство реализуют следующие шаги:
- Сохраните первую букву имени и отбросьте все остальные вхождения гласных и
h,w
:
|a, e, i, o, u, y, h, w | → "" |
- Заменить согласных цифрами следующим образом (после первой буквы):
| b, f, p, v | → 1 |
| c, g, j, k, q, s, x, z | → 2 |
| d, t | → 3 |
| l | → 4 |
| m, n | → 5 |
| r | → 6 |
- Заменить идентичные соседние числа одним значением (, если они были рядом друг с другом до шага 1 ):
| M33 | → M3 |
- Вырезать или Накладку с нулями или вырезать для получения 4-значного результата:
| M3 | → M300 |
| M34123 | → M341 |
Вот интерактивная демонстрация в jsFiddle :
![jsFiddle Demo](https://i.stack.imgur.com/g04t6.png)
А вот демонстрация SQL с использованием SQL Fiddle
В SQL Server SOUNDEX
часто используется вместе с DIFFERENCE
, который используется для подсчета количества идентичных итоговых цифр (как в игре mastermind † ), причем более высокие числа соответствуют наиболее близко.
![Mastermind](https://i.stack.imgur.com/KPCBj.png)
Какие есть альтернативы?
Важно понимать ограничения и критику soundex и того, где люди пытались его улучшить, в частности, опираясь только на английское произношение, а также отбрасывает много данных, что приводит к большему количеству ложных срабатываний .
Оба Метафон & Двойной Метафон по-прежнему фокусируются на произношении на английском языке, но добавляют гораздо больше детализации нюансам речь на английском (т.е. PH
→ F
)
Фил Фактор написал функцию метафона в SQL с источником на github
Soundex чаще всего используется для идентификации похожих имен, и ему будет очень трудно найти любые похожие псевдонимы (т.е. Robert
→ Rob
или Bob
). В ответ на этот вопрос в Базе данных псевдонимов / псевдонимов людей вы можете включить поиск по аналогичным псевдонимам в процессе сопоставления.
Вот несколько бесплатных списков распространенных псевдонимов:
Дополнительная литература: