data_processes/readme/readme-ner-recognizer-fa.md
2025-08-16 15:15:24 +03:30

66 lines
3.0 KiB
Markdown

# اسکریپت تشخیص موجودیت‌های نامدار (NER)
این پروژه شامل یک اسکریپت پایتون (`p2_ner_recognizer.py`) برای استخراج موجودیت‌های نامدار از بخش‌های متنی با استفاده از یک مدل آموزش‌دیده NER است. این اسکریپت برای شناسایی موجودیت‌هایی مانند نام افراد، سازمان‌ها، مکان‌ها و ... کاربرد دارد و برای استخراج اطلاعات و تحلیل متون مفید است.
## پیش‌نیازها
قبل از استفاده از این اسکریپت، کتابخانه زیر را نصب کنید:
```bash
pip install flair
```
همچنین به یک مدل آموزش‌دیده NER نیاز دارید. مسیر مدل را در اسکریپت به فایل مدل خودتان تغییر دهید.
## نحوه عملکرد
- اسکریپت با استفاده از کتابخانه Flair یک مدل NER آموزش‌دیده را بارگذاری می‌کند.
- هر بخش متنی را پردازش می‌کند، در صورت نیاز متن‌های طولانی را به بخش‌های کوچکتر تقسیم می‌کند و موجودیت‌های نامدار را استخراج می‌کند.
- نتایج در یک فایل JSON برای استفاده‌های بعدی ذخیره می‌شود.
## توابع اصلی
- `single_ner_recognizer(input_sentence)`: موجودیت‌های نامدار را از یک جمله یا متن استخراج می‌کند.
- `do_ner_recognize(sections)`: همه بخش‌ها را پردازش کرده، موجودیت‌ها را استخراج و نتایج را ذخیره می‌کند.
## مثال استفاده
فرض کنید داده‌های بخش‌های شما به صورت دیکشنری زیر است:
```python
sections = {
"1": {"content": "متن بخش اول"},
"2": {"content": "متن بخش دوم"}
}
```
می‌توانید موجودیت‌های نامدار همه بخش‌ها را به شکل زیر استخراج کنید:
```python
from p2_ner_recognizer import do_ner_recognize
result = do_ner_recognize(sections)
```
پس از اجرا، نتایج در یک فایل JSON در مسیر `./data/ner/` ذخیره می‌شود.
## ساختار خروجی
برای هر بخش، یک فیلد جدید به نام `ners_v2` با موجودیت‌های استخراج‌شده اضافه می‌شود:
```json
"1": {
"content": "متن بخش اول",
"ners_v2": [
{"key": "PERSON", "value": "علی رضایی", "begin": 0, "end": 2, "score": 0.98},
...
]
}
```
## نکات
- مطمئن شوید مسیر مدل صحیح است و فایل مدل در دسترس است.
- اگر مدل برای زبان فارسی آموزش دیده باشد، اسکریپت از زبان فارسی پشتیبانی می‌کند.
- فایل خروجی JSON در مسیر `./data/ner/` ذخیره خواهد شد.