byte916
@byte916

Есть ли простое и быстрое решение определить, что фраза изменена незначительно?

Начну с примеров, было - стало
ишка - мишка
мышка - мишка
сходразвал - сход-развал
окумулятор - аккумулятор
малая медведица - большая медведица
и так далее. В основном необходимо проверять слова и фразы из 2-3 слов.

Вопрос такой - как проще и быстрее алгоритмически определять, как сильно изменилась фраза? Мне необходимо определять - малое ли это изменение (исправление опечатки, первые четыре примера) или значительное (последняя фраза).

Пока есть только одна идея - считать как часто встречается каждая буква и сравнивать насколько изменилась частота.
  • Вопрос задан
  • 105 просмотров
Решения вопроса 3
AgentSmith
@AgentSmith
Это мой правильный ответ на твой вопрос
это классическая задача. Решается через расстояние Левенштейна
Ответ написан
mayton2019
@mayton2019
Bigdata Engineer
Можно вести подсчет триграмм. (Троек символов). И если разница в небольшом числе триграмм - тогда
считаем что слова равны с "допуском". Величину допуска можно установить экспериментально исходя
из тестовых выборок.

Для случая сходразвал сход-развал.
сходразвал: схо ход одр дра раз азв вал
для слова с дефисом из триграмм выпадают
одр дра
следовательно допуск равен двум.

Можно использовать би-граммы или четерех-граммы. Это вопрос эксперимента. Что лучше подойдет на
данном наборе исходных данных.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы