/deplacy

CUI-based Tree Visualizer for Universal Dependencies and Immediate Catena Analysis

Primary LanguageJavaScriptMIT LicenseMIT

Current PyPI packages

deplacy

Simple dependency visualizer for spaCy, UniDic2UD, Stanza, NLP-Cube, etc.

Usage with spaCy

>>> 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.

Other usages

Visualization examples

deplacy.render()

deplacy.render()

deplacy.serve()

deplacy.serve()

deplacy.dot()

deplacy.dot()

Installation

pip install deplacy

You need to install spaCy, UniDic2UD, Stanza, or NLP-Cube separately. For Google Colaboratories, please follow (and edit) the templates shown below.

Templates for Google Colaboratory

Author

Koichi Yasuoka (安岡孝一)

Reference