2017-06-16 15 views
0

私は異なる書籍のタイトルのデータセットを持っています。私は、各書籍のタイトル間のコサイン類似性のネットワークグラフを使ってこれを視覚化したいと考えています。本は2つのカテゴリー(1または0)でラベル付けされています。カテゴリーに基づいて色合いを調整したいと思います。各タイトル間のコサイン類似度は、頂点の重みでなければならない。これを行うにはデータをグラフとして可視化する

私はこのコードを書かれている:

cs_title = squareform(pdist(tit.toarray(), 'cosine')) 
cs_abstract = squareform(pdist(abst.toarray(), 'cosine')) 
X = cs_title + cs_abstract 
print(X.shape) 

各書籍の間のコサイン類似度のX正方行列を出力します。今私は無向グラフのgraph-toolsを使ってこれを視覚化したいと思う。これまで私はグラフクラスをインスタンス化するためにこれを書いています:

g = Graph(directed=False) 

しかし、可視化するデータを追加する方法は不明です。あなたは、グラフに隣接行列を変換することができ、次のコードを使用して

+0

正方形の「X」行列は、重み付き隣接行列と呼ばれます。ドキュメントでそのことを確認したら、グラフツールに隣接行列をロードする方法があるはずです。 –

答えて

0

g = graph_tool.Graph(directed = False) 
     g.add_vertex(len(X)) 
     edge_weights = g.new_edge_property('double') 
     for i in range(X.shape[0]): 
      for j in range(X.shape[1]): 
       if i > j and X[i,j] != 0: 
        e = g.add_edge(i, j) 
        edge_weights[e] = X[i,j] 
     graph_draw(g, vertex_text=g.vertex_index, vertex_font_size=18, output_size=(200, 200), output="two-nodes.png") 

注:これは、要求に応じて座標色ません。

関連する問題