Spam_Detector / app.py
resolverkatla's picture
Update app.py
09617b2 verified
import gradio as gr
from transformers import pipeline
import pandas as pd
# Load dataset from Hugging Face Hub
dataset_path = "hf://datasets/ucirvine/sms_spam/plain_text/train-00000-of-00001.parquet"
df = pd.read_parquet(dataset_path)
# Load a spam classification model
classifier = pipeline("text-classification", model="mrm8488/bert-tiny-finetuned-sms-spam-detection")
def spam_detector(text):
"""Detect if a message is spam or not, with confidence filtering."""
result = classifier(text)
# Debugging: Print the raw output from the classifier
print("Model Output:", result)
# Extract label and confidence score
label = result[0]['label'].lower().strip()
confidence = result[0]['score'] # Confidence score (0 to 1)
# Confidence threshold (adjustable, 0.5 is standard)
threshold = 0.7
# Return based on confidence
if label == "spam" and confidence >= threshold:
return f"Spam (Confidence: {confidence:.2f})"
else:
return f"Not Spam (Confidence: {confidence:.2f})"
# Create Gradio UI with enhanced styling
app = gr.Interface(
fn=spam_detector,
inputs=gr.Textbox(label="Enter a message", placeholder="Type your message here..."),
outputs=gr.Textbox(label="Prediction"),
title="AI-Powered Spam Detector",
description="Enter a message to check if it's spam or not, using a fine-tuned BERT model.",
)
# Run the app
if __name__ == "__main__":
print("Loaded dataset preview:")
print(df.head())
app.launch