Поиск связанных текстов (корреляция между двумя текстами)
Я пытаюсь найти похожие статьи в базе данных через корреляцию.
Поэтому я разбил текст на массив слов, затем удалил часто используемые слова (статьи, местоимения и т. Д.), Затем сравнил два текста с помощью коэффициента Пирсона. Для одного текста это работает, но для другого это не так хорошо (тексты с большим текстом имеют более высокий коэффициент).
Может кто-нибудь посоветовать хороший метод для поиска похожих текстов?
1 ответ
Прежде всего, вам необходимо указать, что именно вы подразумеваете под сходством и когда два документа (более / менее) похожи.
Если сходство, которое вы ищете, является буквальным, я бы векторизовал документы, используя частоты терминов, и использовал бы косинусное сходство, чтобы уподобить их друг другу, учитывая, что тексты по своей сути являются направленными данными. Схемы взвешивания tf-idf и log-энтропии могут быть протестированы в зависимости от вашего варианта использования. Расстояние редактирования неэффективно для длинных текстов.
Если вас больше волнует семантика, вложения слов - ваш союзник.
Некоторые из упомянутых вами проблем сводятся к нормализации по длине документа и общей частоте слов. Попробуй тф-идф.