import streamlit as st from transformers import pipeline # Load models # Distilled Sentiment Classifier # Link: https://huggingface.co/lxyuan/distilbert-base-multilingual-cased-sentiments-student distilled_sentiment_classifier = pipeline( model="lxyuan/distilbert-base-multilingual-cased-sentiments-student", return_all_scores=True ) # Emotion Classifier # Link: https://huggingface.co/SamLowe/roberta-base-go_emotions emotion_text_classifier = pipeline("text-classification", model="SamLowe/roberta-base-go_emotions") # Named Entity Recognition # Link: https://huggingface.co/mdarhri00/named-entity-recognition named_entity_classifier = pipeline("token-classification", model="mdarhri00/named-entity-recognition") # Toxicity Classifier # Link: https://huggingface.co/s-nlp/roberta_toxicity_classifier toxicity_classifier = pipeline("text-classification", model="s-nlp/roberta_toxicity_classifier") # Streamlit app def main(): st.title("HuggingFace Model Demo App") # User input for text user_text = st.text_area("Enter some text:") if user_text: # Available Models # Sentiment Analysis sentiment_checkbox = st.checkbox("Sentiment Analysis") # Emotion Analysis emotion_checkbox = st.checkbox("Emotion Analysis") # Named Entity Recognition ner_checkbox = st.checkbox("Named Entity Recognition") # Toxicity Analysis toxicity_checkbox = st.checkbox("Toxicity Analysis") # Run custom and display outputs st.header("Function Outputs:") if sentiment_checkbox: st.subheader("Sentiment Analysis:") # Parse JSON data data = distilled_sentiment_classifier(user_text) # Extract and display label and score values for labels_and_scores in data: for entry in labels_and_scores: label = entry["label"] score = entry["score"] st.write(f"Label: {label}, Score: {score}") if emotion_checkbox: st.subheader("Emotion Analysis:") # Parse JSON data data = emotion_text_classifier(user_text) # Extract and display label and score values for labels_and_scores in data: for entry in labels_and_scores: label = entry["label"] score = entry["score"] st.write(f"Label: {label}, Score: {score}") if ner_checkbox: st.subheader("Named Entity Recognition:") # Parse JSON data data = named_entity_classifier(user_text) # Extract and display data for entry in data: entity_group = entry["entity_group"] score = entry["score"] word = entry["word"] start = entry["start"] end = entry["end"] st.write(f"Word: {word}, Entity Group: {entity_group}, Score: {score}, Start: {start}, End: {end}") if toxicity_checkbox: st.subheader("Toxicity Analysis:") # Parse JSON data data = toxicity_classifier(user_text) # Extract and display label and score values for labels_and_scores in data: for entry in labels_and_scores: label = entry["label"] score = entry["score"] st.write(f"Label: {label}, Score: {score}") if __name__ == "__main__": main()