Metaphone (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. Эта разработка не является разработкой с открытым исходным кодом.
См. также
[править | править код]Литература
[править | править код]- Binstock, A. and Rex, J. Practical Algorithms for Programmers. — Addison-Wesley, 1995. — 577 p. — ISBN 9780201632088.
Ссылки
[править | править код]- Survey of Phonetic Matching (англ.)
- Open Source Spell Checker (англ.)
- Статья о реализациях Double Metaphone в CodeProject’s (англ.)
Доступные реализации
[править | править код]- Реализации Soundex, Metaphone и Double Metaphone на Java (англ.)
- Реализации Soundex, Metaphone, Caverphone на Python (англ.)
- Text::Metaphone CPAN-модуль для Perl (англ.)
- Text::DoubleMetaphone CPAN-модуль для Perl (англ.)
- [web.archive.org/web/20080404104215/http://swoodbridge.com/DoubleMetaPhone/ Реализация от Stephen Woodbridge] на PHP (англ.)
- PECL::DoubleMetaphone PECL-пакет для PHP, реализующий Double Metaphone
- Реализация для Ruby входит в пакет Text (англ.)
- Реализация Double Metaphone на OCaml (англ.)
- Реализация от Robert Minter на 4GL (англ.)
Варианты реализаций для русского языка
[править | править код]- Реализация Петра Каньковски (в архиве) на Visual Basic (рус.)
- Алгоритм Петра Каньковски. Ruby реализация от CleverUA — ссылка на GitHub
В статье не хватает ссылок на источники (см. рекомендации по поиску). |
Некоторые внешние ссылки в этой статье ведут на сайты, занесённые в спам-лист |