Подтвердить что ты не робот

Javascript алгоритм сходства текста

Я создаю сайт, который должен собирать различные новостные ленты и хотел бы, чтобы тексты сравнивались для сходства. Мне нужен какой-то алгоритм слияния текста новостей. Я знаю, что php имеет функцию аналогичного_текста и не уверен, насколько он хорош + мне нужен он для javascript. Поэтому, если кто-нибудь может указать мне пример или плагин или любую инструкцию о том, как это возможно, или, по крайней мере, где искать и начинать расследование.

4b9b3361

Ответ 1

Существует javascript-реализация метрики расстояния Левенштейна, которая часто используется для сравнения текста. Если вы хотите сравнить целые статьи или заголовки, хотя вам может быть лучше смотреть на перекрестки между наборами слов, которые составляют текст (и частоты этих слов), а не просто строковые меры сходства.

Ответ 2

Вопрос о том, похожи ли два текста, является философским, если вы не укажете точно, что это значит. Рассмотрим строки "дом" и "мышь". С семантического уровня они не очень похожи, но они очень похожи на их "физический облик", потому что только одна буква отличается (и в этом случае вы можете пойти расстояние Левенштейна).

Чтобы принять решение о сходстве, вам понадобится соответствующее текстовое представление. Вы могли бы, например, извлечь и подсчитать все n-gram и сравнить два результирующих частотных вектора, используя меру подобия, например, сходство с косинусом. Или вы могли stem слова в свою корневую форму после удаления всех stopwords, суммируйте свои вхождения и используйте это как вход для меры подобия.

Существует множество подходов и документов по этой теме, например. этот один о коротких текстах. В любом случае: чем выше уровень абстракции, где вы хотите решить, являются ли два текста похожими, тем труднее это получится. Я думаю, что ваш вопрос является нетривиальным (и, следовательно, мой ответ довольно абстрактным)...; -)