Я следую этому учебнику , чтобы построить дерево зависимостей для предложения с использованием Python.В этом руководстве показано, как использовать Stanfrod Parser с NLTK.Я уже прошел этот шаг, и я могу построить дерево, как показано в моем коде ниже.
from config import config
from nltk.parse.stanford import StanfordDependencyParser
class ExtractTree:
def __init__(self):
"""
Init Stanford parse tree
"""
path_to_jar = config['libs_root'] + "stanford-parser-full-2018-10-17/stanford-parser.jar"
path_to_models_jar = config['libs_root'] + "stanford-parser-full-2018-10-17/stanford-parser-3.9.2-models.jar"
self.dependency_parser = StanfordDependencyParser(
path_to_jar=path_to_jar, path_to_models_jar=path_to_models_jar,java_options=[]
)
def extract_tree(self, sentence):
"""
Extract the dependency tree for a sentence
:param sentence:
:return:
"""
result = self.dependency_parser.raw_parse(sentence)
return next(result)
Однако я не могу понять, как построить свернутое дерево зависимостей, как описано здесь:
(изображение и цитата взяты из Stanford Parser Documentation стр.20)
В свернутом представлении зависимости, включающие предлоги, конъюнкты, а также информацию о референте относительных предложений, свернуты, чтобы получить прямые зависимости между словами содержимого.
Кажется, у java есть API для него, но я не могу найти способ интегрировать это в Python, есть идеи?