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