Подтвердить что ты не робот

Группировка похожих новостей вместе, как в новостях GOOGLE

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

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

4b9b3361

Ответ 1

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

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

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

В большинстве случаев название новости не будет затронуто, оно остается в оригинальной форме максимум. Таким образом, категория, название и дата публикации являются хорошей отправной точкой для группировки новостей в один.

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

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

  • Существует много стоп-слов, которые могут исказить сравнение, поэтому вам нужно проигнорировать их.
  • Вы можете определить синонимы (J Lo = Jennifer Lopez)

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

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

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

Ответ 2

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

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

Ответ 3

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

http://en.wikipedia.org/wiki/MinHash

имеет ссылку и утверждение, что в Новостях Google использовался вариант LSH и MinHash:

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

Ответ 4

Я думаю, вам следует попробовать Jaccard Coefficient или Jaccard сходство

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

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

Ответ 5

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

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

Поскольку это новость, и у вас появились новые статьи, вам, вероятно, понадобится "онлайн-алгоритм", а не пакетный. В качестве примера можно найти инкрементный DBSCAN.