как классифицировать, но не использовать алгоритмы классификации или кластеризации? - PullRequest
2 голосов
/ 08 августа 2011

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

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

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

28 newречь идет о матче между "Ман Юнайтед" и "Ман Сити".

.,.

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

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

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

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

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

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

Ответы [ 4 ]

2 голосов
/ 08 августа 2011

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

2 голосов
/ 08 августа 2011

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

1 голос
/ 08 августа 2011

Вы можете использовать алгоритмы иерархической кластеризации, чтобы исследовать отношения между вашими элементами - самые близкие элементы (новости с почти одинаковым описанием) будут находиться в одних и тех же кластерах, а самые близкие кластеры (группы похожих новостей) будут находиться в одном супер-кластер и т. д. Кроме того, есть довольно хороший и быстрый алгоритм, называемый CLOPE - http://www.google.com.ua/url?sa=t&source=web&cd=11&sqi=2&ved=0CF0QFjAK&url=http%3A%2F%2Fciteseerx.ist.psu.edu%2Fviewdoc%2Fdownload%3Fdoi%3D10.1.1.13.7142%26rep%3Drep1%26type%3Dpdf&rct=j&q=CLOPE&ei=gvo_Tsi4AsKa-gas-uCkAw&usg=AFQjCNGcR9sFqhsEkAJowEjIGbDBwSjeXw&cad=rja

1 голос
/ 08 августа 2011

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

...