|
pip install transformers |
|
|
|
|
|
import streamlit as st |
|
import transformers |
|
from transformers import pipeline |
|
from PIL import Image |
|
import requests |
|
from transformers import AutoProcessor, AutoModelForZeroShotImageClassification |
|
|
|
|
|
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 a 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") |
|
|