3

ID からラベルへのマッピングを作成したい GML (Graph (not Graffiti) Modeling Language) ファイルがあります。リスト操作が機能していないように見えるため、これを行う方法について途方に暮れています。2 つの区切り記号の使用方法を指定する例を使用してみましたが、私のファイルでは機能しません。

誰かが私を案内してもらえますか?

GML ファイルは次のように配置されます。

graph [
  node [
    id 0
    label "24"
  ]
  node [
    id 1
    label "25"
  ]
  node [
    id 2
    label "26"
  ]
  node [
    id 3
    label "27"
  ]
  node [
    id 4
    label "20"
  ]
  node [
    id 5
    label "21"
  ]
(... some more nodes)
  edge [
    source 0
    target 75
    weight 4
  ]
  edge [
    source 0
    target 68
    weight 2
  ]
(many more edges)
]

各ノード ブロックのデータを抽出し、ノード ID からノード ラベルへのマッピングを作成したいと考えています。たとえば、最初のノードのマッピングは 0->24 などになります。エッジ情報は気にしません。

助けてくれてありがとう。

4

1 に答える 1

9

NetworkX (Python) を使用できる場合は、このようにファイル (t.gml がファイル) を読み取って、マッピングを取得できます。

In [1]: import networkx as nx

In [2]: G = nx.read_gml('t.gml')

In [3]: G.node
Out[3]: 
{0: {'id': 0, 'label': u'24'},
 1: {'id': 1, 'label': u'25'},
 2: {'id': 2, 'label': u'26'},
 3: {'id': 3, 'label': u'27'},
 4: {'id': 4, 'label': u'20'},
 5: {'id': 5, 'label': u'21'}}

例えば

In [4]: G.node[0]['label']
Out[4]: u'24'
于 2013-02-09T15:54:50.333 に答える