从给定数据中找出标签聚集在一起的概率

Find probability of tags coming together from given data

我只需要一个算法来有效地解决以下问题。 我有带有标签组合的元组,通常来自 together.For 示例

    (python, django, flask, numpy),
    (java, spring),
    (mysql, sql, join),
    (javascript, angularjs, ajax, deferred)

现在我有两个要求。

  1. 我需要根据给定的数据形成不同的类别。
  2. 给定一个新标签或标签元组,我需要找出该标签与数据中所有其他不同标签一起出现的概率 例如:

    Say new tuple is (nodejs, ajax)
        then the probabilities might be 
            (nodejs, ajax) - (javascript, angularjs, ajax, deferred) - .60
            (nodejs, ajax) - (mysql, sql, join) - .20
            (nodejs, ajax) - (java, spring) - .20
            etc 
    

    我该如何解决这个问题。

我建议将其视为图问题,标签是节点,say (tag1,tag2) 出现的次数是 tag1 和 tag2 节点之间边的权重。然后,您可以使用最近邻算法甚至社区检测(这些标签总是一起被提及)来生成推荐标签。

有了构造良好的图、足够的初始数据和一些规范化,我认为可以在 cluster1 =(tag1,tag2) 和 cluster2=(tag3,tag4,标签 5).

所以,解决这个问题的最佳方法基本上是Apriori algorithm.它将为跨国数据库提供关联规则(将每一行视为一个事务)。 下面是一个非常简单的实施教程 link。 http://aimotion.blogspot.com/2013/01/machine-learning-and-data-mining.html