import gradio as gr import pickle def load_model(selected_model): with open(selected_model, 'rb') as file: loaded_model = pickle.load(file) return loaded_model def predict(model, text): encoder = { 0:'assets/negative.jpeg', 1:'assets/neutral.jpeg', 2:'assets/positive.jpeg' } selected_model = None with open('vectorizer.pkl', 'rb') as file: vectorizer = pickle.load(file) if 'Random Forest' == model: selected_model = "models/rf_twitter.pkl" elif 'Logistic Regression' == model: selected_model = "models/lg_twitter.pkl" elif 'Naive Bayes' == model: selected_model = "models/nb_twitter.pkl" elif 'Decision Tree' == model: selected_model = "models/dt_twitter.pkl" elif 'KNN' == model: selected_model = "models/knn_twitter.pkl" else: selected_model = "models/lg_twitter.pkl" loaded_model = load_model(selected_model) text_vector = vectorizer.transform([text]) prediction = loaded_model.predict(text_vector) return encoder[prediction[0]] models = gr.Radio(['Random Forest', 'Logistic Regression','Naive Bayes','Decision Tree','KNN'], label="Choose model") demo = gr.Interface(fn=predict, inputs=[models,"text"], outputs="image", title="Sentiment Analysis") demo.launch()