Nlp 使用空格将主动句转换为被动句
希望在nlp中使用spacy将主动语态转换为被动语态。有人能帮我吗 我把主语换成宾语,把宾语换成主语,但我不能根据需要换动词 例如: 他们在底特律生产汽车Nlp 使用空格将主动句转换为被动句,nlp,spacy,Nlp,Spacy,希望在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:
汽车是底特律制造的 玛丽每天打扫这个房间
玛丽每天都打扫房间
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))
为了修改动词形式,您需要一个词形分析器(
make
基本形式->make
)和一个词形生成器(基本形式make
作为过去分词->make
,作为现在分词->making
)。Spacy可以完成英语的分析步骤,但不能完成生成步骤,因此您需要寻找其他工具