Format conversion and graphical representation of Universal Dependencies trees.
│
│ ┌─────────────┐
│┌────────┐│ │
││ ││ │┌─────────┐ ┌────┐
││ ┌───│┤ ┌───│┤ │┌──┐│ │
↓│ ↓ ↓│ ↓ ↓│ ↓│ ↓│ ↓
ROOT Je reconnais l' existence du kiwi .
First install Pycairo's dependencies.
If you use Windows, Pycairo won't install automatically anyway but you can install it manually from the unoficial wheels.
If you can't or don't want to install Pycairo on your system, skip this and omit [images] extras in the following step.
python3 -m pip install gingertree[images]
(Either with --user
or in a virtualenv but you knew that already, didn't you?)
You can also install it directly from the tip (unstable but usually safe) of the master branch whith
python3 -m pip install git+https://github.com/LoicGrobol/ginger/[images]
Test if everything works by running ginger examples/test.conll
.
The output should be the same as the ASCII-art tree above.
↑1. It's gingertree
because
ginger
is being squatted ☹ if you know how to fix that, please let me know.
ginger [--from <format>] <in-file> [--to] [<out-file>]
<in-file>
input file (in CoNLL-U format),-
for standard input<out-file>
output file,-
for standard input (default:-
)
-f
,--from <format>
input file format, see below (default:guess
)-t
,--to <format>
output file format, see below (default:ascii
)-h
,--help
Get some help
-
Print to stdout
ginger examples/test.conll
-
Assume CoNLL-X for input format
ginger -f conllx spam.conllx
-
Output TikZ code
ginger examples/test.conll -t tikz
-
Print to a file
ginger examples/test.conll examples/output.asciiart
-
Pipe in and out
cat examples/test.conll | ginger - | less
guess
Try to guess the file format, defaults to CoNLL-U
conllu
CoNLL-U v2 formatconllx
CoNLL-X formatconll2009_gold
CoNLL-2009 format- Takes only the gold columns into account.
- The P- and -PRED attributes are preserved in the
misc
attribute of the intermediate CoNLL-U tree.
conll2009_sys
CoNLL-2009 format- Takes only the predicted columns into account.
- The gold columns and the -PRED attributes are preserved in the
misc
attribute of the intermediate CoNLL-U tree.
Formats used by mainstream NLP tools
talismane
Outputs of Talismanemate_gold
Input/Output of mate-tools (actually an alias forconll2009_gold
)mate_sys
Input/Output of mate-tools (actually an alias forconll2009_sys
)
The input must be either the path to an existing file or -
for standard input. The data that
it contains must be in one of the following formats:
guess
Try to guess the file format, defaults to CoNLL-Uconllx
CoNLL-X formatconllu
CoNLL-U formatconll2009_gold
CoNLL-2009 format (Gold columns only)conll2009_sys
CoNLL-2009 format (Predicted columns only)talismane
Outputs of Talismanemate_gold
Alias forconll2009_gold
, used by mate-toolsmate_sys
Alias forconll2009_sys
, used by mate-tools
Note: no real effort is made to preserve informations that are not relevant to Universal Dependencies, so this might be information-destructive, e.g. if converting from CoNLL-2009 to itself, the P- attributes will be dropped.
To use these formats, the output destination must be either a file and thus must not be the path to
an existing directory, or -
for the standard output.
ascii
ASCII-art (using unicode characters, because, yes, we are subversive)tikz-dependency
LaTeX code using thetikz-dependency
packagetikz
TikZ code. Use thepositioning
,calc
andshapes.multipart
tikz libraries- The output is only the
\tikzpicture
part, not a whole compilable document, there is an example of such a document inexample
. - The code is quite verbose since we chose to rely on TikZ' own arithmetic capabilities in order to allow easier edition and reuse of the generated code.
- The output is only the
To use these formats, the output destination must be either a directory and thus must not be the
path of an existing file, or -
for the standard output, in which case the byte streams
corresponding to different trees will be separated by NULL bytes.
png
svg
pdf
Development and releases on Github.
- When importing non-CoNLL-U treebanks, node forms with spaces are considered to be fixed
expressions, and are treated according to the UD
guidelines by splitting them in single-token
nodes linked by
fixed
dependencies This mean that the exceptions mentioned in the UDv2 guidelines are not supported for those imports. They are supported when importing from CoNLL-U, though.
This licence (the so-called “MIT License”) applies to all the files in this repository. See also LICENSE.md.
Copyright 2022 Loïc Grobol <loic.grobol@gmail.com>
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and
associated documentation files (the "Software"), to deal in the Software without restriction,
including without limitation the rights to use, copy, modify, merge, publish, distribute,
sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or
substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT
NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.