Articles of levenshtein distance

Получите наиболее повторяющиеся аналогичные поля в базе данных MySQL

Предположим, у нас есть база данных: Actions_tbl: ————————————————– —— id | Action_name | user_id | ————————————————– —— 1 | Джон читает одну книгу | 1 2 | чтение книги Джона | 1 3 | Джо прыгает через огонь | 2 4 | чтение другой книги | 2 5 | Джон читает книгу в библиотеке | […]

Самая длинная общая подстрока с неправильной переносимостью символов

У меня есть сценарий, который я нашел здесь, который хорошо работает при поиске самой низкой общей подстроки. Однако мне нужно, чтобы он терпел некоторые неправильные / отсутствующие символы. Я хотел бы иметь возможность либо вводить процент требуемого сходства, либо, возможно, указать количество допустимых / недопустимых символов. Например, я хочу найти эту строку: большой желтый школьный […]

Как создать порог для подобных строк, используя расстояние Левенштейна и учет опечаток?

Недавно мы столкнулись с интересной проблемой, когда в нашей базе данных были обнаружены дублированные пользовательские данные. Мы поняли, что расстояние Левенштейна между большей частью этих данных было просто разницей между двумя указанными строками. Это указывает на то, что если мы просто добавим символы из одной строки в другую, то мы получим одну и ту же […]

Расстояние Левенштейна: как лучше обрабатывать слова, заменяющие позиции?

У меня был некоторый успех, сравнивающий строки, используя функцию PHP levenshtein . Однако для двух строк, которые содержат подстроки, которые меняют местами, алгоритм считает их целыми новыми подстроками. Например: levenshtein("The quick brown fox", "brown quick The fox"); // 10 differences рассматриваются как имеющие меньше общего, чем: levenshtein("The quick brown fox", "The quiet swine flu"); // […]

Сравнить 5000 строк с PHP Levenshtein

У меня есть 5000, а иногда и больше строк уличных адресов в массиве. Я хотел бы сравнить их все с levenshtein, чтобы найти похожие матчи. Как я могу сделать это, не зацикливая все 5000 и сравнивая их напрямую с другими 4999? Редактировать: меня также интересуют альтернативные методы, если у кого есть предложения. Общая цель – […]

mySQL – сопоставление латинской (английской) формы ввода с utf8 (неанглийскими) данными

Я поддерживаю базу данных музыки в mySQL, как мне возвращать результаты, хранящиеся под eg 'Tiësto', когда люди ищут «Tiesto»? Все данные хранятся под индексом полного текста, если это имеет значение. Я уже использую комбинацию Levenshtein в PHP и REGEXP в SQL – не пытаюсь решить эту проблему, а просто для большей доступности для поиска в […]

Левенштейн: MySQL + PHP

$word = strtolower($_GET['term']); $lev = 0; $q = mysql_query("SELECT `term` FROM `words`"); while($r = mysql_fetch_assoc($q)) { $r['term'] = strtolower($r['term']); $lev = levenshtein($word, $r['term']); if($lev >= 0 && $lev < 5) { $word = $r['term']; } } Как я могу переместить все это только в один запрос? Не хотите запрашивать все термины и выполнять фильтрацию в […]

Как отсортировать массив по подобию по отношению к введенному слову.

Я имею в PHP массив, например: $arr = array("hello", "try", "hel", "hey hello"); Теперь я хочу сделать переупорядочивание массива, который будет основываться на наиболее близких словах между массивом и моим $ search var. Как я могу это сделать?