Как я могу кластеризовать короткие сообщения [твиты] на основе темы? [Тематическая кластеризация] - PullRequest
7 голосов
/ 28 мая 2010

Я планирую приложение, которое будет создавать кластеры коротких сообщений / твитов на основе тем.Количество тем будет ограничено, например, Спорт [НБА, НФЛ, Крикет, Футбол], Развлечения [фильмы, музыка] и так далее ...

Я могу придумать два подхода к этому

  • Попросите пользователей отметить вопросы, как это делает Stackoverflow.Пользователи могут выбирать теги из предварительно определенного списка тегов.Затем на стороне сервера я буду кластеризовать их на основе тегов.Плюсы: - Простой дизайн.Меньше сложности в коде.Минусы: - Выбор для пользователей будет ограничен.Кластеры не будут динамическими.Если происходит новое событие, предопределенные теги пропустят его.
  • Возьмите сообщение, удалите стоп-слова [предопределенные в словаре], примените некоторый алгоритм кластеризации к основному сообщению, чтобы создать кластер и в зависимости от его популярностиотобразить кластер.Кластер будет отображаться до тех пор, пока он не станет популярным [много сообщений в минуту]. Новые сообщения будут просматриваться и назначаться соответствующим кластерам.Плюсы: - Динамическая кластеризация, основанная на популярности события / аварии.Минусы: - повышенная сложность.Требуются дополнительные ресурсы сервера.

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

Также предложите несколько хороших алгоритмов кластеризации. Я думаю, что алгоритм "K-Nearest Clustering" подходит для этой ситуации.

Ответы [ 3 ]

3 голосов
/ 27 апреля 2011

Проверьте Carrot2, этот инструмент извлекает теги из текста и кластеров. Вы можете скачать его с здесь и проверить реализованные алгоритмы (в основном, на Lingo) здесь .

Надеюсь, это поможет вам.

2 голосов
/ 28 мая 2010

Использование Байесовская классификация . Обучите фильтр некоторым предопределенным корпусом и (опционально) предоставьте пользователям возможность улучшить его, помечая объекты, которые были неправильно классифицированы.

Вот несколько примеров использования байесовского классификатора в NLTK .

0 голосов
/ 02 октября 2012

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

...