nlp_proj / pages /review_predictor.py
Maslov-Artem
add text generator
eb91edf
raw
history blame
1.68 kB
import pickle
import streamlit as st
from preprocessing import data_preprocessing
# Load preprocessing steps
with open("vectorizer.pkl", "rb") as f:
logreg_vectorizer = pickle.load(f)
# Load trained model
with open("logreg_model.pkl", "rb") as f:
logreg_predictor = pickle.load(f)
# Define function for preprocessing input text
@st.cache
def preprocess_text(text):
# Apply preprocessing steps (cleaning, tokenization, vectorization)
clean_text = data_preprocessing(
text
) # Assuming data_preprocessing is your preprocessing function
print("Clean text ", clean_text)
vectorized_text = vectorizer.transform([" ".join(clean_text)])
return vectorized_text
# Define function for making predictions
@st.cache
def predict_sentiment(text):
# Preprocess input text
processed_text = preprocess_text(text)
# Make prediction
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")
# Streamlit app code
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("Отзыв отрицательный")