import gradio as gr import tensorflow as tf import numpy as np # Define a function to preprocess the text input def preprocess(text): tokenizer = tf.keras.preprocessing.text.Tokenizer() tokenizer.fit_on_texts([text]) text = tokenizer.texts_to_sequences([text]) text = tf.keras.preprocessing.sequence.pad_sequences(text, maxlen=500, padding='post', truncating='post') return text # Load the pre-trained model model = tf.keras.models.load_model('sentimentality.h5') # Define a function to make a prediction on the input text def predict_sentiment(text): # Preprocess the text text = preprocess(text) # Make a prediction using the loaded model proba = model.predict(text)[0] # Normalize the probabilities proba /= proba.sum() # Get the predicted sentiment label sentiment_label = ['Positive', 'Negative', 'Neutral'][np.argmax(proba)] # Determine the color based on the sentiment label if sentiment_label == 'Positive': color = '#2a9d8f' elif sentiment_label == 'Negative': color = '#e76f51' else: color = '#264653' # Return the sentiment label and color return {'label': sentiment_label, 'color': color} # Define the Gradio interface iface = gr.Interface( fn=predict_sentiment, inputs=gr.inputs.Textbox(label='Enter text here'), outputs=gr.outputs.Label(label='Sentiment', default='Neutral', font_size=30, font_family='Arial', background_color='#f8f8f8', color='black', value=None), title='SENTIMENT ANALYSIS' ) # Launch the interface iface.launch()