Woolv7007's picture
Update inference.py
bb4bba5 verified
import gradio as gr
import torch
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import joblib
import json
# Load model and tokenizer
model = AutoModelForSequenceClassification.from_pretrained("Woolv7007/egyptian-text-classification")
tokenizer = AutoTokenizer.from_pretrained("Woolv7007/egyptian-text-classification")
# Load label encoder and labels
label_encoder = joblib.load("label_encoder.pkl")
with open("labels.json", encoding="utf-8") as f:
labels = json.load(f)
# Prediction function
def predict(text):
inputs = tokenizer(text, return_tensors="pt", truncation=True, padding=True)
with torch.no_grad():
outputs = model(**inputs)
probs = torch.softmax(outputs.logits, dim=1).squeeze().tolist()
return {label: round(probs[i], 3) for i, label in enumerate(labels)}
gr.Interface(
fn=predict,
inputs=gr.Textbox(lines=3, placeholder="Write an Egyptian Arabic sentence..."),
outputs=gr.Label(num_top_classes=3),
title="Egyptian Arabic Text Classification"
).launch(share=True)