farsi readme
This commit is contained in:
parent
ff12cf8558
commit
e65b958f1b
71
readme/readme-classifier-fa.md
Normal file
71
readme/readme-classifier-fa.md
Normal 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/` ذخیره خواهد شد.
|
Loading…
Reference in New Issue
Block a user