Хотите конвертировать активный в пассивный голос, используя 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))