🧩 مدل 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
Model tree for IRI2070/legal-entity-name-validation-rules-classifier
Base model
PartAI/TookaBERT-LargeDataset used to train IRI2070/legal-entity-name-validation-rules-classifier
Collection including IRI2070/legal-entity-name-validation-rules-classifier
Evaluation results
- F1 Macro on legal entity name validation devself-reported0.785
- F1 Micro on legal entity name validation devself-reported0.784
- F1 Weighted on legal entity name validation devself-reported0.785
- F1 Macro on legal entity name validation testself-reported0.790
- F1 Micro on legal entity name validation testself-reported0.789
- F1 Weighted on legal entity name validation testself-reported0.790