Кластеризация на основе тегов с перекрытиями (мягкая кластеризация) - PullRequest
1 голос
/ 01 октября 2019

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

Очень простой пример:

  • фид1: # food # vegetable
  • feed 2: #food # vegetable
  • feed 3: #food # fruit
  • feed 4: #food # fruit

И результат, который я хотел бы получить, был бы:

  • кластер 1: #food # vegetable
  • кластер 2: #food # fruit

Конечно, в действительности у меня могут быть сотни тысяч каналов и несколько тысяч возможных хэштегов.

Я пробовал различные методы в scikit-learn (k-средних, спектральная кластеризация, агломерационная кластеризация), используяМатрица подобия, например:

               #food | #vegetable | #fruit |
#food            1   |    1/2     |   1/2  |
#vegetable      1/2  |     1      |    0   |
#fruit          1/2  |     0      |    1   |

Все эти алгоритмы работают, но они создают непересекающиеся кластеры (каждый хэштег имеет только один кластер).

1 Ответ

1 голос
/ 09 октября 2019
  • Вы можете считать, что ваши хэштеги являются описанием, и использовать алгоритм LDA. Он будет создавать темы, содержащие несколько хэштегов, и каждый из них можно найти в нескольких темах.
  • Вы можете создать взвешенный график из ваших хэштегов. Все ваши хэштеги являются узлами этого графа, и ребро увеличивается, когда хештеги присутствуют в одном и том же фиде. Из этого графика вы можете использовать несколько алгоритмов обнаружения сообществ, которые позволяют перекрывать сообщества (k-click для примера)
...