تشخیص موجودیتهای نامگذاری شده (fa): از پردازش زبان طبیعی کلاسیک تا استخراج مبتنی بر هوش مصنوعی
تشخیص موجودیتهای نامگذاری شده (Named Entity Recognition - NER) یکی از سنگ بناهای پردازش زبان طبیعی (NLP) است. این فرآیند شامل شناسایی و دستهبندی خودکار عناصر کلیدی در متن بدون ساختار به دستههای از پیش تعریف شده مانند نام افراد، سازمانها، مکانها، تاریخها، مقادیر پولی و نام محصولات است.
بدون NER، موتورهای جستجو، سیستمهای توصیه و نرمافزارهای تجزیه و تحلیل خودکار اسناد در درک «چه کسی، چه چیزی، کجا و چه زمانی» در یک متن با چالش مواجه خواهند شد.
در این راهنمای جامع، مفهوم NER، نحوه تکامل این فناوری و اینکه چرا هوش مصنوعی مولد مدرن فرآیند استخراج موجودیت را کاملاً متحول کرده است بررسی میکنیم.
۱. تکامل تکنیکهای NER
برای درک اینکه چرا NER مبتنی بر هوش مصنوعی تا این حد انقلابی است، باید به نحوه تکامل استخراج موجودیت در چند دهه گذشته نگاه کنیم.
مرحله ۱: سیستمهای مبتنی بر قانون و فرهنگ لغت
سیستمهای اولیه NER به عبارات باقاعده (regex) و لغتنامههای دستی (gazetteers) متکی بودند.
- نحوه کار: اگر کلمهای در پایگاه داده مکانها وجود داشت یا با الگویی مانند شماره تلفن مطابقت داشت، استخراج میشد.
- محدودیتها: بسیار شکننده. قادر به تشخیص کلمات با غلط املایی، موجودیتهای جدید یا درک متن نبود. به عنوان مثال، نمیتوانست تشخیص دهد که “Apple” به میوه سیب اشاره دارد یا به شرکت فناوری.
مرحله ۲: یادگیری ماشین کلاسیک (CRF و SVM)
در دهه ۲۰۰۰، مدلهای یادگیری ماشین آماری مانند میدانهای تصادفی شرطی (CRFs) و ماشینهای بردار پشتیبان (SVMs) به استاندارد تبدیل شدند.
- نحوه کار: مهندسان ویژگیها را به صورت دستی (مانند پیشوند، پسوند، الگوهای بزرگنویسی) تعریف میکردند و مدلها را روی دادههای برچسبگذاری شده آموزش میدادند تا احتمال اینکه یک بخش از متن بخشی از یک موجودیت باشد را پیشبینی کنند.
- محدودیتها: به مجموعههای داده برچسبگذاری شده انبوه و مهندسی دستی و طاقتفرسای ویژگیها نیاز داشت.
مرحله ۳: یادگیری عمیق (BiLSTM-CRF و BERT)
با ظهور یادگیری عمیق، شبکههای حافظه طولانی کوتاه مدت دوطرفه (BiLSTM) همراه با CRF و بعدها مدلهای ترانسفورمر مانند BERT، پردازش زبان طبیعی را متحول کردند.
- نحوه کار: تعبیههای کلمات (embeddings) معنای معنایی را ثبت میکردند و شبکههای عصبی عمیق زمینه را درک میکردند. مدلهای مبتنی بر BERT میتوانستند “Apple” را به عنوان یک سازمان در جمله “اپل آیفون جدیدی را معرفی کرد” بر اساس زمینه اطراف شناسایی کنند.
- محدودیتها: همچنان نیاز به تنظیم دقیق (fine-tuning) تحت نظارت بر روی مجموعههای داده خاص دامنه داشت و فاقد انعطافپذیری برای استخراج دستههای جدید بدون آموزش مجدد بود.
مرحله ۴: هوش مصنوعی مولد و NER مبتنی بر LLM
امروزه، مدلهای زبانی بزرگ (LLMs) مانند Gemini، GPT-4 و Llama 3 فرآیند NER را با استفاده از درک معنایی و پیروی از دستورالعملها انجام میدهند.
- نحوه کار: با استفاده از پرامپتهای Zero-shot یا Few-shot، کاربر میتواند به یک LLM دستور دهد تا هر نوع موجودیت دلخواهی را استخراج کرده و آن را در قالب ساختاریافته (مانند JSON) بازگرداند.
- چرا برنده است: نحو پیچیده را درک میکند، غلطهای املایی را مدیریت میکند، در زمینههای مبهم استدلال میکند و برای شروع به هیچ داده آموزشی نیاز ندارد.
۲. مقایسه NER مبتنی بر هوش مصنوعی با NER کلاسیک
| ویژگی | NER کلاسیک (BERT / CRF) | NER مبتنی بر هوش مصنوعی (LLMs) |
|---|---|---|
| دادههای آموزشی مورد نیاز | بالا (هزاران نمونه برچسبگذاری شده) | صفر تا بسیار کم (Zero-shot / Few-shot) |
| انعطافپذیری | صلب (فقط دستههای آموزشدیده را استخراج میکند) | بسیار بالا (تعریف هر موجودیتی در پرامپت) |
| درک زمینه | متوسط (پنجره متن محلی) | عمیق (درک کامل متن سند و هدف نویسنده) |
| پشتیبانی از کلمات خارج از دایره واژگان (OOV) | ضعیف (در مواجهه با کلمات جدید با مشکل مواجه میشود) | عالی (استفاده از استدلال معنایی) |
| تاخیر در اجرا و هزینه | سریع و ارزان (اجرای محلی روی CPU/GPUهای کوچک) | کندتر و هزینه بالاتر (نیاز به اجرای مدلهای بزرگ) |
۳. کاربردهای کلیدی NER مبتنی بر هوش مصنوعی
تشخیص موجودیتهای نامگذاری شده مبتنی بر هوش مصنوعی فراتر از هایلایت کردن متن ساده است. با تبدیل متن بدون ساختار به دادههای ساختاریافته JSON، اتوماسیون قدرتمندی را امکانپذیر میسازد:
تجزیه و تحلیل اسناد و استخراج اطلاعات
شرکتها روزانه هزاران فاکتور، رزومه، قرارداد و درخواست پیشنهاد (RFPs) را پردازش میکنند. NER مبتنی بر هوش مصنوعی میتواند استخراج کند:
- فاکتورها: شمارههای مالیاتی، اقلام کالا، مبالغ کل، آدرسهای صورتحساب.
- رزومهها: نام متقاضی، سالهای تجربه، مهارتهای خاص، دانشگاهها.
- قراردادها: تاریخهای پایان، محدودیتهای مسئولیت، قوانین حاکم، نام امضاکنندگان.
ساخت گرافهای دانش (Knowledge Graphs)
با استخراج موجودیتها و روابط بین آنها (به عنوان مثال، [Jennifer Lee] -> [کار میکند در] -> [Acme Innovations])، فناوری NER به عنوان موتور اصلی برای ورود داده به گرافهای دانش عمل میکند که به طور فزایندهای با GraphRAG برای جستجوی پیشرفته شرکتی استفاده میشود.
بهبود RAG و برچسبگذاری متا داده (Metadata)
در سیستمهای تولید افزوده بازیابی (RAG)، نمایهسازی اسناد با برچسبهای متاداده (مانند نویسنده، نسخه محصول، کشور و فناوری) دقت بازیابی را به میزان قابل توجهی بهبود میبخشد. فناوری NER این برچسبها را به طور خودکار در مقیاس بزرگ در حین ورود اسناد ایجاد میکند.
پردازش زبان طبیعی بالینی و پزشکی
مراکز درمانی از NER برای استخراج علائم بیماران، دوزهای دارویی، سوابق پزشکی و تشخیصها از یادداشتهای پزشکان استفاده میکنند، در حالی که اطلاعات سلامت شخصی (PHI) را برای رعایت قوانین حریم خصوصی به طور خودكار ماسک میکنند.
۴. نحوه کار NER مبتنی بر هوش مصنوعی (جریان کار)
مدلهای مدرن NER بر اساس ارسال دستورالعمل سیستم و یک طرحواره (Schema) مشخص به LLM برای دریافت خروجی ساختاریافته کار میکنند.
[متن بدون ساختار] ──> [LLM + دستورالعمل سیستم + طرحواره JSON] ──> [خروجی JSON ساختاریافته]
- متن ورودی: متن خام برای پردازش.
- پرامپت سیستم و طرحواره: موجودیتهایی را که میخواهیم استخراج کنیم (نام، شرکت، تاریخ) و فرمت دقیق مورد نیاز (مانند JSON) را تعریف میکنیم.
- استخراج توسط LLM: مدل تجزیه و تحلیل معنایی را انجام میدهد، موجودیتها را شناسایی میکند، ابهامزدایی میکند و به خروجی فرمت میدهد.
- JSON ساختاریافته: خروجی برای ذخیره مستقیم در پایگاه داده یا ارسال به یک API آماده است.
۵. مثال پیادهسازی: NER مبتنی بر هوش مصنوعی در پایتون
در اینجا یک مثال ساده پایتون برای انجام NER مبتنی بر هوش مصنوعی با استفاده از طرحواره خروجی ساختاریافته JSON آورده شده است:
import json
from google import genai
from google.genai import types
from pydantic import BaseModel
# مقداردهی اولیه کلاینت Gemini
client = genai.Client()
# تعریف ساختار هدف با استفاده از Pydantic
class EntityExtraction(BaseModel):
people: list[str]
organizations: list[str]
locations: list[str]
dates: list[str]
text_content = """
در ۱۴ مارس ۲۰۲۴، جنیفر لی به عنوان معاون جدید مهندسی در شرکت
Acme Innovations Inc. واقع در کیوتو، ژاپن منصوب شد. او جانشین دیوید میلر خواهد شد.
"""
# درخواست خروجی ساختاریافته از Gemini
response = client.models.generate_content(
model='gemini-2.5-flash',
contents=text_content,
config=types.GenerateContentConfig(
system_instruction="همه افراد، سازمانها، مکانها و تاریخها را از متن استخراج کنید.",
response_mime_type="application/json",
response_schema=EntityExtraction,
),
)
# تجزیه و چاپ نتیجه تمیز JSON
entities = json.loads(response.text)
print(json.dumps(entities, indent=2))
خروجی:
{
"people": ["Jennifer Lee", "David Miller"],
"organizations": ["Acme Innovations Inc."],
"locations": ["Kyoto", "Japan"],
"dates": ["March 14, 2024"]
}
نتیجهگیری
تشخیص موجودیتهای نامگذاری شده از جستجوهای فرهنگ لغت ایستا به یک قابلیت معنایی پویا با استفاده از هوش مصنوعی تکامل یافته است. امروزه، سازمانها میتوانند موجودیتهای پیچیده خاص دامنه را بدون هیچ داده آموزشی از اسناد نامرتب استخراج کنند. با ادغام NER مبتنی بر هوش مصنوعی در جریانهای کاری خود، میتوانید فایلهای متنی بدون ساختار را به رکوردهای پایگاه داده ساختاریافته تبدیل کنید و سطوح جدیدی از اتوماسیون و هوش تجاری را باز کنید.
دیدگاههای بیشتری از هوش مصنوعی را در وبلاگ Ghaznix کاوش کنید →