Как я могу кластер короткие сообщения [твиты] на основе темы? [Тематическая Кластеризация]


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

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

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

Также предлагают некоторые хорошие алгоритмы кластеризации.Я думаю, что алгоритм "k-ближайшей кластеризации" подходит для этой ситуации.

3 7

3 ответа:

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

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

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

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

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