как классифицировать, но не использовать алгоритмы классификации или кластеризации?

У меня есть программа-краулер, которая ежедневно хранит спортивные данные от 7 информационных агентств. Ежедневно здесь хранится около 1200 спортивных новостей. Я хочу разделить новости за последние два дня на подкатегории. Итак, каждые два дня у меня появляется около 2400 новостей именно за эти дни, и многие из их тем говорят об одном и том же событии. Например:

70 новостей говорят о гонке Брэда Кеселовски на 500 миль.

120 новостей говорят об американском пловце Няде, который начинает плавать.

28 новых участников говорят о матче между «Манчестер Юнайтед» и «Ман Сити».

. . .

Другими словами, я хочу создать что-то вроде Google News.

Проблема в том, что эта ситуация не является проблемой классификации, потому что у меня нет специальных классов. Например, мои занятия не связаны с плаванием, гольфом, футболом и т. д. Мои занятия - это особые события в каждой области, которые произошли за эти два года. Поэтому я не могу использовать алгоритмы классификации, такие как Наивный Байес.

С другой стороны, моя проблема тоже не решается с помощью алгоритмов кластеризации. Потому что я не хочу заставлять их объединять в n кластеров. Может быть, в одной из новостей нет похожих новостей или, может быть, в одном пакете из двух дней есть 12 разных историй, но в другие два дня есть 30 разных выпусков. Поэтому я не могу использовать алгоритмы кластеризации, такие как «Одно звено (максимальное сходство)», «Полная ссылка (минимальное сходство)», «Максимально взвешенное соответствие» или «Среднее по группе (среднее внутреннее сходство)».

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

Я прочитал эту статью, но это был не мой ответ.

Есть ли какой-нибудь известный алгоритм решения этой проблемы?


comment
Я думаю, вы определенно ищете здесь алгоритмы кластеризации. Существуют алгоритмы кластеризации, которые не всегда создают фиксированное количество кластеров, а вместо этого пытаются найти группы элементов, которые выглядят одинаково. Не отвергайте это как возможность; Этому посвящено огромное количество исследований искусственного интеллекта!   -  person templatetypedef    schedule 08.08.2011


Ответы (4)


Проблема кажется мне проблемой кластеризации с неизвестной мерой качества для кластеров. Это указывает на неконтролируемый метод, который в конечном итоге основан на обнаружении корреляций с использованием избыточности данных. Возможно, что-то вроде анализа главных компонентов или скрытый семантический анализ может оказаться полезным. Различные измерения (главные компоненты или единичные векторы) будут указывать на отдельные основные темы, при этом термины, соответствующие компонентам вектора, мы надеемся, что это слова, появляющиеся в описании. Один из недостатков заключается в том, что нет гарантии, что самые сильные корреляции легко приведут к разумному описанию.

person Michael J. Barber    schedule 08.08.2011

Взгляните на «тематические модели» и «Скрытое распределение Дирихле». Они популярны, и вы найдете код на разных языках.

person Iterator    schedule 08.08.2011

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

person stemm    schedule 08.08.2011

Существует множество алгоритмов кластеризации документов. Взгляните на " Иерархическая кластеризация документов с использованием частых наборов элементов ", например, и посмотрите, похоже ли это на то, что вы хотите. Если вы программируете на Java, вы можете извлечь выгоду из пакета S-space, который включает, среди прочего, алгоритмы скрытого семантического анализа (LSA).

person kc2001    schedule 08.08.2011