使用Spacy

时间:2019-03-10 08:57:08

标签: 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:
    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 :(得分:0)

为了修改动词形式,您需要一个形态分析器(基本形式的makes-> make)和一个形态生成器(基本形式make作为过去分词-> made,作为当前分词-> making)。 Spacy可以使用英语进行分析步骤,但是不能进行生成步骤,因此您需要寻找其他工具。