spaCy: проблема с поиском ROOT-слова в предложении с помощью анализа зависимостей - PullRequest
0 голосов
/ 14 октября 2019

Я пытаюсь разобрать следующее предложение, используя spaCy:

text = "Parsley Energy to acquire Jagged Peak Energy in an 
          all-stock deal."

doc = nlp(text)
for token in doc:
    print(token.text, ' ====> ', token.dep_)

Это дает мне Энергию как корневой глагол, который является неправильным.

Но если я немного изменю предложение, т.е. с , чтобы получить на , то получу :

new_text = "Parsley Energy will acquire Jagged Peak Energy in an 
            all-stock deal."

Я получуКорневой глагол правильно, когда приобретает .

Есть ли способ, которым я могу получить приобретение в качестве корневого глагола и в первом случае?

1 Ответ

1 голос
/ 15 октября 2019

Прежде всего следует отметить, что корень не обязательно является глаголом (см. здесь и здесь ). Корень - это тот узел, над которым не доминирует ни один из других узлов.

Не конечные предложения содержат глагол, который не показывает время.
например:
"Человек, который победитВ конкурсе "
" в этом примере довольно ясно, что корень - это "человек", а "победа" зависит от "человека"

точно так же, если мы имеем:Jagged Peak Energy в сделке с акциями ". Было бы также ясно, что корень - это «компания»

Ваш первый пример: «Parsley Energy приобретает Jagged Peak Energy в сделке с акциями». Менее очевидно, я думаю, что это эллипс, пропущенное слово в эллиптическом предложении «есть». Обычно предложение будет следующим: «Энергия Петрушки - это для приобретения ..»

см. здесь :

Если основной предикат неприсутствует (из-за многоточия) и есть несколько осиротевших иждивенцев, один из которых переводится в положение головы (корня), а другие сироты прикрепляются к нему.

В заключение, он не появляетсячто Spacy делает ошибку здесь.

...