Русская Википедия:Metaphone
Metaphone — это фонетический алгоритм для индексирования слов по их звучанию с учётом основных правил английского произношения. На выходе алгоритм даёт ключи переменной длины, в отличие от алгоритма Soundex, который генерирует ключи с фиксированной длиной. Из схожих по звучанию слов получаются одинаковые ключи.
Metaphone был разработан Lawrence Philips в качестве альтернативы алгоритму Soundex, обладающему рядом недостатков. Новый алгоритм более точен, чем Soundex, потому что использует больший набор правил английского произношения. Metaphone доступен в качестве встроенной функции во многих системах, включая поздние версии PHP. Алгоритм был описан в книге «Practical Algorithms for Programmers», Binstock & Rex, Addison Wesley, 1995.
Позднее автор алгоритма разработал новую версию, которая получила название Double Metaphone. В отличие от первой версии, применимой только к английскому языку, вторая учитывает особенности транскрипции с помощью букв латинского алфавита некоторых других языков.
В 2009 году тот же Lawrence Philips создал третью версию алгоритма под называнием Metaphone 3. Эта разработка не является разработкой с открытым исходным кодом.
См. также
Литература
Ссылки
- Survey of Phonetic Matching Шаблон:Ref-en
- Open Source Spell Checker Шаблон:Ref-en
- Статья о реализациях Double Metaphone в CodeProject’s Шаблон:Ref-en
Доступные реализации
- Реализации Soundex, Metaphone и Double Metaphone на Java Шаблон:Ref-en
- Реализации Soundex, Metaphone, Caverphone на Python Шаблон:Ref-en
- Text::Metaphone CPAN-модуль для Perl Шаблон:Ref-en
- Text::DoubleMetaphone CPAN-модуль для PerlШаблон:Ref-en
- Реализация от Stephen Woodbridge на PHPШаблон:Ref-en
- PECL::DoubleMetaphone PECL-пакет для PHP, реализующий Double Metaphone
- Реализация для Ruby входит в пакет Text Шаблон:Ref-en
- Реализация Double Metaphone на OCamlШаблон:Ref-en
- Реализация от Robert Minter на 4GLШаблон:Ref-en
Варианты реализаций для русского языка
- Реализация Петра Каньковски (в архиве) на Visual Basic Шаблон:Ref-ru
- Алгоритм Петра Каньковски. Ruby реализация от CleverUA — ссылка на GitHub