想要使用nlp中的spacy将主动语音转换为被动语音。谁能帮我吗?
我将主语从宾语和宾语变为主语,但是我无法根据需要更改动词。
示例:
他们在底特律制造汽车
汽车是在底特律制造的
玛丽每天打扫这个房间
玛丽每天都要打扫房间
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))
答案 0 :(得分:0)
为了修改动词形式,您需要一个形态分析器(基本形式的makes
-> make
)和一个形态生成器(基本形式make
作为过去分词-> made
,作为当前分词-> making
)。 Spacy可以使用英语进行分析步骤,但是不能进行生成步骤,因此您需要寻找其他工具。