我有一个类似电影数据库的图表,即演员在电影中扮演角色。然后我需要将这个图转换为另一个图,显示“演员A知道演员B”。在Neo4j中,您执行http://www.kennybastani.com/2014/11/using-apache-spark-and-neo4j-for-big.html中给出的以下内容:
比赛(a1:人) - [:ACTED_IN] - >(m)< - [:ACTED_IN] - (coActors) CREATE(a1) - [:KNOWS] - >(coActors);
但是,由于我的图表在Networkx中,如果不搜索每个节点的整个图形,最有效的方法是什么?
谢谢!
答案 0 :(得分:0)
事实证明原始图是一个二分图。在networkx中,我们可以使用二分图的投影图来生成新图。如果两个节点在二分图中具有公共节点,则它们将在投影图中链接。
X,Y=bipartite.sets(G)
G1 = bipartite.projected_graph(G, X, multigraph=False)
G2 = bipartite.projected_graph(G, Y, multigraph=False)