este programa é muito simples. Ele tenta detectar as perguntas, depois as separa, procura na wikipedia e depois coleta as respostas. Tudo bem, eu sou um colegial e não tenho muito tempo.
Requisitos (bibliotecas)
Solicitações,
Wikipedia,
JSON
Uso
Chame a função:
do("Your questions")
Por exemplo:
do("What is the spacing effect? How does retrospective thinking works? Who is the father of psychoanalysis?")
Código:
import requests
import json
import wikipedia
def retrieveQuestions(dataStr):
dataStr = dataStr.lower()
questions = []
another_question = False
w_s = ["what","why","when","how","have","can","could"]
w_c = ""
pos_i = 0
pos_f = 0
for w in w_s:
#print("n ",w," n")
another_question = w in dataStr
w_c = w
while another_question:
#loli=input("data")
#print(dataStr)
matchers = []
match=""
if w_c == "what":
matchers = ["what is it ","what is the ","what would ","what are the","what are ","what does the","what does ","what"]
elif w_c == "why":
matchers = ["why is it ","why is the ","why would ","why are the","why are ","why does the","why does ","why"]
elif w_c == "when":
matchers = ["when is it ","when is the ","when would ","when are the","when are ","when does the","when does ","when"]
elif w_c == "how":
matchers = ["how is it ","how is the ","how would ","how are the","how are ","how does the","how does ","how"]
elif w_c =="have":
matchers = ["have"]
elif w_c == "can":
matchers = ["can"]
elif w_c == "could":
matchers = ["could"]
for match in matchers:
#print("match:",match)
if match in dataStr:
pos_i = dataStr.find(match)
break
#print(pos_i, "n")
pos_f = dataStr.find("?")
#print("pos_f",pos_f)
reps = 0
while pos_f < pos_i:
pos_f = dataStr.find("?", pos_f+1)
#print("pos_f-inside-while:",pos_f)
reps += 1
if reps > 100:
break
if reps > 100:
break
else:
reps = 0
#loli = input("matches")
#print("match:",match,"-data",dataStr)
questions.append(dataStr[pos_i+len(match):pos_f])
whole_question = dataStr[pos_i:(pos_f+1)]
dataStr = dataStr.replace(whole_question, "")
another_question = False
another_question = w_c in dataStr
return questions
def homework(info):
textR= {}
hw = ""
textR['clean'] = info.lower()
textR['questions'] = retrieveQuestions(textR['clean'])
for question in textR['questions']:
try:
search = wikipedia.summary(question, sentences = 10)
except:
print("error")
hw+="*****"+question+"***** n " + search + " n n "
return hw
def do(info):
r = homework(info)
f = open('results1.txt','w')
f.write(r)
f.close()