Spaces:
Sleeping
Sleeping
import tensorflow as tf | |
import gradio as gr | |
from keras import backend as K | |
from sklearn.preprocessing import LabelBinarizer | |
# Load model | |
model = tf.keras.models.load_model('news_classifier_optimized') | |
label_binarizer = LabelBinarizer() | |
label_binarizer.fit(['U.S. NEWS', 'COMEDY', 'PARENTING', 'WORLD NEWS', 'CULTURE & ARTS', 'TECH', | |
'SPORTS', 'ENTERTAINMENT', 'POLITICS', 'WEIRD NEWS', 'ENVIRONMENT', | |
'EDUCATION', 'CRIME', 'SCIENCE', 'WELLNESS', 'BUSINESS', 'STYLE & BEAUTY', | |
'FOOD & DRINK', 'MEDIA', 'QUEER VOICES', 'HOME & LIVING', 'WOMEN', | |
'BLACK VOICES', 'TRAVEL', 'MONEY', 'RELIGION', 'LATINO VOICES', 'IMPACT', | |
'WEDDINGS', 'COLLEGE', 'PARENTS', 'ARTS & CULTURE', 'STYLE', 'GREEN', 'TASTE', | |
'HEALTHY LIVING', 'THE WORLDPOST', 'GOOD NEWS', 'WORLDPOST', 'FIFTY', 'ARTS', | |
'DIVORCE']) | |
def predict_news(headline): | |
pred_prob = model.predict([headline])[0] | |
predicted_label = label_binarizer.classes_[pred_prob.argmax()] | |
return f"Predicted Category: {predicted_label}" | |
# Create Gradio Interface | |
iface = gr.Interface( | |
fn=predict_news, | |
inputs="text", | |
outputs="text", | |
title="News Classifier", | |
description="A News Classifier created using TensorFlow. Input a headline and see the predicted category!", | |
) | |
iface.launch(share=True) | |