Phonetic algorithms

Задача фонетических алгоритмов состоит в построении для слова некоторого кода, который определялся бы его звучанием. Обычное применение таких алгоритмов — компараторы в программах сравнения и поиска слов.

Вариант кода soundex

Soundex

Soundex

  1. Переводим первую букву в верхний регистр.
  2. Заменяем остальные согласные на цифры по таблице.
  3. Удаляем повторяющиеся подряд цифры
  4. Удаляем A, E, I, O, U, Y, H, W.
  5. Если код длиннее четырёх символов, сокращаем.
  6. Если код короче четырёх символов, добавляем нужное число нулей.

Прочесть описание алгоритма и проверить работу программы можно здесь или здесь.

Вариант кода Metaphone

  1. Удаляем все повторяющиеся соседние буквы, за исключением буквы C.
  2. Начало слова преобразовать по следующим правилам:
    • KN → N
    • GN → N
    • PN → N
    • AE → E
    • WR → R
  3. Удаляем на конце букву B, если она идет после M.
  4. Заменяем C по следующим правилам
    • На Х: CIA → XIA, SCH → SKH, CH → XH
    • На S: CI → SI, CE → SE, CY → SY
    • На K: C → K
  5. Заменяем D по следующим правилам
    • На J: DGE → JGE, DGY → JGY, DGI → JGY
    • На T: D → T
  6. Заменяем GH → H, если это буквосочетание стоит не в конце и не перед гласной.
  7. Заменяем GN → N и GNED → NED, если эти буквосочетания стоят в конце.
  8. Заменяем G по следующим правилам
    • На J: GI → JI, GE → JE, GY → JY
    • На K: G → K
  9. Удаляем все H, идущие после гласных, но не перед гласными.
  10. Выполняем последующие преобразования по правилам:
    • CK → K
    • PH → F
    • Q → K
    • V → F
    • Z → S
  11. Заменяем S на X:
    • SH → XH
    • SIO → XIO
    • SIA → XIA
  12. Заменяем T по следующим правилам
    • На X: TIA → XIA, TIO → XIO
    • На 0: TH → 0
  13. Удаляем: TCH → CH
  14. В начале слова преобразовать WH → W. Если после W нет гласной, то удалить W.
  15. Если X в начале слова, то преобразовать X → S, иначе X → KS
  16. Удалить все Y, которые не находятся перед гласными.
  17. Все гласные меняем на О

Related Images: