3.7 KiB
3.7 KiB
اسکریپت کلاسبندی سکشنها
این پروژه شامل یک اسکریپت پایتون (classification.py
) برای کلاسبندی بخشهای متنی با استفاده از یک مدل ترنسفورمر آموزشدیده است. این اسکریپت برای پیشنهاد مرتبطترین کلاسها برای هر بخش از متن طراحی شده و برای اسناد حقوقی، دستهبندی محتوا و وظایف مشابه در پردازش زبان طبیعی (NLP) کاربرد دارد.
پیشنیازها
قبل از استفاده از این اسکریپت، کتابخانههای زیر را نصب کنید:
pip install transformers pandas
همچنین به یک مدل کلاسبندی آموزشدیده و توکنایزر آن نیاز دارید. مسیر مدل (model_checkpoint
) را در اسکریپت به مدل خودتان تغییر دهید.
نحوه عملکرد
- اسکریپت یک مدل ترنسفورمر آموزشدیده را برای کلاسبندی متن بارگذاری میکند.
- هر بخش از متن را پردازش میکند و در صورت طولانی بودن متن، آن را به پنجرههایی تقسیم میکند تا با اندازه ورودی مدل سازگار شود.
- برای هر بخش، بهترین کلاسها را پیشبینی و نتایج را ذخیره میکند.
توابع اصلی
get_class(sentences, top_k=4)
: یک جمله یا متن را کلاسبندی میکند و برترین کلاسها را برمیگرداند.mean_classes(input_classes)
: نتایج کلاسبندی چند پنجره از یک متن طولانی را تجمیع میکند.get_window_classes(text)
: تقسیم متنهای طولانی به پنجره و تجمیع نتایج کلاسبندی آنها را مدیریت میکند.single_section_classification(id, section_source)
: یک بخش را کلاسبندی کرده و بهترین و سایر کلاسهای پیشنهادی را برمیگرداند.do_classify(sections)
: همه بخشها را کلاسبندی کرده و نتایج را در یک فایل JSON ذخیره میکند.
مثال استفاده
فرض کنید دادههای بخشهای شما به صورت دیکشنری زیر است:
sections = {
"1": {"content": "متن بخش اول", "other_info": {"full_path": "..."}, "qanon_title": "..."},
"2": {"content": "متن بخش دوم", "other_info": {"full_path": "..."}, "qanon_title": "..."}
}
میتوانید همه بخشها را به شکل زیر کلاسبندی کنید:
from classification import do_classify
result = do_classify(sections)
پس از اجرا، نتایج در یک فایل JSON در مسیر ./data/classification/
ذخیره میشود.
ساختار خروجی
برای هر بخش، یک فیلد جدید به نام ai_codes
با نتایج کلاسبندی اضافه میشود:
"1": {
"content": "متن بخش اول",
"ai_codes": {
"best-class": {"label": "ClassA", "score": 0.85},
"other-classes": [
{"label": "ClassB", "score": 0.10},
{"label": "ClassC", "score": 0.05}
]
}
}
نکات
- مطمئن شوید مسیر مدل (
model_checkpoint
) صحیح است و فایلهای مدل در دسترس هستند. - این اسکریپت بسته به مدل شما از زبان فارسی و سایر زبانها پشتیبانی میکند.
- فایل خروجی JSON در مسیر
./data/classification/
ذخیره خواهد شد.