From e65b958f1b6fbcc298c9adb49b8ddc93bacb79e2 Mon Sep 17 00:00:00 2001 From: ajokar Date: Sat, 16 Aug 2025 14:35:25 +0330 Subject: [PATCH] farsi readme --- readme/readme-classifier-fa.md | 71 ++++++++++++++++++++++++++++++++++ 1 file changed, 71 insertions(+) create mode 100644 readme/readme-classifier-fa.md diff --git a/readme/readme-classifier-fa.md b/readme/readme-classifier-fa.md new file mode 100644 index 0000000..aacfa91 --- /dev/null +++ b/readme/readme-classifier-fa.md @@ -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/` ذخیره خواهد شد.