Spaces:
Runtime error
Runtime error
File size: 4,803 Bytes
61f188a 752552c 61f188a 752552c 8279c98 61f188a 0f1bd20 61f188a cffd6ee 61f188a 752552c 61f188a 64e025d 61f188a 752552c 61f188a d4ce5ca 61f188a d4ce5ca 61f188a 2cf8964 6bc1c56 d4ce5ca 2cf8964 522dca9 61f188a 752552c 61f188a 752552c 61f188a |
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 103 104 105 106 107 |
# Core Pkgs
import streamlit as st
from function import *
# EDA Pkgs
import pandas as pd
import matplotlib.pyplot as plt
from wordcloud import WordCloud
# Utils
from datetime import datetime
warnings.filterwarnings("ignore")
# page info setup
menu_items = {
'Get help':'https://https://www.linkedin.com/in/ayomide-ishola-924014162/' ,
'Report a bug': 'https://www.linkedin.com/in/ayomide-ishola-924014162/',
'About': '''
## My Custom App
Some markdown to show in the About dialog.
'''
}
#page configuration
st.set_page_config(page_title="Article Summariser", page_icon="./favicon/favicon.ico",menu_items=menu_items)
st.set_option('deprecation.showPyplotGlobalUse', False)
def main():
# This is used to hide the made with streamlit watermark
hide_streamlit_style = """
<style>
footer {visibility: hidden;}
</style>
"""
st.markdown(hide_streamlit_style, unsafe_allow_html=True)
# Article Summariser heading
st.markdown("<h1 style = 'color:green; align:center; font-size: 40px;'> Article Summariser</h1>", unsafe_allow_html=True)
# control for Model Settings
st.sidebar.markdown("<h4 style = 'color:green; align:center; font-size: 20px;'> Model Settings</h1>", unsafe_allow_html=True)
max_length= st.sidebar.slider("Maximum length of the generated text",min_value=100,max_value=500)
min_length= st.sidebar.slider("Minimum length of the generated text",min_value=30)
model_type = st.sidebar.selectbox("Model type", options=["Bart","T5", "SSR",])
# This function is used to upload a .txt, .pdf, .docx file for summarization
upload_doc = st.file_uploader("Upload a .txt, .pdf, .docx file for summarisation")
st.markdown("<h3 style='text-align: center; color: green;'>or</h3>",unsafe_allow_html=True)
#This function is used to Type your Message (text area)
plain_text = st.text_area("Type your text below",height=200)
# this is used to control the logic of the code
if upload_doc:
clean_text = preprocess_plain_text(extract_text_from_file(upload_doc))
else:
clean_text = preprocess_plain_text(plain_text)
summarize = st.button("Summarise")
# called on toggle button [summarize]
if summarize:
if model_type == "Bart":
text_to_summarize = clean_text
with st.spinner(
text="Loading Bart Model and Extracting summary. This might take a few seconds depending on the length of your text..."):
summarizer_model = bart()
global summarized_text = summarizer_model(text_to_summarize, max_length=max_length ,min_length=min_length)
global summarized_text = ' '.join([summ['summary_text'] for summ in summarized_text])
elif model_type == "T5":
text_to_summarize = clean_text
with st.spinner(
text="Loading T5 Model and Extracting summary. This might take a few seconds depending on the length of your text..."):
summarizer_model = t5()
global summarized_text = summarizer_model(text_to_summarize, max_length=max_length, min_length=min_length)
global summarized_text = ' '.join([summ['summary_text'] for summ in summarized_text])
elif model_type == "ssr":
text_to_summarize = clean_text
with st.spinner(
text="Loading SSR Model and Extracting summary. This might take a few seconds depending on the length of your text..."):
summarizer_model = ssr()
global summarized_text = summarizer_model(text_to_summarize, max_length=max_length, min_length=min_length)
global summarized_text = ' '.join([summ['summary_text'] for summ in summarized_text])
res_col1 ,res_col2 = st.columns(2)
with res_col1:
st.subheader("Generated Text Visualisation")
# Create and generate a word cloud image:
wordcloud = WordCloud().generate(summarized_text)
# Display the generated image:
plt.imshow(wordcloud, interpolation='bilinear')
plt.axis("off")
plt.show()
st.pyplot()
summary_downloader(summarized_text)
with res_col2:
st.subheader("Summarised Text Output")
st.success("Summarised Text")
st.write(summarized_text)
if __name__ == '__main__':
main() |