1
次の2つの文の依存関係解析結果(Stanford Parserを使用)は以下のとおりです。Pythonの共通ノードで2つのドットグラフをマージする
文1 -
digraph G{
edge [dir=forward]
node [shape=plaintext]
0 [label="0 (None)"]
0 -> 5 [label="root"]
1 [label="1 (John)"]
2 [label="2 (is)"]
3 [label="3 (a)"]
4 [label="4 (computer)"]
5 [label="5 (scientist)"]
5 -> 2 [label="cop"]
5 -> 4 [label="compound"]
5 -> 3 [label="det"]
5 -> 1 [label="nsubj"]
}
文2 - ジョンはメアリーという名前の姉を持つジョンはコンピュータ科学者
ドット形式です。
ドットフォーマット -
digraph G{
edge [dir=forward]
node [shape=plaintext]
0 [label="0 (None)"]
0 -> 2 [label="root"]
1 [label="1 (John)"]
2 [label="2 (has)"]
2 -> 5 [label="dobj"]
2 -> 1 [label="nsubj"]
3 [label="3 (an)"]
4 [label="4 (elder)"]
5 [label="5 (sister)"]
5 -> 6 [label="acl"]
5 -> 3 [label="det"]
5 -> 4 [label="amod"]
6 [label="6 (named)"]
6 -> 7 [label="dobj"]
7 [label="7 (Mary)"]
}
今私は共通ノード、John
でこれらのグラフをマージしたい 。私は現在、このよう
from graphviz import Source
s = Source(dotGraph, filename=filepath, format="png")
をdot
グラフをインポートするgraphvizのを使用してでもGraphviz
、またはNetworkx
でグラフをマージする何の機能もないように思わしています。では、どうやってこれを行うことができますか?
あなたはこの問題に関する議論を通じてより多くのを見たい場合:http://stackoverflow.com/questions/2012036/graphviz-how-to-connect-subgraphs – SkinnyTok
どのように私は間の共通のノードを見つけるのですか2つのグラフ?いくつかのトラバーサル手法がありますか?そして、合併時に、冗長性がないように参照を変更しなければならない。どうすればよいのだろうか? –
一般的なノードを見るにはリンクを定義する場所を見て、ノード2に何がリンクされているかを見たいと思うと、cluster0(5 - > 2)とcluster1(2 - > 5,2 - > 1 ) – SkinnyTok