как проверить уникальность (не дублирование) поста в RSS-ленте - PullRequest
3 голосов
/ 07 сентября 2010

при получении и кэшировании / сохранении (в базе данных) некоторых сообщений из RSS-ленты, как определить, что:

  1. это тот же пост (пример: когда в ленте исправлены некоторые опечатки или если заголовок меняется, дата меняется и т. Д.)
  2. поиск каналов, посвященных одной и той же теме (пример: одна и та же история из разных источников)

Есть ли лучшие практики для этих вещей?

Thnx много

Ответы [ 3 ]

3 голосов
/ 07 сентября 2010

Некоторые RSS-каналы имеют элемент guid в качестве идентификатора. Посты с общим guid, вероятно, являются дубликатами. Некоторые RSS-каналы просто заполняют URL, чтобы показать, что уникальность сообщения связана с его URL. Обратите внимание, что если URL совпадает, а Guid - нет, это может означать, что сообщения не являются дубликатами. Если фид не поддерживает архив, URL может не измениться. Такая ситуация, вероятно, довольно редкая.

0 голосов
/ 07 сентября 2010

Взгляните на алгоритмы кластеризации, используемые новостями Google.Хотя ваши требования не так высоки, но они неопределенно связаны с тем, что делают новости Google - они группируют истории об одном и том же событии из разных источников в одну группу.Они используют алгоритмы высокого уровня в сочетании с НЛП.Но вы можете начать с сопоставления ключевых слов в заголовке и URL.

0 голосов
/ 07 сентября 2010

URL будет хорошим началом.Что касается разных версий, когда люди вносят изменения.Это будет зависеть от деталей реализации.

Если pubDate используется в элементе элемента канала, возможно, было бы полезно использовать это как версию.

См .: http://cyber.law.harvard.edu/rss/rss.html#sampleFiles

...