2017-02-03 7 views
0

스탠포드 의존성 파서는 dot 형식으로 그래프를 생성합니다.이 형식은 다음과 같습니다.파이썬에서`점 '그래프를 조작하는 방법

문장 => 나는 ComputerScientist 같은 조건을 찾아 하나로 결합 할

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"] 
} 

"존은 컴퓨터 과학자이다". 나는 이미 어떤 용어를 조합해야하는지 알려주는 코드를 가지고있다. 그러나 나는 그래프에서 그러한 용어를 찾을 수없고 결합하여 dot 형식 출력을 생성합니다. 나는 새로운 그래프를 만들고 플롯을 만들고 파일을 저장할 수있는 Graphviz을 보았지만 노드를 검색하고 결합하는 방법을 찾지 못했습니다. 어떻게해야합니까?

추신 : iGraph을 보았지만 dot 형식을 지원하지 않습니다. 나는 또한 graph-tools을 발견했다. 나는 이것과 같은 간단한 작업을하는 데 매우 큰 유틸리티라고 생각한다. (종속성 중 하나는 약 200MB입니다). NetworkX 문서에서도 특정 레이블이있는 노드를 검색 할 수있는 방법이 없었습니다.

답변

0

당신이 찾고있는 것이 명확하지 않습니다. 도트 파일을 그래프로 가져 오려면 NetworkX, 특히 here을 살펴보십시오.

+0

내가 말했듯이, 나는이 그래프에서 특정 용어를 찾고, "컴퓨터"를 포함하는 노드를 찾고 싶다. Graphviz를 사용하여 이미 도트를 가져 왔지만 graphviz를 사용하여 그래프를 수정할 수는 없습니다. –

+1

NetworkX와 PyDot를 사용하면'G = nx.read_dot (myfile)'과 같은 도트 파일을 읽을 수 있습니다. 결합 노드는 예를 들면 다음과 같다. 'G2 = nx.contracted_nodes (G, 'computer', 'scientist')'와 같이하면된다. – RafG

+0

그래도 지금까지 사용한 코드를 넣거나 "그래프를 수정할 수 없습니다"라는 이유를 알려주십시오. 문제가 생겼으나 기술적 세부 사항이 필요합니다. – debzsud