import streamlit as st import time from huggingface_hub import from_pretrained_fastai import gensim import nltk nltk.download('punkt') from nltk.tokenize import sent_tokenize st.caption(" © Aviv Lazar & Moran Shemesh") def textrank(corpus, ratio): if type(corpus) is str: corpus = [corpus] summaries = [gensim.summarization.summarize(txt, ratio=ratio) for txt in corpus][0] # st.write(summaries) return summaries #end textrank def start_summarize(long_text, model, size): num_of_sentences = len(sent_tokenize(long_text)) if num_of_sentences > 4: if model=="RankText": summary = textrank(long_text, size/100) elif model=="Bart": repo_id = "Aviv/Moran_Aviv_Bart" inf_learn = from_pretrained_fastai(repo_id) summary = inf_learn.blurr_generate([long_text])[0]['generated_texts'] else: summary = long_text st.success(summary) st.select_slider('What do you think about the summary?', options=['Bad', 'Good', 'Excellent'], value=('Good')) #end start_summarize st.title ("Text Summarization") model_type = st.radio('Pick a model',['RankText', 'Bart']) textrank_summary_size = 0 if model_type=="RankText": textrank_summary_size = st.slider('How long would you like the summary to be? (Percentage of full text)', 5,50) user_text = st.text_area('Enter or paste text to summarize') start = st.button('Summarize')#, on_click=start_summarize, args=(user_text, model_type, ) ) if start: start = False st.markdown("Summary") with st.spinner("We are summarizing your text..."): start_summarize(user_text, model_type, textrank_summary_size)