Spaces:
Sleeping
Sleeping
| import streamlit as st | |
| import torch | |
| from transformers import AutoTokenizer, AutoModelForSequenceClassification | |
| import matplotlib.pyplot as plt | |
| tokenizer = AutoTokenizer.from_pretrained("nlptown/bert-base-multilingual-uncased-sentiment") | |
| model = AutoModelForSequenceClassification.from_pretrained("nlptown/bert-base-multilingual-uncased-sentiment") | |
| st.title("Sentiment Analysis App") | |
| text = st.text_input("Enter text to analyze:") | |
| if st.button("Analyze"): | |
| encoding = tokenizer.encode_plus(text, return_tensors="pt", padding=True, truncation=True) | |
| input_ids = encoding["input_ids"] | |
| attention_mask = encoding["attention_mask"] | |
| with torch.no_grad(): | |
| output = model(input_ids, attention_mask) | |
| prediction = int(torch.argmax(output.logits)) | |
| if prediction == 0: | |
| st.write("Negative") | |
| elif prediction == 1: | |
| st.write("Neutral") | |
| else: | |
| st.write("Positive") | |
| values = [output.logits[0][0].item(), output.logits[0][1].item(), output.logits[0][2].item()] | |
| labels = ["Negative", "Neutral", "Positive"] | |
| fig, ax = plt.subplots() | |
| ax.bar(labels, values) | |
| st.pyplot(fig) | |