我需要在python中使用spacy将任何句子转换成疑问句。在
我下面的代码太长了,我需要做更多的工作来完成任何句子的疑问格式。现在在这段代码中,我通过检查过去时态和现在时态,基于be form,need form,have form,do form。在
输入:尼娜拉小提琴。在
输出:尼娜会拉小提琴吗?在
输入:芭芭拉给了我巧克力。在
输出:谁给你巧克力的?在
输入:他明天要见乔。在
输出:他明天要见谁?在
输入:她来自马德里。在
输出:她来自哪里?在
任何人都可以帮我!想为所有类型的句子组成疑问句吗?
from textacy.spacier import utils
import spacy
nlp = spacy.load("en_core_web_sm")
inp = input()
doc = nlp(inp)
string,label = [],""
for sentence in doc.sents:
root = sentence.root
for i in sentence.ents:
if len(utils.get_subjects_of_verb(root)) or len(utils.get_objects_of_verb(root)) > 0:
label = i.label_
print(root.tag_)
print(root.lemma_)
print(label)
if len(utils.get_subjects_of_verb(root)) > 0:
if root.lemma_ == 'be':
if label == "PERSON" :
ques = 'Who ' + str(root)+" "+ str(utils.get_subjects_of_verb(root)[0]) +' ?'
elif label == "QUANTITY":
ques = 'How ' + str(root)+" "+ str(utils.get_subjects_of_verb(root)[0]) +' ?'
elif label == "MONEY":
ques = 'How much ' + str(root) + " " + str(utils.get_subjects_of_verb(root)[0]) + ' ?'
elif label == "TIME":
ques = 'When ' + str(root)+" "+ str(utils.get_subjects_of_verb(root)[0]) +' ?'
elif label == "GPE":
ques = 'Where ' + str(root)+" "+ str(utils.get_subjects_of_verb(root)[0]) +' ?'
elif label == 'PRODUCT':
ques = 'What ' + str(root)+" "+ str(utils.get_subjects_of_verb(root)[0]) +' ?'
string.append(ques)
print(string)
或以其他方式
适用于以下类型的格式:
这是给约翰的-这是给谁的?在
他在看电影-他在看什么?在
萨姆星期五回来-萨姆什么时候回来?在
他们走得很快-他们走得怎么样?在
她离开是因为太晚了-她为什么离开?在
^{pr2}$如何利用PYTHON中的SPACY库实现句子的疑问转换?
目前没有回答
相关问题 更多 >
编程相关推荐