AutoQuestGen / app.py
bhagyarana's picture
Update app.py
32c6f3d
Raw
History Blame Contribute Delete
1.73 kB
import gradio as gr
context = gr.inputs.Textbox(lines=10, placeholder="Enter Formatted Paragraph/Content here...")
output = gr.outputs.HTML(label="Question and Answers")
radiobutton = gr.inputs.Radio(["Wordnet", "Sense2Vec"])
def generate_question(context,radiobutton):
summary_text = summarizer(context,summary_model,summary_tokenizer)
for wrp in wrap(summary_text, 250):
print (wrp)
# np = getnounphrases(summary_text,sentence_transformer_model,3)
np = get_keywords(context,summary_text)
print ("\n\nNoun phrases",np)
output=""
for answer in np:
ques = get_question(summary_text,answer,question_model,question_tokenizer)
if radiobutton=="Wordnet":
distractors = get_distractors_wordnet(answer)
else:
distractors = get_distractors(answer.capitalize(),ques,s2v,sentence_transformer_model,40,0.2)
# output= output + ques + "\n" + "Ans: "+answer.capitalize() + "\n\n"
output = output + "<b style='color:blue;'>" + ques + "</b> <br/>"
# output = output + "<br>"
output = output + "<b style='color:green;'>" + "Ans: " +answer.capitalize()+ "</b> <br/>"
if len(distractors)>0:
for distractor in distractors[:4]:
output = output + "<b style='color:brown;'>" + distractor+ "</b> <br/>"
output = output + "<br>"
summary ="Summary: "+ summary_text
for answer in np:
summary = summary.replace(answer,"<b>"+answer+"</b> ")
summary = summary.replace(answer.capitalize(),"<b>"+answer.capitalize()+"</b>")
output = output + "<p>"+summary+"</p>"
return output
iface = gr.Interface(
fn=generate_question,
inputs=[context,radiobutton],
outputs=output,
title="Automatic Question Generation using NLP")
iface.launch(inline = False)