Задача фонетических алгоритмов состоит в построении для слова некоторого кода, который определялся бы его звучанием. Обычное применение таких алгоритмов — компараторы в программах сравнения и поиска слов.
Вариант кода soundex
- Переводим первую букву в верхний регистр.
- Заменяем остальные согласные на цифры по таблице.
- Удаляем повторяющиеся подряд цифры
- Удаляем A, E, I, O, U, Y, H, W.
- Если код длиннее четырёх символов, сокращаем.
- Если код короче четырёх символов, добавляем нужное число нулей.
Прочесть описание алгоритма и проверить работу программы можно здесь или здесь.
Вариант кода Metaphone
- Удаляем все повторяющиеся соседние буквы, за исключением буквы C.
- Начало слова преобразовать по следующим правилам:
- KN → N
- GN → N
- PN → N
- AE → E
- WR → R
- Удаляем на конце букву B, если она идет после M.
- Заменяем C по следующим правилам
- На Х: CIA → XIA, SCH → SKH, CH → XH
- На S: CI → SI, CE → SE, CY → SY
- На K: C → K
- Заменяем D по следующим правилам
- На J: DGE → JGE, DGY → JGY, DGI → JGY
- На T: D → T
- Заменяем GH → H, если это буквосочетание стоит не в конце и не перед гласной.
- Заменяем GN → N и GNED → NED, если эти буквосочетания стоят в конце.
- Заменяем G по следующим правилам
- На J: GI → JI, GE → JE, GY → JY
- На K: G → K
- Удаляем все H, идущие после гласных, но не перед гласными.
- Выполняем последующие преобразования по правилам:
- CK → K
- PH → F
- Q → K
- V → F
- Z → S
- Заменяем S на X:
- SH → XH
- SIO → XIO
- SIA → XIA
- Заменяем T по следующим правилам
- На X: TIA → XIA, TIO → XIO
- На 0: TH → 0
- Удаляем: TCH → CH
- В начале слова преобразовать WH → W. Если после W нет гласной, то удалить W.
- Если X в начале слова, то преобразовать X → S, иначе X → KS
- Удалить все Y, которые не находятся перед гласными.
- Все гласные меняем на О