🧩 مدل CrossEncoder مبتنی بر مدل پایه PartAI/TookaBERT-Large

این مدل یک Cross Encoder است که از پایه‌ی PartAI/TookaBERT-Large گرفته شده و بر روی دیتاست legal-entity-name-validation با استفاده از کتابخانه‌ی Sentence Transformers آموزش داده شده است. مدل برای طبقه‌بندی زوج‌های متنی طراحی شده و امتیاز شباهت یا ارتباط میان دو متن را محاسبه می‌کند. CrossEncoder ها مدلی از خانواده‌ی Sentence Transformers هستند که برای مقایسه و طبقه‌بندی زوج‌های متنی به کار می‌روند. در این روش، برخلاف مدل‌های دو‌مسیره (Bi-Encoder) که هر متن را جداگانه به بردار تبدیل می‌کنند، هر دو متن به صورت همزمان وارد یک شبکه‌ی زبانی می‌شوند و خروجی مدل مستقیماً یک امتیاز یا برچسب برای آن زوج تولید می‌کند. این کار باعث می‌شود مدل بتواند وابستگی‌ها و ظرافت‌های معنایی میان دو متن را دقیق‌تر درک کند و برای وظایفی مثل تشخیص شباهت، اعتبارسنجی نام‌ها، یا طبقه‌بندی روابط متنی بسیار کارآمد باشد. به بیان ساده، CrossEncoder مثل یک داور است که هر بار دو متن را کنار هم می‌گذارد و با دقت بالا تصمیم می‌گیرد این دو چقدر به هم مرتبط یا متفاوت هستند.


📌 جزئیات مدل

  • نوع مدل: Cross Encoder
  • مدل پایه: PartAI/TookaBERT-Large
  • حداکثر طول توالی: 512 توکن
  • تعداد برچسب‌ها: 13 کلاس
  • زبان: فارسی
  • دیتاست آموزشی: legal-entity-name-validation

🚀 نحوه نصب و استفاده

pip install -U sentence-transformers
from sentence_transformers import CrossEncoder

model = CrossEncoder("IRI2070/legal-entity-name-validation-rules-classifier")

pairs = [
    ('خدماتی بهار گستر گله', 'خدماتی بهار گستر کشاورزی'),
    ('پوینده دانش نوید', 'پوینده دانش نویدان'),
    ('بازرگانی ماه نسیم پایدار گیل منطقه آزاد انزلی', 'نسیم بازرگانی خزر'),
    ('صنایع پیچ لوتوس', 'شرکت پیچ لوتوس'),
]

scores = model.predict(pairs)
label_mapping = ['abbreviation_shortening', 'activity_change', 'adjective_removal', 'domain_similarity', 'generic_word', 'minor_spelling_variations', 'morphological_variation', 'no_rule', 'prefix_suffix', 'singular_plural', 'synonym', 'word_order', 'word_removal']
lebels = [label_mapping[score_max] for score_max in scores.argmax(axis=1)]
print(lebels)
#['activity_change', 'singular_plural', 'no_rule', 'synonym']

📊 ارزیابی مدل

مدل بر روی مجموعه‌های dev و test ارزیابی شده است.

معیار dev test
f1_macro 0.785 0.790
f1_micro 0.784 0.789
f1_weighted 0.785 0.790

امتیازهای F1 معیارهایی هستند برای سنجش کیفیت یک مدل در طبقه‌بندی داده‌ها، به‌ویژه زمانی که داده‌ها چندکلاسه یا نامتوازن باشند.

  • در F1-macro ابتدا برای هر کلاس جداگانه امتیاز F1 محاسبه می‌شود و سپس میانگین ساده‌ی همه‌ی کلاس‌ها گرفته می‌شود؛ بنابراین همه‌ی کلاس‌ها وزن برابر دارند، حتی اگر تعداد نمونه‌هایشان کم باشد.
  • در F1-micro همه‌ی پیش‌بینی‌ها در سطح کلی جمع می‌شوند و سپس بر اساس مجموع درست‌ها و غلط‌ها امتیاز F1 محاسبه می‌شود؛ این معیار بیشتر تحت تأثیر کلاس‌های پرنمونه است.
  • در F1-weighted مشابه F1-macro است، اما میانگین با توجه به تعداد نمونه‌های هر کلاس وزن‌دهی می‌شود؛ یعنی کلاس‌های بزرگ‌تر سهم بیشتری در نتیجه دارند.
    به زبان ساده، macro عدالت را میان همه‌ی کلاس‌ها رعایت می‌کند، micro بیشتر به عملکرد کلی روی داده‌های پرشمار توجه دارد، و weighted تعادلی میان این دو برقرار می‌کند تا هم کلاس‌های بزرگ و هم کوچک در نظر گرفته شوند.

📂 دیتاست آموزشی

  • حجم: 87,673 نمونه آموزشی
  • ویژگی‌ها:
    • ستون‌ها: original_word، example، label
    • میانگین طول رشته‌ها: حدود 22 کاراکتر
    • توزیع برچسب‌ها: متوازن میان 13 کلاس

🙌 تشکر

این پروژه بخشی از فعالیت‌های آموزشی و پژوهشی در آکادمی همراه اول است و با هدف ارتقای دانش در حوزه‌ی NLP و یادگیری عمیق منتشر شده است.

Downloads last month
60
Safetensors
Model size
0.4B params
Tensor type
F32
·
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Model tree for IRI2070/legal-entity-name-validation-rules-classifier

Finetuned
(6)
this model

Dataset used to train IRI2070/legal-entity-name-validation-rules-classifier

Collection including IRI2070/legal-entity-name-validation-rules-classifier

Evaluation results