File size: 2,804 Bytes
4d05807 6ae9cee 4d05807 6ae9cee 4d05807 618042c 4d05807 618042c 4d05807 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 |
import time
from io import StringIO
import streamlit as st
import joblib
from transformers import pipeline
from lmqg import TransformersQG
#util func starts here
def break_paragraph_into_parts(paragraph, max_length):
sentences = paragraph.split(". ") # Assuming that the sentences end with a period and a space
temp_parts = []
part = ''
for sentence in sentences:
if len(part) + len(sentence) <= max_length:
part += sentence + ". " # Add the sentence and the period back
else:
temp_parts.append(part)
part = sentence + ". " # Start a new part with the remaining sentence
temp_parts.append(part) # Add the last part
parts = [part.strip() for part in temp_parts] # Remove any leading/trailing spaces
return parts
def util(NumQues,Input):
context = break_paragraph_into_parts(Input,512)
context = context[:NumQues]
#Question generation
generatedQuestions = []
Question_Generator=joblib.load("Qgenerator.sav")
for part in context:
question = Question_Generator.generate_q(list_context=part, list_answer="")
generatedQuestions.append(question)
#Answer Generation
load_pipeline=joblib.load('Agenerator.sav')
generatedAnswers=[]
for Q in generatedQuestions:
print(Q,'\n')
gen_answer=load_pipeline(question=Q, context=Input)
generatedAnswers.append(gen_answer['answer'])
for i in range(len(generatedAnswers)):
code = f'Ques: "{generatedQuestions[i]}"\nAns: "{generatedAnswers[i]}"'
st.code(code, language='python')
#util func ends here
st.title('Question Answer Pair Generation from Documents')
tab1, tab2 = st.tabs(["Enter Text", "Choose Document"])
flag='None'
with st.sidebar:
st.image('Pic.png')
st.title("Final Year Project")
st.divider()
code = '''Team Members CSE(20-37):
\nPrateek Niket BT20CSE211 \nSmriti Singh BT20CSE156 \nAmbuj Raj BT20CSE054 \nSrishti Pandey BT20CSE068'''
st.code(code, language='JAVA')
code = '''Mentored By: \nDr. Amol Bhopale'''
st.code(code, language='JAVA')
with tab1:
txt = st.text_area(
"Enter Text to Generate Question-Answer"
)
flag='text'
with tab2:
uploaded_file = st.file_uploader("Choose a file", type=['txt'], accept_multiple_files=False)
if uploaded_file is not None:
# To convert to a string based IO:
stringio = StringIO(uploaded_file.getvalue().decode("utf-8"))
txt = stringio.read()
flag='file'
NumQues = st.slider('No. of Questions to Generate: ', 1, 5, 1)
if st.button('Generate',type="primary"):
with st.spinner('Question Answer pair Generation in Progress....'):
util(NumQues,txt)
st.success('Question Answer pair Generated Successfully!')
|