Как нарисовать дерево зависимостей из результата парсинга CoreNLPClient? - PullRequest
0 голосов
/ 12 июля 2020

Мне нужно дерево зависимостей для результата синтаксического анализа. Я выполнил синтаксический анализ, используя код, приведенный в репозитории github stanford core nlp

. Я получил следующий результат. [Снимок экрана с записью jupyter] [1]

Я видел другие ответы, в которых упоминалось graphviz и todoformat (), но эти методы требуют ввода формата семантикграфа (todoformat, насколько я знаю). Мне удалось преобразовать результат синтаксического анализа в следующий формат, но это список строк. [новый формат результата] [2] Как я видел другие форматы результатов, подобные этому. Что я могу сделать, чтобы получить график дерева зависимостей? Будет ли изменен результат, который я получаю, в форму, которая работает для todoformat? Я новичок в этом. Буду очень признателен за вашу помощь. [1]: https://i.stack.imgur.com/qma9n.png [2]: https://i.stack.imgur.com/Xjhwh.png

Код:

with CoreNLPClient(annotators=['tokenize','ssplit','pos','lemma','ner','parse','depparse','coref'], timeout=60000, memory='16G') as client:
    # submit the request to the server
    ann = client.annotate(text)
    sentence = ann.sentence[0]
    print('dependency parse of first sentence')
    dependency_parse = sentence.basicDependencies
    print(dependency_parse)````


1 Ответ

0 голосов
/ 15 августа 2020
from stanza.server import CoreNLPClient
client = CoreNLPClient(
        annotators=['tokenize','ssplit','pos','lemma','ner', 'parse', 'openie','depparse','coref'],
        timeout=30000,
        memory='16G')

test ="A man and a woman came into the store."
matches = client.tregex(text, 'S')
print(matches['sentences'][0]['0']['match'])
...