Метафон

редактировать
"Лоуренс Филипс" перенаправляется сюда. Для футболиста см Лоуренса Филлипса.

Метафон - это фонетический алгоритм, опубликованный Лоуренсом Филипсом в 1990 году для индексации слов по их английскому произношению. Он существенно улучшает алгоритм Soundex за счет использования информации о вариациях и несоответствиях в английском написании и произношении для получения более точной кодировки, которая лучше справляется с сопоставлением слов и имен, которые звучат одинаково. Как и в случае с Soundex, похожие по звучанию слова должны иметь одни и те же ключи. Метафон доступен как встроенный оператор в ряде систем.

Позднее Филипс создал новую версию алгоритма, которую назвал « Двойной метафон». В отличие от исходного алгоритма, применение которого ограничено только английским языком, эта версия учитывает особенности орфографии ряда других языков. В 2009 году Philips выпустила третью версию под названием Metaphone 3, которая обеспечивает точность примерно 99% для английских слов, неанглийских слов, знакомых американцам, а также имен и фамилий, обычно встречающихся в Соединенных Штатах, и была разработана в соответствии с современные инженерные стандарты в сравнении с тестовым набором подготовленных правильных кодировок.

СОДЕРЖАНИЕ
  • 1 Процедура
  • 2 Двойной Метафон
  • 3 Метафон 3
  • 4 Распространенные заблуждения
  • 5 Метафон других языков
  • 6 См. Также
  • 7 ссылки
  • 8 Внешние ссылки
    • 8.1 Алгоритмы метафона для других языков
Процедура

Исходные коды Метафона используют 16 согласных символов 0BFHJKLMNPRSTWXY. «0» представляет « th » (как приближение ASCII к Θ ), «X» представляет « sh » или « ch », а остальные представляют их обычное английское произношение. В гласные AEIOU также используются, но только в начале кода. В этой таблице обобщено большинство правил исходной реализации:

  1. Отбросьте повторяющиеся соседние буквы, кроме C.
  2. Если слово начинается с «KN», «GN», «PN», «AE», «WR», опустите первую букву.
  3. Отбросьте букву «B», если после «M» в конце слова.
  4. «C» преобразуется в «X», если за ним следует «IA» или «H» (если в последнем случае он не является частью «-SCH-», в этом случае он преобразуется в «K»). «C» преобразуется в «S», если за ним следует «I», «E» или «Y». В противном случае «C» преобразуется в «K».
  5. «D» преобразуется в «J», если за ним следует «GE», «GY» или «GI». В противном случае «D» преобразуется в «T».
  6. Отбросьте букву «G», если за ней следует «H», а «H» не стоит в конце или перед гласной. Отбросьте букву «G», если за ней следует «N» или «NED» и стоит в конце.
  7. «G» преобразуется в «J», если перед «I», «E» или «Y», и его нет в «GG». В противном случае «G» преобразуется в «K».
  8. Удалите букву «H», если она стоит после гласной, но не перед гласной.
  9. «CK» преобразуется в «K».
  10. «PH» преобразуется в «F».
  11. «Q» преобразуется в «K».
  12. «S» преобразуется в «X», если за ним следует «H», «IO» или «IA».
  13. «T» преобразуется в «X», если за ним следует «IA» или «IO». «TH» преобразуется в «0». Отбросьте букву «Т», если за ней следует «СН».
  14. «V» преобразуется в «F».
  15. «WH» преобразуется в «W», если находится в начале. Отбросьте букву «W», если за ней не следует гласная.
  16. «X» преобразуется в «S», если находится в начале. В противном случае «X» преобразуется в «KS».
  17. Отбросьте «Y», если за ним не следует гласная.
  18. «Z» преобразуется в «S».
  19. Отбросьте все гласные, если это не начало.

Эта таблица не является полным описанием исходного алгоритма Metaphone, и алгоритм не может быть правильно закодирован из нее. Оригинальный Metaphone содержал много ошибок и был заменен на Double Metaphone, а на смену Double Metaphone и оригинальный Metaphone пришел Metaphone 3, который исправляет тысячи неправильных кодировок, которые будут произведены в первых двух версиях.

Для реализации Metaphone без покупки копии Metaphone 3 (исходный код), можно использовать эталонную реализацию Double Metaphone. В качестве альтернативы, версия 2.1.3 Metaphone 3, более ранняя версия 2009 года без ряда исправлений кодировки, сделанных в текущей версии, версии 2.5.4, стала доступной в соответствии с условиями лицензии BSD через проект OpenRefine.

Двойной метафон

Алгоритм фонетического кодирования Double Metaphone является вторым поколением этого алгоритма. Его реализация была описана в июньском выпуске журнала C / C ++ Users Journal за 2000 год. По сравнению с исходным алгоритмом Metaphone, он вносит ряд фундаментальных улучшений в дизайн.

Он называется «Double», потому что может возвращать как первичный, так и вторичный код для строки; это объясняет некоторые неоднозначные случаи, а также несколько вариантов фамилий с общим происхождением. Например, кодирование имени «Смит» дает первичный код SM0 и вторичный код XMT, в то время как имя «Шмидт» дает первичный код XMT и вторичный код SMT - оба имеют общий XMT.

Двойная Metaphone пытается внимание на мириады нарушений в английском языке из славянских, германских, кельтских, греческом, французском, итальянском, испанском, китайских и других источников. Таким образом, он использует гораздо более сложный набор правил для кодирования, чем его предшественник; например, он проверяет примерно 100 различных контекстов использования одной только буквы C.

Метафон 3

В октябре 2009 года была выпущена профессиональная версия, разработанная тем же автором, Лоуренсом Филипсом. Это коммерческий продукт, который продается как исходный код. Metaphone 3 дополнительно улучшает фонетическое кодирование слов английского языка, неанглийских слов, знакомых американцам, а также имен и фамилий, обычно встречающихся в Соединенных Штатах. Это, в частности, значительно улучшает кодирование имен собственных. Автор утверждает, что в целом он улучшает точность всех слов с примерно 89% в Double Metaphone до 98%. Разработчики также могут теперь устанавливать переключатели в коде, чтобы заставить алгоритм кодировать ключи Метафона 1) с учетом не начальных гласных, а также 2) по-разному кодировать звонкие и глухие согласные. Это позволяет более точно сфокусировать набор результатов, если разработчик обнаруживает, что результаты поиска содержат слишком много слов, которые недостаточно похожи на поисковый запрос. Metaphone 3 продается как исходный код C ++, Java, C #, PHP, Perl и PL / SQL, оболочки Ruby и Python с доступом к банке Java, а также Metaphone 3 для испанского и немецкого произношения, доступный как исходный код Java и C #. Последней версией алгоритма Metaphone 3 является v2.5.4, выпущенная в марте 2015 года. Исходный код Java Metaphone3 для более ранней версии 2.1.3, в которой отсутствовало большое количество исправлений кодировки, внесенных в текущую версию 2.5.4, был включен как часть проекта OpenRefine и доступен для публичного просмотра.

Распространенные заблуждения

Есть некоторые заблуждения об алгоритмах Metaphone, которые следует устранить. Верны следующие утверждения:

  1. Все они предназначены для обращения к обычным "словарным" словам, а не только к именам, и
  2. Алгоритмы метафона не производят фонетических представлений вводимых слов и имен; скорее, результат является намеренно приближенным фонетическим представлением в соответствии с этим стандартом:
  • слова, начинающиеся с гласного звука, будут иметь букву «А», представляющую любую гласную, в качестве первого символа кодировки (в Double Metaphone и Metaphone 3 - оригинальный Metaphone просто сохраняет фактическую гласную),
  • гласные после начального гласного звука не будут учитываться и не кодироваться, и
  • Пары голосовых / невокализованных согласных будут сопоставлены с одной и той же кодировкой. (Примерами пар звонких / глухих согласных являются D / T, B / P, Z / S, G / K и т. Д.).

Эта приблизительная кодировка необходима для учета того, как носители английского языка изменяют свое произношение и орфографические ошибки или иным образом меняют слова и имена, которые они пытаются написать. Гласные, как известно, очень разнообразны. Британцы часто жалуются, что американцы произносят «Т» так же, как «Д». Учтите также, что все носители английского языка часто произносят 'Z' там, где пишется 'S', почти всегда, когда существительное, оканчивающееся на звонкий согласный или жидкость, имеет множественное число, например, «времена года», «лучи», «примеры», и т. д. Отсутствие кодирования гласных после начального гласного звука поможет сгруппировать слова, в которых гласная и согласная могут быть переставлены при неправильном написании или альтернативном произношении.

Метафон других языков

Метафон полезен для вариантов на английском и других языках, в некоторых индоевропейских языках предпочтение было отдано SONDEX. С другой стороны, грубое фонетическое кодирование вызывает языковую зависимость - или, в языковом варианте, зависимость среднего языка от говорящего - в основном для неанглийских вариантов.

Возможно, первым примером стабильной адаптации неанглийского метафона был бразильский португальский язык : он возник примерно в 2008 году как решение для базы данных в муниципалитете Варзеа-Паулиста в Бразилии и эволюционировал в текущий metaphone-ptbr алгоритм.

Смотрите также
Рекомендации
  1. ^ Висящий на метафоне, Лоуренс Филипс. Компьютерный язык, Vol. 7, No. 12 (декабрь), 1990.
  2. ^ "Морфоэдро - Технология". www.morfoedro.it. Проверено 16 мая 2018.
  3. ^ http://aspell.net/metaphone/dmetaph.cpp
  4. ^ https://github.com/OpenRefine/OpenRefine/blob/master/main/src/com/google/refine/clustering/binning/Metaphone3.java
  5. ^ https://dl.acm.org/citation.cfm?id=349132
  6. ^ Best Faces Forward: крупномасштабное исследование поиска людей на предприятии I Guy, S Ur, I Ronen, S. Weber... - 2012 - http://www.research.ibm.com/haifa/dept/imt /papers/guyCHI12.pdf
  7. ^ Аткинсон, Кевин. «Алгоритм метафона Лоуренса Филипса». aspell.net. Проверено 16 мая 2018.
  8. ^ «Антропоморфное программное обеспечение». www.amorphics.com. Проверено 16 мая 2018.
  9. ^ "Исходный код OpenRefine для Metaphone3". github.com. Дата обращения 2 ноября 2020.
Внешние ссылки

Алгоритмы метафона для других языков

Последняя правка сделана 2024-01-02 08:32:19
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте