karaboz
@karaboz
Директор продуктов в Хабре.

Какой алгоритм объедиения (склеивания) однотипных уведомлений лучше всего использовать в социальных сервисах?

Имеются в виду уведомления о действиях других пользователей, связанных с ранее проявленной данным пользователем активностью. У уведомлений есть следующие атрибуты: субъект действия, объект действия, и тип действия. Некоторые уведомления могут не обладать субъектом.

Надо решить проблему того, что когда уведомлений становится слишком много, их сложно читать. И возникает естественное желание сгруппировать уведомления каким-то понятным и логичным способом. Как видится, возможно объединение как по пользователю, так и по объекту действия, так и по типу активности.

Например, когда пользователь пишет ответ на мой комментарий, мы показываем это в последних моих уведомлениях: «mr.X отвечает на ваш комментарий в публикации 'Инвайты на Хабр' 22.12.2011»

И если мы решим группировать по субъекту действия, то вдобавок показываем в свернутом виде «Ещё уведомления о действиях mr.X», разворачивающиеся, например, в такой список:
«mr.X нравится ваш комментарий в публикации 'Социальные сети' 21.12.2011»
«mr.X не нравится ваш комментарий в публикации 'Facebook: Open Graph' 20.12.2011»
«mr.X добавляет вас в свои контакты 19.12.2011»

А возможна группировка по объекту действия. Тогда мы в свернутом виде показываем «Ещё уведомления о других комментариях» и список будет примерно таким:
«mr.Y отвечает на ваш комментарий в публикации 'Социальные сети' 21.12.2011»
«mr.Z отвечает на ваш комментарий в публикации 'Facebook: Open Graph' 20.12.2011»

А если мы решим группировать уведомления по объекту, тогда в свернутом виде покажем «Ещё уведомления о публикации 'Инвайты на Хабр'»:
«mr.Y отвечает на ваш комментарий в публикации 'Инвайты на Хабр' 21.12.2011»
«mr.Z нравится ваш комментарий в публикации 'Инвайты на Хабр' 20.12.2011»

Более сложный группировки могут предполагать группировки сразу по нескольким атрибутам, например по субъекту и типу действия. Собственно вопрос в том, какой тип группировки предпочесть? Возможны ли одновременно несколько типов группировок? Есть ли удачные примеры реализации?
  • Вопрос задан
  • 2592 просмотра
Пригласить эксперта
Ответы на вопрос 1
@Zeldan
Алгоритмы кластеризации можно использовать, что то типа ru.wikipedia.org/wiki/K-means. На мой взгляд, неверно поставлен вопрос, не «склеиваиние», а фильтрация или объединение по какому-то признаку.

Если можно опишите пример использования, тогда будет легче подсказать.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы