|
import pickle |
|
|
|
import streamlit as st |
|
|
|
from preprocessing import data_preprocessing |
|
|
|
|
|
with open("vectorizer.pkl", "rb") as f: |
|
logreg_vectorizer = pickle.load(f) |
|
|
|
|
|
with open("logreg_model.pkl", "rb") as f: |
|
logreg_predictor = pickle.load(f) |
|
|
|
|
|
|
|
@st.cache |
|
def preprocess_text(text): |
|
|
|
clean_text = data_preprocessing( |
|
text |
|
) |
|
print("Clean text ", clean_text) |
|
vectorized_text = vectorizer.transform([" ".join(clean_text)]) |
|
return vectorized_text |
|
|
|
|
|
|
|
@st.cache |
|
def predict_sentiment(text): |
|
|
|
processed_text = preprocess_text(text) |
|
|
|
prediction = logreg_predictor.predict(processed_text) |
|
return prediction |
|
|
|
|
|
st.sidebar.title("Model Selection") |
|
model_type = st.sidebar.radio("Select Model Type", ["Classic ML", "LSTM", "BERT"]) |
|
st.title("Review Prediction") |
|
|
|
|
|
st.title("Sentiment Analysis with Logistic Regression") |
|
text_input = st.text_input("Enter your review:") |
|
if st.button("Predict"): |
|
if model_type == "Classic ML": |
|
prediction = predict_sentiment(text_input) |
|
elif model_type == "LSTM": |
|
prediction = 1 |
|
elif model_type == "BERT": |
|
prediction = 1 |
|
|
|
if prediction == 1: |
|
st.write("prediction") |
|
st.write("Отзыв положительный") |
|
elif prediction == 0: |
|
st.write("prediction") |
|
st.write("Отзыв отрицательный") |
|
|