OlgaKo's picture
Create app.py
623ff8c
#Модель определения эмоционального окраса сообщений
# 0-нейтрально
# 1-позитивно
# 2-негативно
#It was a wonderful journey. We have visited many beautiful places and seen many sightings! I am happy!
import streamlit as st
import torch
from transformers import AutoModelForSequenceClassification
from transformers import BertTokenizerFast
tokenizer = BertTokenizerFast.from_pretrained('blanchefort/rubert-base-cased-sentiment')
model = AutoModelForSequenceClassification.from_pretrained('blanchefort/rubert-base-cased-sentiment', return_dict=True)
res_text = ['Текст нейтральный', 'Текст позитивный','Текст негативный']
#Model
@torch.no_grad()
def predict(text):
inputs = tokenizer(text, max_length=512, padding=True, truncation=True, return_tensors='pt')
outputs = model(**inputs)
predicted = torch.nn.functional.softmax(outputs.logits, dim=1)
predicted = torch.argmax(predicted, dim=1).numpy()
return predicted
# Streamlit Header
st.title('Модель определения эмоционального окраса сообщений')
st.write('Это модель определения эмоционального окраса текста. Результат: нейтрально/позитивно/негативно')
# Input text
text_in = st.text_input('Введите текст:')
# кнопка вывод результата
start = st.button('Start:')
# Click the button
if start:
text_out = int(predict(text_in))
#st.write("Результат:", text_out)
st.write("Результат:", res_text[text_out])