File size: 1,449 Bytes
84e6678 2ad8bbc 68106fd cf04149 84e6678 2ad8bbc cf04149 2ad8bbc cf04149 2ad8bbc cf04149 2ad8bbc 56378dc 2ad8bbc |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 |
import streamlit as st
from transformers import AutoTokenizer, AutoModelForSequenceClassification
import torch
# تحميل النموذج والمُميز
@st.cache_resource # تخزين مؤقت لتحسين الأداء
def load_model_and_tokenizer():
tokenizer = AutoTokenizer.from_pretrained("aubmindlab/bert-base-arabertv02")
model = AutoModelForSequenceClassification.from_pretrained("aubmindlab/bert-base-arabertv02")
return tokenizer, model
tokenizer, model = load_model_and_tokenizer()
# واجهة المستخدم
st.title("AraBERT Demo - تصنيف النصوص العربية")
text_input = st.text_area("أدخل نصًا عربيًا:")
if st.button("صنف"):
if text_input:
# معالجة النص وتصنيفه
inputs = tokenizer(text_input, return_tensors="pt", truncation=True, padding=True)
with torch.no_grad(): # تعطيل حساب التدرجات لتوفير الذاكرة
outputs = model(**inputs)
logits = outputs.logits
predicted_class_id = logits.argmax().item()
# عرض النتائج (هنا تحتاج إلى تحديد التصنيفات المناسبة لمهمتك)
labels = ["تصنيف 1", "تصنيف 2", "تصنيف 3"] # استبدل بالتصنيفات الفعلية
st.write(f"التصنيف المتوقع: {labels[predicted_class_id]}")
else:
st.warning("يرجى إدخال نص.")
|