Как найти сходство в текстах - PullRequest
3 голосов
/ 26 июня 2010

У меня есть база данных, где пользователи загружают статьи. Я хотел бы создать алгоритм, в котором мое веб-приложение будет предлагать похожие тексты в соответствии с тем, который читает пользователь.

Я видел несколько примеров, таких как Расстояние Левенштейна . Но эти алгоритмы измеряют расстояние для строк, а не для целых статей. Есть ли способ извлечь наиболее важные ключевые слова из текста? Конечно, я понимаю, что « самый значительный » - это неоднозначный термин.

Как другие сайты управляют этим?

большое спасибо

Ответы [ 2 ]

1 голос
/ 26 июня 2010

Есть ли способ извлечь наиболее важные ключевые слова из текста?

Да.По сути, вы извлекаете все слова из текста, сортируете их по частоте, удаляете общие слова (a, an, the и т. Д.), Сопоставляя их со словарем общих слов, и сохраняете 20 или более лучших слов вместес частотой, с каждой статьи.

Количество ключевых слов, которые вы сохраняете, связано как с длиной статьи, так и с темой всех статей.Меньше слов работает для статей общего интереса, в то время как для статей особого интереса требуется больше слов, таких как ответы на вопросы программирования.

Статьи, которые соответствуют более чем половине главных слов, могут считаться связанными.Степень родства будет зависеть от количества совпадающих главных слов и частоты совпадающих слов.

Вы можете рассчитать показатель родства, умножив частоты каждого подходящего слова из двух статей и суммируя все произведения,Чем выше балл, тем больше статей связано.

0 голосов
/ 05 августа 2014

Вы можете попытаться скорректировать «вес» каждого слова по частоте, в которой оно появляется в во всех статьях. Таким образом, лучшими показателями подобия будут слова, которые встречаются только в двух сравниваемых и больше нигде. Это автоматически игнорировало бы общие слова (a, an, the и т. Д.), Упомянутые @Gilbert Le Blanc.

...