farsi readme

This commit is contained in:
ajokar 2025-08-16 14:35:25 +03:30
parent ff12cf8558
commit e65b958f1b

View File

@ -0,0 +1,71 @@
# اسکریپت کلاسبندی سکشن‌ها
این پروژه شامل یک اسکریپت پایتون (`classification.py`) برای کلاسبندی بخش‌های متنی با استفاده از یک مدل ترنسفورمر آموزش‌دیده است. این اسکریپت برای پیشنهاد مرتبط‌ترین کلاس‌ها برای هر بخش از متن طراحی شده و برای اسناد حقوقی، دسته‌بندی محتوا و وظایف مشابه در پردازش زبان طبیعی (NLP) کاربرد دارد.
## پیش‌نیازها
قبل از استفاده از این اسکریپت، کتابخانه‌های زیر را نصب کنید:
```bash
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 ذخیره می‌کند.
## مثال استفاده
فرض کنید داده‌های بخش‌های شما به صورت دیکشنری زیر است:
```python
sections = {
"1": {"content": "متن بخش اول", "other_info": {"full_path": "..."}, "qanon_title": "..."},
"2": {"content": "متن بخش دوم", "other_info": {"full_path": "..."}, "qanon_title": "..."}
}
```
می‌توانید همه بخش‌ها را به شکل زیر کلاسبندی کنید:
```python
from classification import do_classify
result = do_classify(sections)
```
پس از اجرا، نتایج در یک فایل JSON در مسیر `./data/classification/` ذخیره می‌شود.
## ساختار خروجی
برای هر بخش، یک فیلد جدید به نام `ai_codes` با نتایج کلاسبندی اضافه می‌شود:
```json
"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/` ذخیره خواهد شد.