66 lines
3.0 KiB
Markdown
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/` ذخیره خواهد شد.
|