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 + "" + ques + "
"
# output = output + "
"
output = output + "" + "Ans: " +answer.capitalize()+ "
"
if len(distractors)>0:
for distractor in distractors[:4]:
output = output + "" + distractor+ "
"
output = output + "
"
summary ="Summary: "+ summary_text
for answer in np:
summary = summary.replace(answer,""+answer+" ")
summary = summary.replace(answer.capitalize(),""+answer.capitalize()+"")
output = output + "
"+summary+"
" return output iface = gr.Interface( fn=generate_question, inputs=[context,radiobutton], outputs=output, title="Automatic Question Generation using NLP") iface.launch(inline = False)