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