File size: 1,891 Bytes
c0ae847
03ddbfd
b87bcef
46193fd
20d6d68
 
 
 
 
 
 
 
03ddbfd
20d6d68
 
 
 
 
 
 
 
 
03ddbfd
20d6d68
5ea550e
 
 
20d6d68
 
b87bcef
20d6d68
 
03ddbfd
20d6d68
03ddbfd
20d6d68
 
b87bcef
 
20d6d68
03ddbfd
b87bcef
 
 
 
 
03ddbfd
20d6d68
 
 
 
b87bcef
20d6d68
 
 
 
b87bcef
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
import streamlit as st
import PyPDF2
from extractive_model import summarize_text_with_textrank  # Renamed function

# Set page to wide mode
st.set_page_config(layout="wide")

# Function to handle file upload and return its content
def load_pdf(file):
    pdf_reader = PyPDF2.PdfReader(file)
    pdf_text = ""
    for page_num in range(len(pdf_reader.pages)):
        pdf_text += pdf_reader.pages[page_num].extract_text() or ""
    return pdf_text

# Main app
def main():
    st.title("Terms of Service Summarizer")

    # Layout: 3 columns
    col1, col2, col3 = st.columns([1, 3, 2], gap="large")

    # Left column: Radio buttons for summarizer choice
    with col1:
        radio_options = ['Abstractive', 'Extractive']
        radio_selection = st.radio("Choose type of summarizer:", radio_options)

    # Middle column: Text input and File uploader
    with col2:
        user_input = st.text_area("Enter your text here:")
        uploaded_file = st.file_uploader("Upload a PDF", type="pdf")
        if st.button("Summarize"):
            summary = ""
            if uploaded_file is not None:
                # Extract text from PDF
                file_content = load_pdf(uploaded_file)
                st.write("PDF uploaded successfully.")
            elif user_input:
                file_content = user_input
            else:
                st.write("Please upload a PDF or enter some text to summarize.")
                return

            # Perform extractive summarization
            if radio_selection == "Extractive":
                summary = summarize_text_with_textrank(file_content)

            st.session_state.summary = summary

    # Right column: Displaying text after pressing 'Summarize'
    with col3:
        st.write("Summary:")
        if 'summary' in st.session_state:
            st.write(st.session_state.summary)

if __name__ == "__main__":
    main()