2010-10-18 3 views
17

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

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

+0

* Категории тем * (спорт, мир, развлечения, здоровье ...) * предопределенные *? Другими словами, вы уже сейчас можете сгруппировать новости? (Если да, это контролируемая проблема обучения). Или это зависит от пользователя (ов), чтобы указать, сколько и какие категории тем существуют? (=> unsupervised => сложнее) – knb

ответ

2

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

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

9

Это, безусловно, не так легко решаемые проблемы, которые могут быть решены с помощью:

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

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

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

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

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

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

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

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

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

+0

Дорогой Фабрик, спасибо за ваш ответ ... есть ли какой-либо алгоритм или код для этого. – Gourav

+0

Плохая новость: вы должны написать свой собственный. Хороший? Я предоставил много полезной информации;) – fabrik

+0

Ознакомьтесь с литературой по семантическим векторам –

2

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

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

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

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

1

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

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

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

-1

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

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

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