1
다음 두 문장 중 종속성 구문 분석 결과 (Stanford Parser 사용)는 다음과 같습니다.파이썬의 공통 노드에서 두 도트 그래프를 병합하십시오.
문장 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"]
}
문장이 - 존은 언니가 마리아라는 이름이 존은 컴퓨터 과학자에게
도트 형식입니다.
도트 형식 -
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
에서 이러한 그래프를 병합 할 . 나는 현재이 같은 dot
그래프,
from graphviz import Source
s = Source(dotGraph, filename=filepath, format="png")
를 가져올은 GraphVIZ를 사용하지만 Graphviz
, 또는 Networkx
에 그래프를 병합 할 기능은없는 것 같다입니다. 그러면 어떻게 할 수 있습니까?
당신은이 문제에 대한 논의를 통해 자세한 내용을보고 싶다면 : http://stackoverflow.com/questions/2012036/graphviz-how-to-connect-subgraphs – SkinnyTok
나는 일반 노드 사이를 어떻게 찾을 수 있습니까 두 개의 그래프? 어떤 트래버스 기법이 있습니까? 그리고 병합 할 때 중복성이 없도록 참조를 변경해야합니다. 어떻게 수행 할 수 있습니까? –
일반적인 노드를 보려면 : 링크를 정의하는 위치를보고, 노드 2에 링크 된 것을보고 싶은 경우 cluster0 (5 -> 2) 및 cluster1 (2 -> 5, 2 -> 1) – SkinnyTok