如果我正确理解您的问题,您希望将标签聚集在一起,然后根据提要中的标签将提要放入这些集群中。
为此,您可以根据标签一起出现的提要数量创建标签之间的相似性度量。对于您的示例,这将是这样的
#earthquake | #asia | #bad | ...
#earthquake 1 | 1/2 | 2/2
#asia 1/2 | 1 | 1/2
#bad 2/3 | 1/3 | 1
...
在这里,值(i,j)
等于frequency of (i,j)/frequency of (i)
。
现在您有了标签之间的相似性矩阵,您几乎可以使用任何适合您需求的聚类算法。由于标签的数量可能非常大,并且在运行算法之前估计集群的数量很困难,我建议使用一些层次聚类算法,例如快速模块化聚类,它也非常快(请参阅此处的一些详细信息)。但是,如果您对想要将其分解成的集群数量有一些估计,那么光谱聚类也可能很有用(请参阅此处的一些详细信息)。
After you cluster the tags together, you could use a simple approach to assign each feed to a cluster. This can be very simple, for example, counting the number of tags from each cluster in a feed and assigning a cluster with the maximum number of matching tags.
If you are flexible on your clustering strategy, then you could also try clustering the feeds together in a similar way by creating a similarity between the feeds based on the number of common tags between the feeds and then applying a clustering algorithm on the similarity matrix.