Преобразование активного в пассивное голосовое предложение с использованием Spacy - PullRequest
0 голосов
/ 10 марта 2019

Хотите конвертировать активный в пассивный голос, используя spacy в nlp. Кто-нибудь может мне помочь?

Я меняю тему на объект и объект на тему, но я не могу изменить глагол по мере необходимости.

пример:

Они делают машины в Детройте
Автомобили сделаны в Детройте

Мэри убирает эту комнату каждый день
Мэри убирается каждый день

import spacy
nlp = spacy.load('en_core_web_sm')
doc = nlp("They make cars in Detroit")
s = list(doc)
tmp,temp,sub = "","",-1
for i in doc:
    if i.pos_ == 'VERB':
        s[i.i] = i
    elif i.dep_ == 'nsubj':
        sub = i.i
        temp = i
    elif i.dep_ == 'dobj':
        tmp = i.text.capitalize()
        s[i.i] = temp
        s.insert(i.i,"by")

s[sub] = tmp
print(' '.join(str(e) for e in s))

1 Ответ

0 голосов
/ 12 марта 2019

Чтобы изменить формы глагола, вам нужен морфологический анализатор (makes в базовой форме -> make) и морфологический генератор (базовая форма make как причастие прошлого -> made, как настоящеепричастие -> making).Spacy может выполнить этап анализа для английского языка, но не этап создания, поэтому вам нужно искать дополнительные инструменты.

...