Simple dependency visualizer for spaCy, UniDic2UD, Stanza, NLP-Cube, Trankit, etc.
>>> import spacy
>>> nlp=spacy.load("en_core_web_sm")
>>> doc=nlp("I saw a horse yesterday which had no name.")
>>> import deplacy
>>> deplacy.render(doc)
I PRON <══════════════╗ nsubj
saw VERB ═══════════╗═╗═╝═╗ ROOT
a DET <════════╗ ║ ║ ║ det
horse NOUN ═══════╗═╝<╝ ║ ║ dobj
yesterday NOUN <══════║═════╝ ║ npadvmod
which DET <════╗ ║ ║ nsubj
had AUX ═══╗═╝<╝ ║ relcl
no DET <╗ ║ ║ det
name NOUN ═╝<╝ ║ dobj
. PUNCT <════════════════╝ punct
deplacy.render(doc,BoxDrawingWidth=1,EnableCR=False,WordRight=False,CatenaAnalysis=True,file=None,Japanese=False)
renders doc
on a terminal. For old terminals, whose Box Drawing characters are “fullwidth”, BoxDrawingWidth=2
nicely works. For several languages with “proportional” characters, EnableCR=True
or WordRight=True
may work well. CatenaAnalysis=False
disables Immediate Catena Analysis.
deplacy.serve(doc,port=5000,RtoL=False)
invokes a simple web-server to visualize doc
with SVG. Try to connect http://127.0.0.1:5000
with your local browser. For Google Colaboratory, port=None
visualizes doc
directly on the notebook.
deplacy.dot(doc,RtoL=False)
returns raw DOT string for graphviz.Source
.
deplacy.render()
deplacy.serve()
deplacy.dot()
pip install deplacy
You need to install spaCy, UniDic2UD, Stanza, NLP-Cube, or Trankit separately. For Google Colaboratories, please follow (and edit) the templates shown below.
Koichi Yasuoka (安岡孝一)