Группировка похожих новостей вместе, как в GOOGLE NEWS - PullRequest
17 голосов
/ 18 октября 2010

Я не могу легко управлять RSS-лентами из-за огромного количества новых историй / подобного содержания новостей, размещенных на различных новостных сайтах. Для таких предметов, как мировые новости и деловые новости, многие из этих историй являются излишними, добавляя бремя читателям, чтобы разобраться, какие истории они уже прочитали. Чтобы справиться с двойными проблемами наводнения и избыточности, мне нужно разработать код, который сокращает количество элементов для чтения и использует перекрывающуюся информацию для предсказания интересных тем.

было бы проще, если бы я мог группировать похожие новости вместе, как в GOOGLE NEWS / StackOverflow, и представлять их пользователям.

Ответы [ 5 ]

9 голосов
/ 18 октября 2010

Это определенно не так просто решить проблему, которая может быть решена с помощью:

  • интеллектуальные функции синтаксического анализа текста
  • Сырая аппаратная мощность
  • оба из них
  • тестирование, тестирование, тестирование
  • точная настройка в конце

Прежде всего, я бы сгруппировал разные источники новостей в какую-то относительно широкую категорию. Вы можете легко определить, что источник новостей Tech не будет публиковать новости в экономической категории. (Или это проблема.)

В большинстве случаев заголовок новостей не будет затронут, в большинстве случаев он останется в исходном виде. Поэтому Category, Title и Publish Date - хорошая отправная точка для группировки новостей в один.

Если вы обнаружите проблемы с описанными выше методами, вам нужно немного подкорректировать под капотом.

Может быть, вам нужно прочитать всю статью и сравнить две (тысячи) статей слово за словом.

  • Есть много стоп-слов, которые могут исказить сравнение, поэтому вам придется их игнорировать.
  • Возможно, вы захотите определить синонимы (J Lo = Дженнифер Лопес)

Если исходные тексты новостей похожи (вы можете определить пороговое значение), вы можете снова сравнить другие факторы (описанные выше).

Некоторые источники новостей предоставляют хорошие теги в RSS-источнике, возможно, вы тоже можете использовать это, но не полагаться на это.

И помните, вам понадобится много настроек в начале (около 1 года), тогда все будет хорошо.

3 голосов
/ 01 мая 2015

Я где-то читал - но у меня нет ссылки - что Новости Google используют вариант MinHash для обнаружения почти повторяющихся новостных сообщений.И многие из них почти идентичны, они поступают из агентства печати только с незначительными изменениями в газетах.LSH и MinHash:

Das, Abhinandan S. et al.(2007), «Персонализация новостей Google: масштабируемая совместная онлайн-фильтрация», Материалы 16-й международной конференции по всемирной паутине.ACM

2 голосов
/ 18 октября 2010

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

Если вы хотите вдохновиться, посмотрите исходный код Google Living Stories: http://code.google.com/p/living-stories/

1 голос
/ 05 мая 2015

Я думаю, вам следует попробовать коэффициент Джакарда или сходство по Джакарду

Индекс Жакара, также известный как коэффициент подобия Жакара (первоначально придуманный коэффициент де коммуне Поля Жакара), представляет собой статистику, используемую для сравненияразнообразие наборов образцов.Коэффициент Жакара измеряет сходство между конечными наборами выборок и определяется как размер пересечения, деленный на размер объединения наборов выборок. Коэффициент Джакарра.

Я думаю, что Facebook использует это, а также некоторые магазины электронной коммерции, чтобы сгруппировать связанные с ними продукты, публикации и т. Д. Вы можете посмотреть эти другие ссылки здесь, в Stackoverflow, для руководства..

0 голосов
/ 15 декабря 2015

Вам нужно будет выполнить некоторую форму кластеризации документов.Это включает в себя:

  • Разбивка статей на «признаки» (например, вектор ключевых слов TF-IDF)
  • Наличие показателя сходства (например, косинусного сходства, которое можетвозьмите две статьи и решите, насколько они похожи)
  • Алгоритм кластеризации, который использует метрику подобия для разбиения статей на кластеры.

Поскольку это новости, и у вас есть новые статьиПриходя, вам, вероятно, понадобится алгоритм «онлайн», а не пакетный.Поиск инкрементного DBSCAN в качестве примера.

...