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

3.0 KiB

اسکریپت تشخیص موجودیت‌های نامدار (NER)

این پروژه شامل یک اسکریپت پایتون (p2_ner_recognizer.py) برای استخراج موجودیت‌های نامدار از بخش‌های متنی با استفاده از یک مدل آموزش‌دیده NER است. این اسکریپت برای شناسایی موجودیت‌هایی مانند نام افراد، سازمان‌ها، مکان‌ها و ... کاربرد دارد و برای استخراج اطلاعات و تحلیل متون مفید است.

پیش‌نیازها

قبل از استفاده از این اسکریپت، کتابخانه زیر را نصب کنید:

pip install flair

همچنین به یک مدل آموزش‌دیده NER نیاز دارید. مسیر مدل را در اسکریپت به فایل مدل خودتان تغییر دهید.

نحوه عملکرد

  • اسکریپت با استفاده از کتابخانه Flair یک مدل NER آموزش‌دیده را بارگذاری می‌کند.
  • هر بخش متنی را پردازش می‌کند، در صورت نیاز متن‌های طولانی را به بخش‌های کوچکتر تقسیم می‌کند و موجودیت‌های نامدار را استخراج می‌کند.
  • نتایج در یک فایل JSON برای استفاده‌های بعدی ذخیره می‌شود.

توابع اصلی

  • single_ner_recognizer(input_sentence): موجودیت‌های نامدار را از یک جمله یا متن استخراج می‌کند.
  • do_ner_recognize(sections): همه بخش‌ها را پردازش کرده، موجودیت‌ها را استخراج و نتایج را ذخیره می‌کند.

مثال استفاده

فرض کنید داده‌های بخش‌های شما به صورت دیکشنری زیر است:

sections = {
    "1": {"content": "متن بخش اول"},
    "2": {"content": "متن بخش دوم"}
}

می‌توانید موجودیت‌های نامدار همه بخش‌ها را به شکل زیر استخراج کنید:

from p2_ner_recognizer import do_ner_recognize

result = do_ner_recognize(sections)

پس از اجرا، نتایج در یک فایل JSON در مسیر ./data/ner/ ذخیره می‌شود.

ساختار خروجی

برای هر بخش، یک فیلد جدید به نام ners_v2 با موجودیت‌های استخراج‌شده اضافه می‌شود:

"1": {
  "content": "متن بخش اول",
  "ners_v2": [
    {"key": "PERSON", "value": "علی رضایی", "begin": 0, "end": 2, "score": 0.98},
    ...
  ]
}

نکات

  • مطمئن شوید مسیر مدل صحیح است و فایل مدل در دسترس است.
  • اگر مدل برای زبان فارسی آموزش دیده باشد، اسکریپت از زبان فارسی پشتیبانی می‌کند.
  • فایل خروجی JSON در مسیر ./data/ner/ ذخیره خواهد شد.