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가 포함되어 있습니다.
산출
암호
\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}