我正在构建一个应用程序,根据他/她与每个朋友的共同朋友推荐Facebook用户的朋友列表。我的想法看起来像那样:
http://i219.photobucket.com/albums/cc213/DoSvn/example03.png
我可以和他/她的朋友(b1,b2 ......)得到A的所有共同朋友。这是b1,b2 ...(c1,c2 ......)之间的交集。我想把朋友分成几个小组,如:
b1,b2,b3组; b1,b4在一组; b5,b6组; b7,b8在一个小组中
可能只选择b1,b2,b3组,因为它通过b1更大也在另一组中。我尝试了一个想法:
这就是我的方式。但我随机选择了“c”,结果不准确。因为我的小学朋友列表最大,所以他们总是出现在3或4组结果中。你有什么主意吗 ?谢谢你:)对我糟糕的解释感到抱歉:)
答案 0 :(得分:0)
图形聚类中有很多工作可能会有所帮助。你可以将每个人建模为一个顶点,在朋友之间有一个边缘(可能有一个权重取决于它们的“接近”程度,例如,他们交换消息的频率)。然后使用图形聚类对顶点集进行分区以获取组。 (它不必是一个分区,例如你可以寻找在它们之间具有高权重边的顶点子集。)
U Minn的hMetis系统实现了许多分区图的策略。