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("Отзыв отрицательный")