|
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() |
|
|