Spaces:
Sleeping
Sleeping
import streamlit as st | |
import numpy as np | |
from tensorflow.keras.models import load_model | |
import pickle | |
from tensorflow.keras.preprocessing.sequence import pad_sequences | |
# Load the model and tokenizer | |
model = load_model('sentiment_model.h5') | |
with open('tokenizer.pkl', 'rb') as file: | |
tokenizer = pickle.load(file) | |
with open('label_map.pkl', 'rb') as file: | |
label_map = pickle.load(file) | |
def preprocess_text(text, tokenizer, max_len): | |
sequence = tokenizer.texts_to_sequences([text]) | |
padded_sequence = pad_sequences(sequence, maxlen=max_len) | |
return padded_sequence | |
def predict_sentiment(text, model, tokenizer, max_len, label_map): | |
processed_text = preprocess_text(text, tokenizer, max_len) | |
prediction = model.predict(processed_text) | |
predicted_class = np.argmax(prediction, axis=1)[0] | |
predicted_label = label_map[predicted_class] | |
return predicted_label | |
# Streamlit app | |
def main(): | |
st.title("Sentiment Analysis") | |
st.write("Enter a text to predict its sentiment.") | |
# Input text from user | |
input_text = st.text_area("Input Text", "Type your text here...") | |
if st.button("Predict Sentiment"): | |
if input_text: | |
max_len = 100 # Set this to the max length used during training | |
sentiment = predict_sentiment(input_text, model, tokenizer, max_len, label_map) | |
st.write(f"The predicted sentiment for the text is: **{sentiment}**") | |
else: | |
st.write("Please enter some text to analyze.") | |
st.header("Sample Texts") | |
st.write("<span style='color:green; font-weight:bold'>Positive:</span> Going to finish up Borderlands 2 today.", unsafe_allow_html=True) | |
st.write("<span style='color:yellow; font-weight:bold'>Neutral:</span> Check out this epic streamer", unsafe_allow_html=True) | |
st.write("<span style='color:red; font-weight:bold'>Negative:</span> The biggest disappointment of my life came a year ago.", unsafe_allow_html=True) | |
st.write("<span style='color:cyan; font-weight:bold'>Irrelevant:</span> Stupid 19-year-olds who write bad poetry need to get away from the computer and talk to real people who don't believe in vampires.", unsafe_allow_html=True) | |
if __name__ == "__main__": | |
main() | |