# اسکریپت تشخیص موجودیت‌های نامدار (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/` ذخیره خواهد شد.