추가 화살표가 있는 종속성 트리 그래프

추가 화살표가 있는 종속성 트리 그래프

Stanford Parser를 사용하여 트리(검은색 구성 요소)를 만들었습니다. 하지만 그래프를 내보낼 수는 없으므로 스크린샷을 찍어야 했습니다. 그런 다음 해당 그래프에 해당 레이블이 있는 두 개의 새로운 다채로운 행을 추가해야 했습니다.

분명히 이것을 라텍스에서 JPG로 가져올 때 인쇄할 때 매우 나쁜 결과를 얻습니다. 누구든지 이 그래프 또는 그 일부를 재현하는 방법과 이를 달성하기 위해 무엇을 사용해야 하는지에 대해 도움을 주거나 힌트를 줄 수 있습니까?

여기에 이미지 설명을 입력하세요

답변1

패키지를 사용하여 LaTeX 자체에서 트리를 수행하는 한 가지 방법은 다음과 같습니다 forest.

\documentclass[tikz,border=5pt]{standalone}
\usepackage{forest}
\usetikzlibrary{arrows.meta}
\begin{document}
  \begin{forest}
    for tree={
      parent anchor=south,
      child anchor=north,
      tier/.wrap pgfmath arg={tier#1}{level()},
      font=\sffamily
    }
    [ROOT, name=root
      [SBARQ
        [WHNP
          [WDT
            [Which]
          ]
          [NP
            [NN
              [animal]
            ]
          ]
        ]
        [SQ
          [VBD
            [was]
          ]
          [RB
            [not, name=not]
          ]
          [VP
            [VBN
              [eaten, name=eaten]
            ]
          ]
        ]
        [.
          [?]
        ]
      ]
    ]
    \draw [ultra thick, blue, -{Triangle[]}] (root.south east) [bend left=65] to node [pos=.25, right, fill=blue, font=\sffamily\footnotesize, text=white, inner sep=1pt, xshift=5pt]  {ROOT}  (eaten.north east) ;
    \draw [ultra thick, red, -{Triangle[]}] (eaten.west) [bend left] to node [pos=.25, left, fill=red, font=\sffamily\footnotesize, text=white, inner sep=1pt, xshift=-5pt]  {NEG}  (not) ;
  \end{forest}
\end{document}

나무

답변2

cfr이 패키지와 함께 멋진 솔루션을 제공했기 때문에 forest여기에 Tikz가 포함되어 있습니다.

산출

그림 1

암호

\documentclass[margin=10pt]{standalone}
\usepackage{tikz}
\usepackage{tikz-qtree}
\usetikzlibrary{trees,calc,arrows.meta,positioning,bending}

\tikzset{
    edge from parent/.style={draw, gray},
    coln/.style={scale=0.6,inner sep=2pt, outer sep=0mm,draw=none,fill=#1, text=white},
    >=latex,
}

\begin{document}

\begin{tikzpicture}[
    level/.style={level distance=8mm},
    level 1/.style={sibling distance=25mm},
    level 3/.style={sibling distance=10mm},
    font=\sffamily
    ]

\node (root) {ROOT}
    child {node {SBARQ}
        child {node {WHNP}
            child {node {WDT}
                child {node {Which}
                }
            }
            child {node {NP}
                child {node {NN}
                    child {node {animal}
                    }
                }
            }
        }
        child {node {SQ}
            child {node {VBD}
                child {node {was}
                }}
            child {node {RB}
                child {node (not) {not}
                }}
            child {node {VP}
                child {node {VBN}
                    child {node (eat) {eaten}
                }}
            }
        }
        child[sibling distance=18mm] {node {.}
            child {node {?}
        }
    }
};

\draw[thick, blue!60!black] (root.east)
    edge[out=-10,in=45,->,looseness=1.4] node [midway,right,xshift=.3em,coln=blue!55] {Root}
        ($(eat.north east)+(-1mm,-1mm)$);
\draw[thick, red] (eat.west)
    edge[out=180,in=270,->] node [midway,left,xshift=-.3em,coln=red!60] {NEG}
        (not.south);

\end{tikzpicture}
\end{document}

관련 정보