Как сравнить два текста в JS?

Доброго времени суток, друзья!

Делаю парсер на nodeJs, есть событие, но на двух разных сайтах, оно называет по-разному, например:
Робин Хаазе VS Фабио Фоньини
А на втором сайте:
Хасе Робин VS Фоньини Фабио

Проблема:
Визуально мы можем увидеть, что это одно событие, но написанное по-разному. Если взглянуть детально, они серьёзно различаются, например фамилия Хаазе и Хасе, а также порядок имени и фамилии.
Не знаю как написать алгоритм, который сможет посчитать на сколько эти строки похожи без учёта порядка слов и сделать отрез по коэффициенту, если он например меньше 60%.

Задача:
Другими словами, алгоритм должен чётко нам сказать, что скорее всего приведённые в пример две строки - представление одного и того же события.

У кого есть идеи?
  • Вопрос задан
  • 2970 просмотров
Решения вопроса 2
@RidgeA
вот есть пакет для анализа натуральных языков
https://www.npmjs.com/package/natural
В т. ч. там есть ряд функция для анализа схожести строк (то же расстояние Левенштейна и другие). Надо подбирать что лучше подходит, возможно комбинация разных метрик.
Ответ написан
Комментировать
Young_khv
@Young_khv
ASP.NET Developer
Можно попробовать парсить фразы на слова, сортировать в одном направлении, слить результат обратно в одну строку, затем вычислять расстояние Левеншейна и его уже сравнивать с каким-то пороговым значением
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@davidnum95
Вот есть еще такая библиотека fuzzy-search
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы