import streamlit as st import torch # from transformers import AutoTokenizer, AutoModelForSequenceClassification, AutoConfig from transformers import pipeline model_name = "peace4ever/roberta-large-finetuned-mongolian_v3" pipeline = pipeline(task="sentiment-analysis", model=model_name) # Load pre-trained pipeline st.title("Эерэг? Сөрөг эсвэл аль нь ч биш?") text = st.text_area("Өгүүлбэр оруулна уу?") if text is not None: predictions = pipeline(text) col1, col2 = st.columns(2) col1.header("Sentiment") col2.header("Probability") for label, probability in zip(predictions[0]["label"], predictions[0]["score"]): if label == "entailment": sentiment = "Negative" elif label == "contradiction": sentiment = "Neutral" else label == "neutral": sentiment = "Positive" col1.write(sentiment) col2.write(f"{probability:.2f}") # label = predictions[0]["label"] # probability = predictions[0]["score"] # col1.write(label) # col2.write(f"{probability:.2f}") # tokenizer = AutoTokenizer.from_pretrained(model_name) # model = AutoModelForSequenceClassification.from_pretrained(model_name) # # encoded_input = tokenizer(text, return_tensors="pt") # output = model(**encoded_input) # label_map = {"positive": 0, "negative": 1, "neutral": 2} # # Update the model configuration with custom labels # config = AutoConfig.from_pretrained(model_name) # config.label2id = {"positive": 0, "negative": 1, "neutral": 2} # config.id2label = {0: "positive", 1: "negative", 2: "neutral"} # config.save_pretrained(model_name) # predicted_label_id = torch.argmax(output.logits, dim=1).item() # id2label = model.config.id2label # predicted_label = id2label[predicted_label_id] # print("Predicted Class:", predicted_label) # st.json(predicted_label)