Я создаю веб-сайт, который должен собирать различные новостные ленты и хотел бы, чтобы тексты сравнивались на предмет сходства. Что мне нужно, так это какой-то алгоритм подобия текста новостей. Я знаю, что в php есть функция Similar_text, и я не уверен, насколько она хороша + она мне нужна для javascript. Так что, если бы кто-нибудь мог указать мне пример или плагин или любую инструкцию о том, как это возможно, или, по крайней мере, где искать и начинать расследование.
Алгоритм подобия текста Javascript
Ответы (2)
Существует реализация JavaScript метрики расстояния Левенштейна, которая часто используется для сравнения текстов. Если вы хотите сравнить целые статьи или заголовки, возможно, вам лучше смотреть на пересечения между наборами слов, составляющих текст (и частоты этих слов), а не просто измерять схожесть строк.
Вопрос о том, похожи ли два текста, является философским, пока вы не указываете, что именно это должно означать. Рассмотрим строки «дом» и «мышь». На семантическом уровне они не очень похожи, но они очень очень похожи в отношении своего «внешнего вида», потому что отличается только одна буква (и в этом случае вы могли бы использовать расстояние Левенштейна).
Чтобы принять решение о сходстве, вам необходимо соответствующее текстовое представление. Вы можете, например, извлечь и подсчитать все n-граммы и сравнить две полученные частоты. -векторы, использующие меру подобия, например косинусное сходство. Или вы можете преобразовать слова в их корневую форму, удалив все стоп-слова, суммируйте их встречаемость и используйте это в качестве входных данных для измерения сходства.
Есть много подходов и статей по этой теме, например. это одно о коротких текстах. В любом случае: чем выше уровень абстракции, на котором вы хотите решить, похожи ли два текста, тем сложнее это будет. Я думаю, что ваш вопрос нетривиальный (и, следовательно, мой ответ довольно абстрактный) ... ;-)