Spaces:
Runtime error
Runtime error
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() | |