2015-04-16 89 views
0

我有一個類似電影數據庫的圖,即演員在電影中扮演角色。然後,我需要將此圖轉換爲另一個顯示「演員A瞭解演員B」的演員。在Neo4j的,執行以下操作作爲在http://www.kennybastani.com/2014/11/using-apache-spark-and-neo4j-for-big.html給出:如何使用Networkx將網絡轉換爲另一個網絡

MATCH(A1:人) - [:ACTED_IN] - >(M)< - [:ACTED_IN] - (coActors) CREATE(A1) - [: KNOWS] - >(coActors);

但是因爲我的圖是在Networkx中,那麼在沒有爲整個圖搜索每個節點的情況下,最有效的方法是什麼?

謝謝!

回答

0

原來的圖形是一個二部圖。在networkx中,我們可以使用雙向圖的投影圖生成新圖。如果兩個節點在二分圖中具有公共節點,則它們將鏈接在投影圖中。

X,Y=bipartite.sets(G) 
G1 = bipartite.projected_graph(G, X, multigraph=False) 
G2 = bipartite.projected_graph(G, Y, multigraph=False) 
相關問題