АЛГОРИТМЫ ОПРЕДЕЛЕНИЯ СХОЖЕСТИ ДАННЫХПохож ли?
Горбач Александр
+7 914 192 10 56
Специально для DersuDev #1
Практическая ценность - нормализация данных - поиск среди заведомо ошибочных данных
- слияние баз данных- приём данных из разнородных систем- корректировка введённых человеком данных
Детерменистический алгоритм
Это КИТ?
Первая буква К Вторая буква И Третья буква Т Есть ли ещё буквы
ЭТО КИТ!Это точно не КОТ! Похож на КОТа! Вообще не понятно что это
Вторая буква О Третья буква Т
Это КОТЭто точно не КОТ! Это точно не КОТ!
Алгоритмы сравнения посимвольно
Winkler◦ Смотрит на порядок общих символов двух строк. Добавляет дополнительный вес строкам у которых
более четырёх одинаковых символов подрядJaro◦ Аналогичен Winkler, но не добавляет дополнительного веса. Хорош для коротких строк.Hamming◦ Подсчитывает количество символов, которые нужно изменить, чтобы из одной строки получить другую.
Строки должны быть одинаковой длиныEdit (Levenshtein)◦ Подсчитывает количество одно-символьных правок (удаление, вставка и т.п.), необходимых, чтобы
одна строка превратилась в другую.Editex◦ Подсчитывает отношения количества совпадающих биграмм (2-х символьных подстрок) к общему
количеству биграмм.
Посмотрим что получается. f(“К О Т”,”К И Т”)
Jaro-Winkler: dj=1/3(3/3+3/3+(3-0.5)/3)= 0,944(4)Hamming: 1Levenstein: 1Editex: 0
Сравнение по звучанию …Так вот спрашиваю: как по-украински «кот»? Он отвечает «кит». Спрашиваю: «А как кит?» А он остановился, вытаращил глаза и молчит. И теперь не кланяется….
Белая Гвардия, Булгаков М.А.
Soundex Первая буква сохраняется
В остальной части слова:◦ Буквы, обозначающие, как правило, гласные звуки: a, e, h, i, o, u, w и y — отбрасываются◦ Оставшиеся буквы (согласные) заменяются на цифры от 1 до 6, причём похожим по звучанию буквам соответствуют одинаковые цифры:
◦ 1: b, f, p, v◦ 2: c, g, j, k, q, s, x, z◦ 3: d, t◦ 4: l◦ 5: m, n◦ 6: r
◦ Любая последовательность одинаковых цифр сокращается до одной такой цифры.
Итоговая строка обрезается до первых четырёх символов. Если длина строки меньше требуемой, недостающие символы заменяются знаком 0.
Примеры:
аmmonium → ammnm → a5555 → a5 → a500
implementation → implmnttn → i51455335 → i514535 → i514
Metaphone Первая версия
Индексирование слов по их звучанию с учётом основных правил английского произношения. На выходе алгоритм даёт ключи переменной длины, в отличие от алгоритма Soundex, который генерирует ключи с фиксированной длиной. Из схожих по звучанию слов получаются одинаковые ключи.
Вторая версия
Учитывает особенности транскрипции с помощью букв латинского алфавита некоторых других языков
Третья версия
Ещё больше упор на транскрипции на латиницу, учитывает произношения имён. Продаётся с исходными кодами, можно локализовать на любой язык.
Посмотрим что получается с другой стороны. f(“К О Т”,”К И Т”) Soundex:
КОТ = KT = K3 КИТ = КТ = К3
Зачем вообще это надо? Объединение записей баз данных - Финансы - Медицина - PRISM
Спасибо за внимание!Вопросы?