algorithm - 基于标签的聚类算法

标签 algorithm tags cluster-analysis

我希望根据标签对许多提要进行聚类。 一个典型的例子是推特提要。每个提要都有与之关联的用户定义标签。通过分析标签,是否有可能将提要聚类到不同的组中,并告诉这么多提要基于这么多标签。 一个例子是 -

  • Feed1 - 印度尼西亚地震 #earthquake #asia #bad
  • Feed2 - 我所在地区发生大地震#earthquake #bad
  • Feed3 - 我 parent 去了新加坡#asia #tour
  • Feed4 - XYZ 公司正在裁员#XYZ #layoff#bear
  • Feed5 - XYZ 正计划裁员 #XYZ #layoff#bad
  • Feed6 - XYZ 裁员狂潮 #layoff#XYZ #worst

聚类后

  • #asia , # earthquake - Feed1 , Feed2
  • #XYZ,#layoff - Feed4,Feed 5,Feed6

这里的聚类完全基于标签。 有什么好的算法可以实现吗

最佳答案

如果我对您的问题的理解正确,您希望将标签聚类在一起,然后根据提要中的标签将提要放入这些聚类中。

为此,您可以根据标签一起出现的提要数量在标签之间创建相似性度量。对于您的示例,这将是这样的

               #earthquake | #asia | #bad | ...
#earthquake        1       |  1/2  |  2/2
#asia             1/2      |   1   |  1/2
#bad              2/3      |  1/3  |   1
...

此处,(i,j) 处的值等于(i,j) 的频率/(i) 的频率

现在您有了标签之间的相似度矩阵,您几乎可以使用任何适合您需要的聚类算法。由于标签的数量可能非常大,并且在运行算法之前很难估计集群的数量,我建议使用一些分层集群算法,如 Fast Modularity 集群,它也非常快 (See some details here)。但是,如果您对要将其分成的聚类数量有一些估计,那么光谱聚类也可能有用 ( See some details here )。

将标签聚类后,您可以使用一种简单的方法将每个提要分配到一个聚类。这可以非常简单,例如,计算提要中每个集群的标签数量,并分配具有最大匹配标签数量的集群。

如果您的聚类策略很灵活,那么您也可以尝试以类似的方式将 Feed 聚类在一起,方法是根据 Feed 之间的公共(public)标签数量创建 Feed 之间的相似性,然后对 Feed 应用聚类算法相似度矩阵。

关于algorithm - 基于标签的聚类算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14877083/

相关文章:

php - WordPress:按标签分类的相关帖子,但属于同一类别

python - 提取第二和第三邻居时的代码,当第二和第三邻居不存在时将其忽略

solr - 如何最好地进行服务器端地理集群?

javascript - 算法得到的数组总和,小于一个限制

algorithm - 如何快速找到空间区域中的点

c++ - 处理质量 Spring 系统之间碰撞的好方法

mysql - 支持关键字搜索的数据库模式或框架

android - iOS 和 Android 图像边缘羽化算法或库,类似于 photoshop 的

javascript - <Noscript> 标签在 IE6 中不工作。我可以帮忙吗?

algorithm - 3D聚类算法