Thilak118's picture
Update app.py
7b2b8d9 verified
import numpy as np
import pickle
import gradio as gr
from tensorflow.keras.models import load_model
from tensorflow.keras.layers import TextVectorization
# Load the saved vectorizer
with open("vectorizer.pkl", "rb") as f:
vectorizer = pickle.load(f)
# Load the saved model
model = load_model("toxicity.h5")
print("Model and vectorizer loaded successfully.")
# Prediction function
def predict_toxicity(text):
text_vectorized = vectorizer([text])
text_vectorized = np.array(text_vectorized)
text_vectorized = np.reshape(text_vectorized, (1, -1))
prediction = model.predict(text_vectorized)[0]
return {"Toxic": float(prediction[0]),
"Severe Toxic": float(prediction[1]),
"Obscene": float(prediction[2]),
"Threat": float(prediction[3]),
"Insult": float(prediction[4]),
"Identity Hate": float(prediction[5])}
# Gradio Interface
demo = gr.Interface(fn=predict_toxicity,
inputs=gr.Textbox(placeholder="Enter a comment..."),
outputs=gr.Label(),
title="Toxic Comment Classifier",
description="Enter a comment and see its toxicity levels.")
# Launch the app
demo.launch()