import streamlit as st from transformers import pipeline # Title of the app st.title("Multi-Task NLP App with Transformers") st.write("Explore advanced NLP tasks: Sentiment Analysis, Text Summarization, and Question Answering.") # Load pre-trained models sentiment_analyzer = pipeline("sentiment-analysis") summarizer = pipeline("summarization", model="facebook/bart-large-cnn") qa_pipeline = pipeline("question-answering") # Sidebar for task selection task = st.sidebar.selectbox("Choose a Task", ["Sentiment Analysis", "Text Summarization", "Question Answering"]) if task == "Sentiment Analysis": st.header("Sentiment Analysis") user_input = st.text_area("Enter text for sentiment analysis:") if st.button("Analyze Sentiment"): if user_input: result = sentiment_analyzer(user_input) st.write("Sentiment Analysis Result:") st.write(result) else: st.write("Please enter some text to analyze.") elif task == "Text Summarization": st.header("Text Summarization") # User input user_input = st.text_area("Enter text to summarize:") # Summarization parameters max_length = st.slider("Max Length of Summary", 50, 150, 100) min_length = st.slider("Min Length of Summary", 10, 50, 25) if st.button("Summarize"): if user_input: try: # Generate summary result = summarizer(user_input, max_length=max_length, min_length=min_length, do_sample=False) st.write("Summary:") st.write(result[0]['summary_text']) except Exception as e: st.error(f"An error occurred: {e}") else: st.write("Please enter some text to summarize.") elif task == "Question Answering": st.header("Question Answering") context = st.text_area("Enter context (the text to ask questions about):") question = st.text_input("Enter your question:") if st.button("Get Answer"): if context and question: result = qa_pipeline(question=question, context=context) st.write("Answer:") st.write(result['answer']) else: st.write("Please provide both context and question.")