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. Все гласные меняем на О
Мазурок Игорь Евгеньевич

Мазурок Игорь Евгеньевич

Разработчик программного и информационного обеспечения.
Доцент Одесского национального университета имени И.И.Мечникова
Учёный в области защиты и противодейтствия в интеллектуальных информационных системах
Мазурок Игорь Евгеньевич

Latest posts by Мазурок Игорь Евгеньевич (see all)