代码之家  ›  专栏  ›  技术社区  ›  friol

友谊关系跟踪算法

  •  2
  • friol  · 技术社区  · 16 年前

    我正在考虑一个应用程序来证明 Six degrees of separation “一组用户是社交网络的一部分的理论。

    我会有这些元素:

    1. 我想证明六度理论的几个用户
    2. 对于每个用户,我都知道社交网络中的朋友列表

    哪种算法是查看两个用户是否连接的最佳算法,使用何种程度并显示连接中的最终步骤?

    2 回复  |  直到 16 年前
        1
  •  4
  •   dmazzoni    16 年前

    在一个社会网络中,找到两个人之间的分离程度,只是在图中找到两点之间最短路径的一个特例。最常见的方法是 Dijkstra's algorithm ,但另请参见 Shortest path problem .

    此外,通过运行一个全对最短路径算法,您可以找出整个网络的最小、最大和平均分离度。

        2
  •  3
  •   Tim Farley    16 年前

    一些附加背景材料:

    为了一般地解决这个问题,您需要避免Web抓取和其他特定于一个社交网络的特殊技术。相反,你可能想调查一下 XHTML Friends Network (XFN) 这是一种使用超链接的rel=“”属性来指示该超链接的目标与您之间的关系的方法。还有一个相互竞争的标准叫做 FOAF 其中使用 RDF .

    这些 microformats 已经存在一段时间了,但是最近对他们的支持增加了很多。StackOverflow在配置文件页面的链接中使用“我”。WordPress博客为blogroll添加这些标签提供了一种简单的编辑界面。许多社交网站在朋友之间的链接中使用这些来表示关系。

    正因为如此,谷歌对这一点产生了兴趣,并开始挖掘这些数据。他们有一个 Social Graph API 这可以同时挖掘XFN和FOAF数据,以执行您想要执行的某些操作。我建议你从那里开始。谷歌的API的好处在于,由于它们在网络上到处挖掘这些信息,你可以将搜索范围扩大到你心目中特定的社交网络之外。