Метафон

Матеріал з Вікіпедії — вільної енциклопедії.
Перейти до навігації Перейти до пошуку

Метафон (англ. Metaphone) — фонетичний алгоритм, опублікований 1990 року для індексації слів в англійській вимові. Алгоритм із змінною довжиною ключа, на відміну від Саундекс у фіксованій довжині ключів.

Метафон був розроблений Лоуренс Філіпсом як відповідь на недоліки в алгоритмі Саундекс. Він використовує більший набір правил англійської вимови. Метафон доступний як вбудований оператор у низці систем, зокрема, у останніх версіях PHP.

Пізніше створено нову версію алгоритму, подвійний метафон, яка виробляє точніші результати, ніж початковий алгоритм.

Процедура[ред. | ред. код]

Метафон використовує 16 символів приголосних 0BFHJKLMNPRSTWXY. «0» Представляє «th» , 'X' представляє «sh» чи «ch», інші представляють їх звичайне звучання в англійській мові. Голосні AEIOU також використовуються, але тільки на початку коду[1].

  1. Видалити другу із подвійних літер, за винятком С.
  2. Якщо слово починається з 'КН', 'GN', 'PN', 'АЕ', 'WR', видалити першу літеру.
  3. Видалити 'B' після 'М', якщо вона в кінці слова.
  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', якщо за нею 'T', 'Е', або 'Y', і вона не є частиною 'GG'. В іншому випадку, 'G' перетворюється в 'К'.
  8. 'H' випадає, якщо після голосної, але не перед голосною.
  9. 'CK' перетворюється в 'К'.
  10. 'PH' перетворюється в 'F'.
  11. 'Q' перетворюється в 'К'.
  12. 'S' перетворюється в 'X', якщо за нею 'H', 'IO', або 'IA'.
  13. 'T' перетворюється в 'X', якщо за нею 'IA', або 'IO'. 'TH' перетворюється в '0'. 'T' випадає, якщо перед 'CH'.
  14. 'V' перетворюється в 'F'.
  15. 'WH' перетворюється в 'W', якщо на початку слова. 'W' випадає, якщо за нею не має голосних.
  16. 'X' перетворюється в 'S', якщо на початку слова. В іншому випадку, 'Х' перетворюється в 'KS'.
  17. 'Y' випадає, якщо не перед голосною.
  18. 'Z' перетворюється в 'S'.
  19. Всі голосні, що не на початку слова, випадають.

Подвійний метафон[ред. | ред. код]

Подвійний метафон — алгоритм пошуку другого покоління цього алгоритму. Його реалізація була описана в червні 2000 року.

Він називається "подвійним", тому що може повернутися як первинний і вторинний код для рядка; це становить деякі неоднозначні випадки, а також для декількох варіантів прізвищ із загального родоводу. Наприклад, кодування імені "Smith" дає основний код SM0 і вторинних код XMT, у той час, як ім'я "Schmidt" дає основний код SM0 і вторинних код XMT — обидва мають SM0 спільні.

Подвійний метафон намагається пояснити безлічь слів англійською мовою слов'янського, германського, кельтського, грецького, французького, італійського, іспанського, китайського, та іншого походження. Таким чином він використовує набагато складніший набір правил для кодування, ніж його попередник.

Метафон 3[ред. | ред. код]

Метафон 3 спрямований на подальше підвищення точності фонетичного кодування слів в англійській мові. Було додано здатність кодувати метафон ключі не беручи голосні до уваги, а також кодувати дзвінкі і глухі приголосні по-різному.

Було оголошено розвиток і в інших мовних версіях. Метафон 3 продається у вигляді вихідного коду на С++, Java і C# за 40 доларів США.

Див. також[ред. | ред. код]

Посилання[ред. | ред. код]

  1. Александр Радишевский. Алгоритмы приблизительного сравнения текста. Морфоэдро. Архів оригіналу за 12 липня 2013. Процитовано 6 березня 2011.(рос.)