Класс | Фонетический алгоритм |
---|---|
Наихудшая производительность | НА) |
Лучшая производительность | НА) |
Средняя производительность | НА) |
Сложность пространства в наихудшем случае | НА) |
Кельнская фонетика (также Kölner Phonetik, Кельнский процесс) - это фонетический алгоритм, который присваивает словам последовательность цифр, фонетический код. Цель этой процедуры - присвоить одинаково звучащим словам один и тот же код. Алгоритм может использоваться для поиска сходства между словами. Например, в списке имен можно найти такие записи, как «Meier», с разными написаниями, такими как «Maier», «Mayer» или «Mayr». Фонетика Кельна связана с хорошо известным фонетическим алгоритмом Soundex , но оптимизирована для соответствия немецкому языку. Алгоритм был опубликован в 1969 году Хансом Иоахимом Постелем.
Метод [ править ]
Кельнская фонетика сопоставляет каждую букву слова с цифрой от «0» до «8». Чтобы выбрать соответствующую цифру, в качестве контекста используется не более одной соседней буквы. Некоторые правила применяются конкретно к инициалам слов. Таким образом, подобным звукам должен быть присвоен один и тот же код. Например, буквы «W» и «V» кодируются числом «3». Фонетический код «Википедии» - «3412» (W = 3, K = 4, P = 1 и D = 2). В отличие от кода Soundex, длина кодов кёльнского метода фонетики не ограничена.
Процедура [ править ]
Письмо | Контекст | Код |
---|---|---|
A, E, I, J, O, U, Y | 0 | |
ЧАС | - | |
B | 1 | |
п | не раньше H | |
Д, Т | не раньше C, S, Z | 2 |
F, V, W | 3 | |
п | перед H | |
G, K, Q | 4 | |
C | в начальном звуке перед A, H, K, L, O, Q, R, U, X | |
перед A, H, K, O, Q, U, X кроме S, Z | ||
Икс | не после C, K, Q | 48 |
L | 5 | |
M, N | 6 | |
р | 7 | |
S, Z | 8 | |
C | после S, Z | |
в исходном положении, кроме перед A, H, K, L, O, Q, R, U, X | ||
не раньше A, H, K, O, Q, U, X | ||
Д, Т | перед C, S, Z | |
Икс | после C, K, Q |
То, что для буквы «C» правило «SC» имеет приоритет над правилом «CH», было учтено добавлением «кроме после S, Z» в строке 10 таблицы. Это не упоминается явно в исходной публикации, но может быть выведено из примеров, перечисленных там, например, для «Breschnew» указан код «17863».
Строчные буквы кодируются соответствующим образом; все остальные символы (например, дефисы) игнорируются. Для умляутов Ä, Ö, Ü, а также ß, которые не учитываются в таблице преобразования, предлагается сопоставить их с гласными (код "0"), соответствующими группе S, Z (код " 8 дюймов).
Обработка слова выполняется в три этапа:
- Кодируйте букву за буквой слева направо в соответствии с таблицей преобразования.
- Удалите все цифры, встречающиеся более одного раза рядом друг с другом.
- Удалите весь код «0», кроме начала.
Пример [ править ]
Название Müller-Lüdenscheidt будет закодировано следующим образом:
- Кодируйте каждую букву: 60550750206880022
- Свернуть все несколько последовательных цифр кода: 6050750206802
- Удалите все цифры "0": 65752682
Литература [ править ]
Ганс Иоахим Постель: Die Kölner Phonetik. Ein Verfahren zur Identifizierung von Personennamen auf der Grundlage der Gestaltanalyse. в: IBM-Nachrichten, 19. Jahrgang, 1969, S. 925-931.
См. Также [ править ]
Внешние ссылки [ править ]
- Мартин Вильц: Aspekte der Kodierung phonetischer Ähnlichkeiten in deutschen Eigennamen (PDF-Datei; 502 kB). Magisterarbeit an der Philosophischen Fakultät der Universität zu Köln, 2005; enthält eine Implementierung in der Programmiersprache Perl .
- Марош Коллар: Perl-Implementierung der Kölner Phonetik и ähnlicher Verfahren als freie Software im CPAN (Комплексная сеть архивов Perl)
- Энди Тейлер: PHP и Oracle PL / SQL-Implementierung der Kölner Phonetik
- Николас Циммер: PHP-реализация в Kölner Phonetik в комментариях к Eintrag soundex в PHP-Manual, 2008.