Я хотел бы напечатать результат смещения в текстовом формате.
https://explosion.ai/demos/displacy?text=The%20quick%20brown%20fox%20jumps%20over%20the%20lazy%20dog.&model=en_core_web_sm&cpu=1&cph=1
Вот один пример, который печатает дерево.
Какполучить дерево зависимостей с помощью spaCy?
Но оно все равно отличается от того, что показано смещением.Например, если я использую следующий код,
import spacy
from nltk import Tree
en_nlp = spacy.load('en')
import sys
doc = en_nlp(u'The quick brown fox jumps over the lazy dog.')
def tok_format(tok):
return "_".join([tok.orth_, tok.tag_])
def to_nltk_tree(node):
if node.n_lefts + node.n_rights > 0:
return Tree(tok_format(node), [to_nltk_tree(child) for child in node.children])
else:
return tok_format(node)
print [to_nltk_tree(sent.root).pretty_print() for sent in doc.sents]
, будет напечатано следующее.
jumps_VBZ
_____________|________________________
| | over_IN
| | |
| fox_NN dog_NN
| ________|________ _______|_______
._. The_DT quick_JJ brown_JJ the_DT lazy_JJ
[None]
Однако, displaCy показывает следующее, в котором есть NOUN, VERB, ADP, NOUN, а также nsub, prep, pobj.
Кто-нибудь знает способ точной репликации вывода дисплеев в текстовом формате?Спасибо.