NLP_App_project / app.py
arifa2399's picture
Update app.py
cb3a65b verified
import streamlit as st
from transformers import pipeline
from PIL import Image
import requests
# Define pipelines
pipe = pipeline("summarization", model="google/pegasus-xsum")
agepipe = pipeline("image-classification", model="dima806/facial_age_image_detection")
imgpipe = pipeline("zero-shot-image-classification", model="openai/clip-vit-base-patch32")
emopipe = pipeline("text-classification", model="michellejieli/emotion_text_classifier")
transpipe = pipeline("translation_en_to_fr")
st.title("NLP APP")
option = st.sidebar.selectbox(
"Choose a task",
("Summarization", "Age Detection", "Emotion Detection", "Image Classification", "Translation")
)
if option == "Summarization":
st.title("Text Summarization")
text = st.text_area("Enter text to summarize")
if st.button("Summarize"):
if text:
st.write("Summary:", pipe(text)[0]["summary_text"])
else:
st.write("Please enter text to summarize.")
elif option == "Age Detection":
st.title("Welcome to age detection")
uploaded_files = st.file_uploader("Choose an image file", type="jpg")
if uploaded_files is not None:
image = Image.open(uploaded_files)
st.write("Detected age is ", agepipe(image)[0]["label"])
elif option == "Image Classification":
st.title("Welcome to object detection")
uploaded_file = st.file_uploader("Choose an image file", type=["jpg", "jpeg", "png"])
text = st.text_area("Enter possible class names (comma-separated)")
if st.button("Submit"):
if uploaded_file is not None and text:
candidate_labels = [t.strip() for t in text.split(',')]
image = Image.open(uploaded_file)
st.image(image, caption="Uploaded Image", use_column_width=True)
classification_result = imgpipe(image, candidate_labels=candidate_labels)
for result in classification_result:
st.write(f"Label: {result['label']}, Score: {result['score']}")
else:
st.write("Please upload an image file and enter class names.")
elif option == "Emotion Detection":
st.title("Detect your emotion")
text = st.text_area("Enter your text")
if st.button("Submit"):
if text:
emotion = emopipe(text)[0]["label"]
if emotion == "sadness":
st.write("Emotion : ", emotion, "😒")
elif emotion == "joy":
st.write("Emotion : ", emotion, "πŸ˜ƒ")
elif emotion == "fear":
st.write("Emotion : ", emotion, "😨")
elif emotion == "anger":
st.write("Emotion : ", emotion, "😑")
elif emotion == "neutral":
st.write("Emotion : ", emotion, "😐")
elif emotion == "disgust":
st.write("Emotion : ", emotion, "🀒")
elif emotion == "surprise":
st.write("Emotion : ", emotion, "😲")
else:
st.write("Please enter text.")
elif option == "Translation":
st.title("Text Translation")
text = st.text_area("Enter text to translate from English to French")
if st.button("Translate"):
if text:
translation = transpipe(text)[0]["translation_text"]
st.write("Translation:", translation)
else:
st.write("Please enter text to translate.")
else:
st.title("None")