私は非常に平凡なプログラマーですが、igraph python ライブラリを使用して、特定のフォーラムでのユーザーの中心性の影響を判断し、そのフォーラムへのその後の貢献を予測することを目指しています。
私は、 NetworkXライブラリを使用して同様のことを行っている他の誰かと連絡を取りましたが、現在のフォーラムの規模を考えると、正確な中心性インデックスを計算することは事実上不可能です。時間がかかりすぎます。
これは彼のコードでしたが:
import networkx as netx
import sys, csv
if len(sys.argv) is not 2:
print 'Please specify an input graph.'
sys.exit(1)
ingraph = sys.argv[1]
graph = netx.readwrite.gpickle.read_gpickle(ingraph)
num_nodes = len(graph.nodes())
print '%s nodes found in input graph.' % num_nodes
print 'Recording data in centrality.csv'
# Calculate all of the betweenness measures
betweenness = netx.algorithms.centrality.betweenness_centrality(graph)
print 'Betweenness computations complete.'
closeness = netx.algorithms.centrality.closeness_centrality(graph)
print 'Closeness computations complete.'
outcsv = csv.writer(open('centrality.csv', 'wb'))
for node in graph.nodes():
outcsv.writerow([node, betweenness[node], closeness[node]])
print 'Complete!'
私は igraph ライブラリ (正確な計算ではなく迅速な見積もりを可能にする) で同様のものを書き込もうとしましたが、データを CSV ファイルに書き込めないようです。
私のコード:
import igraph
import sys, csv
from igraph import *
graph = Graph.Read_Pajek("C:\karate.net")
print igraph.summary(graph)
estimate = graph.betweenness(vertices=None, directed=True, cutoff=2)
print 'Betweenness computation complete.'
outcsv = csv.writer(open('estimate.csv', 'wb'))
for v in graph.vs():
outcsv.writerow([v, estimate[vs]])
print 'Complete!'
igraph ドキュメントで個々の頂点 (または NetworkX 専門用語ではノード) を呼び出す方法が見つからないため、エラー メッセージが表示されます)。おそらく私は何か他のことも忘れています。私はおそらく気の利かないプログラマーです :P
私は何を間違っていますか?