Raghuan's picture
Update app.py
fddaa5c verified
import streamlit as st
from transformers import pipeline
# Initialize pipelines for each NLP task
ner = pipeline("ner")
qa = pipeline("question-answering")
text_gen = pipeline("text-generation")
summarization = pipeline("summarization")
def main():
"""
This function builds the Streamlit app with user input for NLP tasks.
"""
# Title and description for the app
st.title("Multi-Task NLP App")
st.write("Perform various NLP tasks on your text input.")
# Text input field
user_input = st.text_input("Enter Text Here:")
# Select task from dropdown menu
selected_task = st.selectbox("Choose NLP Task:", ["NER", "QA", "Text Generation", "Text Summarization"])
# Perform NLP task based on selection
if user_input and selected_task:
if selected_task == "NER":
analysis = ner(user_input)
st.write("**Named Entities:**")
for entity in analysis:
st.write(f"- {entity['word']} ({entity['entity_group']})")
elif selected_task == "QA":
# Provide context (optional) for QA
context = st.text_input("Enter Context (Optional):", "")
if context:
analysis = qa(question="Your question", context=context, padding="max_length")
else:
analysis = qa(question="Your question", context=user_input, padding="max_length")
st.write("**Answer:**", analysis['answer'])
elif selected_task == "Text Generation":
# Choose generation task from another dropdown
generation_task = st.selectbox("Choose Generation Task:", ["Text summarization (short)", "Poem", "Code"])
if generation_task == "Text summarization (short)":
analysis = summarization(user_input, max_length=50, truncation=True)
else:
# Experiment with different prompts and max_length for creative text generation
prompt = st.text_input("Enter Prompt (Optional):", "")
analysis = text_gen(prompt if prompt else user_input, max_length=50, truncation=True)
st.write("**Generated Text:**", analysis[0]['generated_text'])
else:
analysis = summarization(user_input, max_length=100, truncation=True)
st.write("**Summary:**", analysis[0]['summary_text'])
if __name__ == "__main__":
main()