Саундекс
![]() | Ця стаття є сирим перекладом з іншої мови. Можливо, вона створена за допомогою машинного перекладу або перекладачем, який недостатньо володіє обома мовами. (липень 2015) |
Алгоритм саундекс[1] (англ. Soundex) — фонетичний алгоритм для індексації назв за вимовою в англійській мові. Він встановлює однакове представлення омофонів, що спрощує їх пошук, попри неточності в написанні. Алгоритм переважно кодує приголосні звуки, голосні опускаються, крім першої букви. Саундекс — найвідоміший з усіх фонетичних алгоритмів (частково через те, що доступний у популярних СКБД, таких як DB2, PostgreSQL,[2] MySQL,[3] Ingres, MS SQL[4] і Oracle[5]), та часто використовується (неправильно) як синонім до «фонетичного алгоритму». Удосконалення саундексу є основою для багатьох сучасних фонетичних алгоритмів.
Саундекс розробили Роберт Рассел (англ. Robert C. Russell) і Маргарет Оделл (англ. Margaret King Odell)[6] і запатентували у 1918 і 1922.[7] Так званий американський саундекс, використовувався в 1930-х для ретроспективного аналізу переписів населення США від 1890 до 1920 року. Саундекс став відомим у 60-х роках XX століття, коли він став темою кількох статей в журналах Асоціації обчислювальних машин Communications of the ACM і Journal of the ACM[en], а особливо, коли був описаний Дональдом Кнутом в монографії «Мистецтво програмування».
Сучасні правила саундексу, які застосовує уряд США, розробляє та підтримує Національне управління архівів та документації (англ. NARA).[8]
Нижче продемонстрований американський саундекс.
Саудекс-код складається з букви й трьох числових розрядів: першу літеру імені й цифри кодування наступних приголосних. Подібні приголосні мають одні й ті ж цифри, так, наприклад, губні приголосні B, F, P, V кодуються номером 1. Голосні можуть вплинути на кодування, але не кодуються, окрім першої літери.
- Правильне значення може бути знайдено так чином:
- 1. Перша літера імені вводиться безпосередньо;
- 2. Кожна приголосна має свій код:
- b, F, P, V → 1;
- c, G, J, K, Q, S, X, Z → 2;
- d, T → 3;
- l → 4;
- m, N → 5;
- r → 6;
- h, W не кодуються.
- 3. Дві сусідні літери з однаковим числом кодуються як одне. Літери з тим же числом, розділених h або w також
- кодуються як одне число;
- 4. Продовжуєте поки не має одної букви і трьох цифр.
Використання цього алгоритму з «Robert» і «Rupert» поверне рядок «R163», а «Rubin» дає «R150». «Ashcraft» і «Ashcroft» дає на виході «A261».
Аналогічний алгоритм, званий «зворотним саундексом» має як префікс останню літеру замість першої.
NYSIIS алгоритм був введений у Ідентифікаційній та інформаційній системі штату Нью-Йорк у 1970 році, як поліпшення алгоритму саундекс. NYSIIS підтримує, на відміну від саундексу, відносну позицію голосних.
Саундекс Дейча-Мокотоффа (Д-М-Саундекс) було розроблено в 1985 році генеологістом Gary Mokotoff, а потім поліпшено Randy Daitch через проблеми з якими зіткнулися при спробі застосувати саундес Рассела для євреїв з німецькими або слов'янськими прізвищами. Д-M-Саундекс іноді називають «єврейської саундексом» або «саундексом Східної Європи», хоча автори й перешкоджали використанню цих назв. Алгоритм Д-M-Саундекс може повернути до 32 окремих фонетичних кодувань для одного імені. Результати Д-M-Саундекс повертає в числовому форматі між 100000 і 999999. Цей алгоритм є набагато складнішим, ніж саундекс Рассела.
Як відповідь на недоліки в алгоритмі саундекс, Лоуренс Філіпс розробив алгоритм метафон в 1990 році. Філіпс розробив поліпшений метафон в 2000 році, який він назвав подвійним метафоном. Подвійний метафон включає в себе набагато більший набір правил кодування, ніж його попередник, і повертає первинний і вторинний код для обліку різних вимов одного слова англійською мовою.
- ↑ Глосарій термінів національної моделі статистичного виробництва в органах державної статистики : затв. наказом Держ. служби статистки України від 30 грудня 2020 р. № 367 / Державна служба статистики України. — К. : 2020. — С. 8.
- ↑ Documentation: 9.1: fuzzystrmatch. PostgreSQL. Архів оригіналу за 23 липня 2020. Процитовано 3 листопада 2012.
- ↑ MySQL 5.5 Reference Manual :: 12.5 String Functions. MySQL. SOUNDEX(str). Архів оригіналу за 15 вересня 2016.
- ↑ Built-In Scaler SQL Functions. SQLite. 16 липня 2022. soundex(X). Архів оригіналу за 20 грудня 2022. Процитовано 24 грудня 2022.
- ↑ SOUNDEX. Database SQL Reference. Архів оригіналу за 21 жовтня 2017. Процитовано 20 жовтня 2017.
- ↑ Odell, Margaret King (1956). The profit in records management. Systems. New York. 20: 20.
- ↑ US patent 1261167, R. C. Russell, "(untitled)", issued 1918-04-02 (Archived)
- ↑ The Soundex Indexing System. National Archives. National Archives and Records Administration. 30 травня 2007. Архів оригіналу за 12 березня 2020. Процитовано 24 грудня 2010.