شناسایی موجودیت‌های نام دار (Named Entity Recognition)

شناسایی موجودیت‌های نام دار موجود در متن یا NER، یک کار طبقه‌بندی است و از جمله taskهای رایج در پردازش زبان طبیعی یا NLP به شمار می‌رود. در الگوریتم‌های مربوط به این task به دنبال راهی برای شناسایی نام‌های خاص هستیم. برای مثال، متن زیر را در نظر بگیرید:

شناسایی موجودیت

نام‌های خاص در متن بالا عبارت‌اند از: نام شخص، موقعیت مکانی و نام سازمان. در واقع در NER به دنیال آن هستیم تا با آموزش یک شبکه‌ی عمیق یا یک الگوریتم یادگیری ماشین، مدلی را بسازیم تا بتواند نام‌های خاص و موجودیت‌های نام‌دار را در یک متن تشخیص دهد.

کتابخانه‌های شناسایی موجودیت

در این امر مدل‌هایی وجود دارند که موجودیت‌های نام دار (NER) را شناسایی می‌کنند که توسط کتابخانه‌های NLP قابل دسترسی هستند. به عنوان مثال کتابخانه‌های NLTK, Spacy, Stanford Core NLP و برخی از کتابخانه‌هایی که کمتر شناخته‌شده‌اند، مثل Allen NLP, Deep Pavlov نیز وجود دارد.

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

Stanford Core NLP یک برنامه پیاده‌سازی شده با زبان جاوا است. که دنباله‌هایی از نام موجودیت‌ها را شناسایی و برچسب می‌زند. این مدل به‌خصوص برای نام شخص، سازمان و موقعیت مکانی تشخیص‌دهنده مناسبی است.شما می‌توانید با مراجعه به لینک (https://corenlp.run)طریقه برچسب زدن جملات مختلف را در کتابخانه Stanford Core NLP مشاهده کنید.

مثال کتابخانه موجودیت

همان‌طور که در تصویر بالا مشاهده می‌کنید جمله‌ای را به‌عنوان ورودی دریافت می‌کند و سپس هر یک از موجودیت‌های متن را مشخص می‌کند.

شناسایی موجودیت‌های نام دار در بسیاری از پروژه‌های مربوط به متن نظیر طبقه‌بندی مطالب برای گویندگان اخبار ،پیشنهاد مطالب مرتبط در سایت جستجو مقاله برای محققان و پژوهشگران ، جستجو یک کالا برای خریدانلاین و…  کاربرد دارد. اگر برای هر کلمه میلیون‌ها مقاله را جستجو کنیم، این روند زمان زیادی می‌برد. پس با اجرای الگوریتم نام‌گذاری موجودیت‌ها  یک بار برای تمام مقالات، موجودیت‌های مرتبط از این مقالات را یافته و به‌طور جداگانه ذخیره می‌کنیم. این کار روند جستجو را بهبود بخشیده و تسریع می‌کند.

ارسال یک پاسخ

آدرس ایمیل شما منتشر نخواهد شد.