import streamlit as st import joblib import numpy as np from tensorflow.keras.models import load_model from tensorflow.keras.preprocessing.sequence import pad_sequences import pickle # Load the model and tokenizer try: model = load_model('sentiment_analysis_model.h5') except Exception as e: st.error(f"Error loading model: {e}") try: with open('tokenizer.pickle', 'rb') as handle: tokenizer = pickle.load(handle) except Exception as e: st.error(f"Error loading tokenizer: {e}") # Define a function to predict the sentiment of input text def predict_sentiment(text): # Tokenize and pad the input text text_sequence = tokenizer.texts_to_sequences([text]) text_sequence = pad_sequences(text_sequence, maxlen=100) # Make a prediction using the trained model predicted_rating = model.predict(text_sequence)[0] if np.argmax(predicted_rating) == 0: return 'Negative' elif np.argmax(predicted_rating) == 1: return 'Neutral' else: return 'Positive' st.title('Sentiment Analysis') comment = st.text_area('Enter your comment:') if st.button('Analyze Sentiment'): if 'model' in globals() and 'tokenizer' in globals(): sentiment = predict_sentiment(comment) st.write(f'Sentiment: {sentiment}') else: st.error("Model or tokenizer not loaded properly.")