sentiment / app.py
Amiruzzaman's picture
Upload 6 files
7252317 verified
raw
history blame contribute delete
No virus
1.49 kB
import streamlit as st
import numpy as np
import pickle
from tensorflow.keras.models import load_model
from tensorflow.keras.preprocessing.sequence import pad_sequences
from tensorflow.keras.preprocessing.text import Tokenizer
# Load the model, tokenizer, and label map
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)
# Define max length
max_len = 100
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
st.title("Sentiment Analysis App")
st.write("Enter a text to predict its sentiment:")
text_input = st.text_area("Text", "Type your text here...")
if st.button('Predict'):
if text_input:
predicted_sentiment = predict_sentiment(text_input, model, tokenizer, max_len, label_map)
st.write(f"The predicted sentiment for the text is: {predicted_sentiment}")
else:
st.write("Please enter some text.")