Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| from transformers import pipeline | |
| def main(): | |
| st.title("Text Summarization") | |
| # Initialize the summarizer pipeline with a more powerful model | |
| summarizer = pipeline( | |
| task="summarization", | |
| model="facebook/bart-large-cnn", # Consider using a larger model | |
| min_length=50, | |
| max_length=150, | |
| truncation=True, | |
| ) | |
| # User input | |
| input_text = st.text_area("Enter the text you want to summarize:", height=200) | |
| # Summarize button | |
| if st.button("Summarize"): | |
| if input_text: | |
| # Split the text into smaller chunks if it's too long | |
| max_input_length = 1024 # BART can handle up to 1024 tokens | |
| input_chunks = [input_text[i:i+max_input_length] for i in range(0, len(input_text), max_input_length)] | |
| # Generate the summary for each chunk and combine them | |
| summary = "" | |
| for chunk in input_chunks: | |
| output = summarizer(chunk, max_length=150, min_length=50, do_sample=False) | |
| summary += output[0]['summary_text'] + " " | |
| # Display the summary as bullet points | |
| st.subheader("Summary:") | |
| bullet_points = summary.split(". ") | |
| for point in bullet_points: | |
| if point: # Ensure that empty strings are not included | |
| st.write(f"- {point.strip()}") | |
| else: | |
| st.warning("Please enter text to summarize.") | |
| if __name__ == "__main__": | |
| main() | |