트리 그래프 그리기 - teuli geulaepeu geuligi

가 단연코 최선이다. 씨리어스한 연구자라면 LaTeX를 이용하겠지만, 이건 아무래도 진입장벽이 있으니 다음에 소개하는 걸로 하고... 일단 웹사이트는 가입, 다운로드, 이메일 주소 입력 그 어떤 것도 필요없다는 것이 좋다. 여기까지는 다른 사이트와 같지만 RSyntaxTree만의 특장점은:


    • 한글(과 일본어)도 입력이 가능하다는 것이고, 
    • 글씨체와 수형도의 색상, 가지모양 등 디자인을 조작할 수 있다는 것이다!
    • 심지어는 결과물을 PNG, SVG, PDF 파일 중 선택해서 다운받을 수도 있다. 



트리 그래프 그리기 - teuli geulaepeu geuligi


첫화면에 접속하면 우측하단에 사용방법이 적혀있다('USAGE'). 사실 위의 화면에서 Draw PNG를 눌러서 입력창에 기본으로 적혀있는 저 문자열이 어떻게 수형도가 되는지를 (하단의 사용방법의 설명과 함께) 자세히 살펴보면 깨우칠 수 있다. 일단 명령어?는 대괄호인 [ ]가 90%다. (통사론에서는 labelled bracketing이라고 원래 사용하는 표기방법이라는데 나는 모름...)


1. 한 갈래 A에서 아래로 B, C의 두 가지를 치려면 [A [B] [C]] 를 입력하면 된다. 고맙게도 스페이스는 얼마나 입력하든 간에 결과에 영향을 미치지 않아서 복잡한 문장을 입력할 때 좋다. 


     A

    /  \

  B     C  


2. 그런데 모든 가지는 node가 있어야 수형도로 출력된다. (terminal) node가 안 달려 있으면 유효하지 않은 작업이라는 메세지가 뜬다. node는 [ ]안의 branch? (leaf?) 옆에 바로 단어를 쓰면 된다. 예를 들어 위의 [A [B] [C]]에 I run을 넣어서 [A [B I] [C run] ]을 입력하면 아래와 같이 수형도가 출력된다.


   A

  /  \

B    C

 |      |

I      run


(Leaf Style 옵션이 Auto일 때) 두 단어 이상을 입력하면 | 대신 가 뜬다. 그러니까 run 대신 run fast를 입력한다면([A [B I] [C run fast]]) 아래와 같이 됨.


   A

  /  \

B    C

 |     

I    run fast


3. NP1, NP2 1, 2처럼 아래첨자가 필요할 땐 원하는 곳 뒤에 _ 와 원하는 첨자를 붙이면 된다. 즉, [NP_1] 를 입력하면 NP이 된다. 위의 1, 2, 3을 종합해 [A [B_1 도_3] [C_2 레미 파_4]]를 입력하면 아래와 같은 결과를 얻을 수 있다. 


     A

    /  \

  B1   C2

   |      

3    레미 파4


(3.1. 옵션 중 Auto-Subscript를 선택하면 NP, VP처럼 같은 label이 반복적으로 등장할 경우 저절로 1, 2, 3...  숫자가 매겨진다.)


4. 수형도 내에 명령어가 아니라 정말로 대괄호 [ ]를 표기하고 싶다면 원하는 단어를 \[ \]로 감싸면 된다. (ㅡ e.g. x를 \[x\]로) 이건 원하는 단어가 트리의 어떤 위치에 있더라도 적용 가능하다. 


5. Symmetrize 옵션을 켜두면 가지가 항상 좌우 대칭인 균형잡힌? 트리가 만들어지고, 끄면 가지가 많이 뻗어나가는 쪽은 선을 더 짧게 만드는... 아래와 같은 그림이 된다. 옵션을 클릭해보면서 Draw PNG를 눌러보면 알 수 있는 부분. 글씨체, 색상, 글씨 크기도 마찬가지.


6. 위를 종합하면 Johni sees Maryj.의 수형도를 아래와 같이 그려볼 수 있다. 


트리 그래프 그리기 - teuli geulaepeu geuligi




7. 그냥 워드파일에 입력할 용도이면 위의 수형도를 오른쪽 클릭해서 저장해도 쓸만하다. 이렇게 저장하면 해상도가 낮은 PNG파일이 된다. 그런데 파워포인트에 크게 쓸 경우처럼 깨끗하고 큰 파일이 필요하다면... SVG를 받은 다음 PNG로 변환하거나, 브라우저에 띄워놓고 확대해서 캡쳐해야 한다. SVG 파일의 PNG 변환은 cloud convert (사이트가 깔끔하지만 변환된 파일의 해상도가 낮은 편) 혹은 online converter (고화질로 마음에 드는 결과물을 주지만 사이트에 광고가 덕지덕지 붙어있고 디자인이 산만하다)에서 할 수 있다. 이 과정도 귀찮아서 나는 다운받은 SVG파일을 브라우저에다 끌어다놓고 그냥 확대-캡쳐해서 쓴다.



통사 전공이 아니거나 학부생이면 이 사이트로 모든 과제를 해결할 수 있을 듯 싶다. 예전에는 정말 아무것도 몰라서 ppt로 일일히 그렸었는데 ㅠㅠ... 30분만 투자해서 익혀두면 어떤 수형도든지 뚝딱뚝딱 쉽게 그려낼 수 있다. 게다가 LaTeX의 프로그램 중 간단한 것들은 여기에 쓰인 [ ]의 원리와 아주 비슷한 면이 있어서 나중에도 다 쓸모가 있다.

반응형

트리 : 계층형 트리구조를 시뮬레이션하는 추상자료형으로, 루트값과 부모-자식 관계의 서브 트리로 구성되며, 서로 연결된 노드의 집합이다.

 

<트리와 그래프 차이점>

가장 큰 차이점은 트리는 순환 구조를 갖지 않는다는 것!

그래프는 단방향, 양방향을 모두 가리킬 수 있는 반면 트리는 단방향(부모->자식)뿐. 또한 트리는 하나의 부모만을 가지고 루트 또한 하나다. 

 

트리 그래프 그리기 - teuli geulaepeu geuligi
트리 그래프 그리기 - teuli geulaepeu geuligi
트리 그래프 그리기 - teuli geulaepeu geuligi

위의 세 경우는 모두 트리가 아닌 경우의 예시다.

첫번째 - C의 부모가 둘이라 트리가 될 수 없음

두번째 - (A-B)와 (D-C-E)가 연결되어 있지 않고 루트가 둘이라 트리가 될 수 없음

세번째 - 순환구조라서 트리가 될 수 없음

 

 

 

이진 트리(Binary Tree)

트리 중 특히 모든 노드의 차수가 2 이하일 때를 이진 트리(Binary Tree)라고 부른다.

 

유형 3가지가 존재

1. 정이진트리(Full Binary Tree) 

 - 모든 노드가 0 또는 2개의 자식 노드를 가짐.

 

2. 완전이진트리(Complete Binary Tree)

 - 마지막 레벨을 제외한 모든 레벨이 완전히 채워져있으며, 마지막 레벨의 모든 노드는 가장 왼쪽부터 채워져 있다.

 

3. 포화이진트리(Perfect Binary Tree) 

 - 모든 노드가 2개의 자식 노드를 가짐. 모든 리프 노드가 동일한 깊이 또는 레벨을 가짐.

 

트리 그래프 그리기 - teuli geulaepeu geuligi
트리 그래프 그리기 - teuli geulaepeu geuligi
트리 그래프 그리기 - teuli geulaepeu geuligi

 

반응형

공유하기

게시글 관리

구독하기ggyongi's tech blog

저작자표시 비영리 변경금지