پردازش زبان‌های طبیعی

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

پردازش زبان‌های طبیعی یکی از زیرشاخه‌های مهم در حوزهٔ علوم رایانه، هوش مصنوعی است که به تعامل بین کامپیوتر و زبان‌های (طبیعی) انسانی می‌پردازد؛ بنابر این پردازش زبان‌های طبیعی بر ارتباط انسان و رایانه، متمرکز است. چالش اصلی و عمده در این زمینه، درک زبان طبیعی و ماشینی کردن فرایند درک و برداشت مفاهیم بیان‌شده با یک زبان طبیعیِ انسانی است. به تعریف دقیق‌تر، پردازش زبان‌های طبیعی عبارت است از استفاده از رایانه برای پردازش زبان گفتاری و زبان نوشتاری. بدین معنی که رایانه‌ها را قادر سازیم که گفتار یا نوشتار تولید شده در قالب و ساختار یک زبان طبیعی را تحلیل و درک نموده یا آن را تولید نمایند. در این صورت، با استفاده از آن می‌توان به ترجمهٔ زبان‌ها پرداخت، از صفحات وب و بانک‌های اطلاعاتیِ نوشتاری جهت پاسخ دادن به پرسش‌ها استفاده کرد، یا با دستگاه‌ها، مثلاً برای مشورت گرفتن به گفت‌وگو پرداخت.[۱]این‌ها تنها مثال‌هایی از کاربردهای متنوع پردازش زبان‌های طبیعی هستند.

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

کاربردهای پردازش زبان طبیعی به دو دسته کلی قابل تقسیم است: کاربردهای نوشتاری و کاربردهای گفتاری.

  • از کاربردهای نوشتاری آن می‌توان به استخراج اطلاعاتی خاص از یک متن، ترجمه یک متن به زبانی دیگر یا یافتن مستنداتی خاص در یک پایگاه داده نوشتاری (مثلاً یافتن کتاب‌های مرتبط به هم در یک کتابخانه) اشاره کرد.
  • نمونه‌هایی از کاربردهای گفتاری پردازش زبان عبارتند از: سیستم‌های پرسش و پاسخ انسان با رایانه، سرویس‌های اتوماتیک ارتباط با مشتری از طریق تلفن، سیستم‌های آموزش به فراگیران یا سیستم‌های کنترلی توسط صدا که در سالهای اخیر این حوزه تحقیقاتی توجه دانشمندان را به خود جلب کرده‌است و تحقیقات قابل ملاحظه‌ای در این زمینه صورت گرفته‌است.

تاریخچه[۲][ویرایش]

به‌طور کلی تاریخچه پردازش زبان طبیعی از دهه ۱۹۵۰ میلادی شروع می‌شود. در ۱۹۵۰ آلن تورینگ مقاله معروف خود را دربارهٔ آزمایش تورینگ که امروزه به عنوان ملاک هوشمندی شناخته می‌شود، منتشر ساخت.

نخستین تلاش‌ها برای ترجمه توسط رایانه ناموفق بودند، به‌طوری‌که ناامیدی بنگاه‌های تأمین بودجهٔ پژوهش از این حوزه را نیز در پی داشتند. پس از اولین تلاش‌ها آشکار شد که پیچیدگی زبان بسیار بیشتر از چیزی‌ست که پژوهشگران در ابتدا پنداشته‌بودند. بی‌گمان حوزه‌ای که پس از آن برای استعانت مورد توجه قرار گرفت زبان‌شناسی بود. اما در آن دوران نظریهٔ زبان‌شناسی وجود نداشت که بتواند کمک شایانی به پردازش زبان‌ها بکند. در سال ۱۹۵۷ کتاب ساختارهای نحوی اثر نوام چامسکی زبان‌شناس جوان آمریکایی که از آن پس به شناخته‌شده‌ترین چهرهٔ زبان‌شناسی نظری تبدیل شد به چاپ رسید.[۳] از آن پس پردازش زبان با حرکت‌های تازه‌ای دنبال شد اما هرگز قادر به حل کلی مسئله نشد.

NLP مبتنی بر قوانین دست‌نویس (دهه ۱۹۵۰ - اوایل دهه ۱۹۹۰)

  • دهه ۱۹۵۰: آزمایش جورج تاون در سال ۱۹۵۴ شامل ترجمه کاملاً خودکار بیش از شصت جمله روسی به انگلیسی بود. نویسندگان ادعا کردند که ظرف سه یا پنج سال، ترجمه ماشینی یک مشکل حل شده خواهد بود. با این حال، پیشرفت واقعی بسیار کندتر بود، و پس از گزارش ALPAC در سال ۱۹۶۶، که نشان می‌داد تحقیقات ده ساله نتوانسته‌است انتظارات را برآورده کند، بودجه برای ترجمه ماشینی به‌طور چشمگیری کاهش یافت. تحقیقات کمی در مورد ترجمه ماشینی در آمریکا انجام شد (اگرچه برخی از تحقیقات در جاهای دیگر مانند ژاپن و اروپا) تا اواخر دهه ۱۹۸۰ که اولین سیستم‌های ترجمه ماشینی آماری توسعه یافتند، ادامه یافت.
  • دهه ۱۹۶۰: برخی از سیستم‌های پردازش زبان طبیعی موفق که در دهه ۱۹۶۰ توسعه یافتند عبارت بودند از SHRDLU، یک سیستم زبان طبیعی که در «جهان‌های بلوکی» محدود با واژگان محدود کار می‌کرد، و ELIZA، شبیه‌سازی یک روان‌درمانگر بود، که توسط جوزف وایزنبام بین سال‌های ۱۹۶۴ و ۱۹۶۶ نوشته شده بود. الایزا با استفاده از تقریباً هیچ اطلاعاتی در مورد افکار یا احساسات انسان، گاهی تعامل شگفت‌انگیزی شبیه انسان ارائه می‌داد. ولی وقتی "بیمار" از پایگاه دانش بسیار کوچک فراتر می‌رفت، ELIZA ممکن بود یک پاسخ عمومی ارائه دهد، برای مثال، به "سرم درد می‌کند" با "چرا می‌گویی سرت درد می‌کند؟" پاسخ دهد.
  • دهه ۱۹۷۰: در طول دهه ۱۹۷۰، بسیاری از برنامه نویسان شروع به نوشتن «هستی‌شناسی‌های مفهومی» کردند، که اطلاعات دنیای واقعی را به داده‌های قابل فهم کامپیوتری ساختار می‌داد. در طول این مدت، اولین ربات‌های گفتگو (به عنوان مثال، PARRY) نوشته شدند.
  • دهه ۱۹۸۰: دهه ۱۹۸۰ و اوایل دهه ۱۹۹۰ دوران اوج روش‌های دست‌نویس در NLP است. حوزه‌های مورد توجه در آن زمان شامل تحقیق در مورد تجزیه مبتنی بر قاعده(rule-based parsing) (مانند توسعه HPSG به عنوان عملیاتی محاسباتی گرامر مولد)، مورفولوژی (مانند مورفولوژی دو سطحی)، معناشناسی (مانند الگوریتم Lesk) بودند.

NLP مبتنی بر روشهای آماری (۱۹۹۰–۲۰۱۰)

تا دهه ۱۹۸۰، اکثر سیستم‌های پردازش زبان طبیعی بر اساس مجموعه‌های پیچیده‌ای از قوانین دست نوشته بودند. از اواخر دهه ۱۹۸۰، با معرفی الگوریتم‌های یادگیری ماشینی برای پردازش زبان، انقلابی در پردازش زبان طبیعی رخ داد. این امر هم به دلیل افزایش مداوم در قدرت محاسباتی و هم کاهش تدریجی تسلط نظریات زبان‌شناسی چامسکی بود.

  • دهه ۱۹۹۰: بسیاری از موفقیت‌های اولیه قابل توجه در روش‌های آماری در NLP در زمینه ترجمه ماشینی رخ داد، به‌ویژه به دلیل تحقیقات IBM، مانند مدل‌های هم‌ترازی IBM. این سیستم‌ها می‌توانستند از مجموعه‌های(corpora) متنی چندزبانه موجود که توسط پارلمان کانادا و اتحادیه اروپا تهیه شده بود استفاده کنند. این مجموعه‌های متنی در نتیجه قوانینی که خواستار ترجمه تمام اقدامات دولتی به همه زبان‌های رسمی نظام‌های دولتی مربوطه بودند، تهیه شده بود. با این حال، بیشتر سیستم‌ها به مجموعه‌هایی وابسته بودند که به‌طور خاص برای وظایف پیاده‌سازی شده توسط این سیستم‌ها توسعه یافته بودند، که یک محدودیت عمده در موفقیت این سیستم‌ها بود. در نتیجه، تحقیقات زیادی روی روش‌های یادگیری مؤثرتر از مقادیر محدود داده انجام شد.
  • دهه ۲۰۰۰: با رشد وب، از اواسط دهه ۱۹۹۰، مقدار فزاینده ای از داده‌های خام در دسترس قرار گرفت؛ بنابراین تحقیقات به‌طور فزاینده ای بر روی الگوریتم‌های یادگیری بدون نظارت و نیمه نظارتی متمرکز شد. چنین الگوریتم‌هایی می‌توانستند از داده‌هایی که به صورت دستی با پاسخ‌های مورد نظر یا با استفاده از ترکیبی از داده‌های بدون برچسب(unannotated) بیاموزند. به‌طور کلی، این کار بسیار دشوارتر از یادگیری تحت نظارت است و معمولاً نتایج دقیق کمتری را برای مقدار معینی از داده‌های ورودی ایجاد می‌کند. با این حال، حجم عظیمی از داده‌های بدون برچسب در دسترس است (از جمله، کل محتوای شبکه جهانی وب)، که اگر الگوریتم مورد استفاده پیچیدگی زمانی کافی داشته باشد، اغلب می‌تواند نتایج ضعیف‌تر را جبران کند.

NLP مبتنی بر شبکه‌های عصبی (در حال حاضر)

در دهه ۲۰۱۰، روش‌های یادگیری بازنمایی و یادگیری ماشینی به سبک شبکه عصبی عمیق در پردازش زبان طبیعی رایج شد. این محبوبیت تا حدی به دلیل انبوهی از نتایج بود که نشان می‌داد چنین تکنیک‌هایی می‌توانند به نتایج پیشرفته‌ای در بسیاری از کارهای زبان طبیعی، مانند مدل‌سازی زبان و تجزیه دست یابند. این امر به‌طور فزاینده ای در پزشکی و مراقبت‌های بهداشتی مهم است.

روشها: قوانین، آمارها، شبکه‌های عصبی[۲][ویرایش]

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

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

  • رویه‌های یادگیری مورد استفاده در طول یادگیری ماشینی به‌طور خودکار روی رایج‌ترین موارد تمرکز می‌کنند، در حالی که هنگام نوشتن قوانین با دست، اغلب مشخص نیست که تلاش باید به کجا هدایت شود.
  • روش‌های یادگیری خودکار می‌توانند از الگوریتم‌های استنتاج آماری برای تولید مدل‌هایی استفاده کنند که برای ورودی‌های ناآشنا (مانند ورودی‌هایی که حاوی کلمات یا ساختارهایی هستند که قبلاً دیده نشده‌اند) و برای ورودی‌های اشتباه (مثلاً کلماتی که املایی ندارند یا کلماتی که تصادفاً حذف شده‌اند) بهتر عمل می‌کنند. به‌طور کلی، رسیدگی به چنین ورودی‌ها با قوانین دست‌نویس بسیار دشوار، مستعد خطا و زمان بر است.
  • سیستم‌های مبتنی بر یادگیری خودکار قوانین را می‌توان به سادگی با ارائه داده‌های ورودی بیشتر دقیق تر کرد. با این حال، سیستم‌های مبتنی بر قوانین دست‌نویس تنها با افزایش پیچیدگی قوانین، که کار بسیار دشوارتری است، دقیق‌تر می‌شوند. درحالی که ایجاد داده‌های بیشتر برای ورودی به سیستم‌های یادگیری ماشینی صرفاً مستلزم افزایش ساعت‌های کار شده‌است و معمولاً بدون افزایش قابل توجهی در پیچیدگی فرایند برچسب نویسی می‌باشد.

با وجود محبوبیت یادگیری ماشینی در تحقیقات NLP، روش‌های دست‌نویس هنوز (۲۰۲۰) در موارد زیر استفاده می‌شوند:

  • هنگامی که مقدار داده‌های آموزشی برای به‌کارگیری موفقیت‌آمیز روش‌های یادگیری ماشین کافی نیست، به عنوان مثال، برای ترجمه ماشینی زبان‌های کم منبع
  • برای پیش پردازش در NLP، مانند توکن سازی
  • برای پس پردازش و تبدیل خروجی NLP، به عنوان مثال برای استخراج دانش از تجزیه نحوی.

روش‌های آماری[ویرایش]

از زمان به اصطلاح «انقلاب آماری» در اواخر دهه ۱۹۸۰ و اواسط دهه ۱۹۹۰، بسیاری از تحقیقات پردازش زبان طبیعی به شدت بر یادگیری ماشین تکیه کردند.

بسیاری از کلاس‌های مختلف الگوریتم‌های یادگیری ماشین برای وظایف پردازش زبان طبیعی به کار گرفته شده‌اند. این الگوریتم‌ها مجموعه بزرگی از «ویژگی‌ها» را که از داده‌های ورودی تولید می‌شوند، به عنوان ورودی می‌گیرند. با این حال، تحقیقات به‌طور فزاینده‌ای بر مدل‌های آماری متمرکز شده‌است، که تصمیم‌های نرم و احتمالی را بر اساس ضمیمه کردن وزن‌های با ارزش واقعی به هر ویژگی ورودی می‌گیرند. چنین مدل‌هایی این مزیت را دارند که می‌توانند قطعیت نسبی بسیاری از پاسخ‌های ممکن مختلف را به جای یک پاسخ بیان کنند، و زمانی که چنین مدلی به عنوان جزئی از یک سیستم بزرگ‌تر گنجانده شود، نتایج قابل اعتمادتری تولید می‌کند.

برخی از اولین الگوریتم‌های یادگیری ماشینی مورد استفاده، مانند درخت‌های تصمیم، سیستم‌هایی از قواعد سخت «اگر-آنگاه» مشابه قوانین دست‌نویس موجود تولید کردند. همچنین برچسب‌گذاری بخشی از گفتار، استفاده از مدل‌های پنهان مارکوف را در پردازش زبان طبیعی را معرفی کرد، و به‌طور فزاینده‌ای، تحقیقات بر روی مدل‌های آماری متمرکز شده‌اند که تصمیم‌های احتمالی را بر اساس ضمیمه کردن وزن‌های با ارزش واقعی به ویژگی‌های تشکیل‌دهنده ورودی می‌گیرند. مدل‌های زبان حافظه پنهان که اکنون بسیاری از سیستم‌های تشخیص گفتار بر آن‌ها تکیه دارند، نمونه‌هایی از این مدل‌های آماری هستند. چنین مدل‌هایی معمولاً وقتی ورودی ناآشنا به آنها داده می‌شود، به ویژه ورودی‌هایی که حاوی خطا هستند (همان‌طور که برای داده‌های دنیای واقعی بسیار رایج است)، بهتر عمل می‌کنند و زمانی که در یک سیستم بزرگ‌تر شامل وظایف فرعی متعدد ادغام می‌شوند، نتایج قابل اعتمادتری تولید می‌کنند.

از زمان روی آوردن به شبکه‌های عصبی، روش‌های آماری در تحقیقات NLP تا حد زیادی با شبکه‌های عصبی جایگزین شده‌اند. با این حال، آنها همچنان برای زمینه‌هایی که در آن‌ها قابلیت تفسیر و شفافیت آماری مورد نیاز است، استفاده می‌شوند.

شبکه‌های عصبی[ویرایش]

یک اشکال عمده روش‌های آماری این است که آنها به مهندسی ویژگیها نیاز دارند. به همین علت از سال ۲۰۱۵ تحقیقات با روش‌های آماری تا حد زیادی رها شده و به سمت شبکه‌های عصبی برای یادگیری ماشین رفته‌است. تکنیک‌های رایج عبارتند از استفاده از جاسازی کلمات برای دریافت ویژگی‌های معنایی کلمات، و افزایش یادگیری تمام کار در سطح بالاتر (مثلاً پاسخ‌گویی به سؤال) به‌جای تکیه بر یک صف از وظایف میانی جداگانه (مثلاً، برچسب گذاری بخشی از گفتار و تجزیه وابستگی). در برخی زمینه‌ها، این تغییر مستلزم تغییرات اساسی در نحوه طراحی سیستم‌های NLP است، به طوری که رویکردهای مبتنی بر شبکه عصبی عمیق ممکن است به عنوان یک الگوی جدید متمایز از پردازش زبان طبیعی آماری در نظر گرفته شوند. به عنوان مثال، اصطلاح ترجمه ماشینی عصبی (NMT) بر این واقعیت تأکید دارد که رویکردهای مبتنی بر یادگیری عمیق برای ترجمه ماشینی مستقیماً از تبدیل‌های دنباله به دنباله یادمی‌گیرند، و نیاز به مراحل میانی مانند تراز کردن کلمات و مدل‌سازی زبان را که در آمار مورد استفاده قرار می‌گرفت، نیست.

محدودیت‌ها[ویرایش]

پردازش زبان‌های طبیعی رهیافت بسیار جذابی برای ارتباط بین انسان و ماشین محسوب می‌شود و در صورت عملی شدنش به‌طور کامل می‌تواند تحولات شگفت‌انگیزی را در پی داشته‌باشد. سیستم‌های قدیمی محدودی مانند SHRDLU که با واژه‌های محدود و مشخصی سر و کار داشتند، بسیار عالی عمل می‌کردند، به‌طوری‌که پژوهشگران را به شدت نسبت به این حوزه امیدوار کرده‌بودند. اما در تقابل با چالش‌های جدی‌تر زبانی و پیچیدگی‌ها و ابهام‌های زبان‌ها، این امیدها کم‌رنگ شدند. مسئلهٔ پردازش زبان‌های طبیعی معمولاً یک مسئلهٔ AI-complete محسوب می‌شود، چرا که محقق شدن آن به‌طور کامل مستلزم سطح بالایی از درک جهان خارج و حالات انسان برای ماشین است.

موانع اساسی[ویرایش]

  • نیاز به درک معانی: رایانه برای آن که بتواند برداشت درستی از جمله‌ای داشته باشد و اطلاعات نهفته در آن جمله را درک کند، گاهی لازم است که برداشتی از معنای کلمات موجود در جمله داشته باشد و تنها آشنایی با دستور زبان کافی نباشد؛ مثلاً جمله حسن سیب را نخورد برای این‌که کال بود. و جملهٔ حسن سیب را نخورد برای این‌که سیر بود. ساختار دستوریِ کاملاً یکسانی دارند و تشخیص این‌که کلمات «کال» و «سیر» به «حسن» برمی‌گردند یا به «سیب»، بدون داشتن اطلاعات قبلی دربارهٔ ماهیت «حسن» و «سیب» ممکن نیست.
  • دقیق نبودن دستور زبان‌ها: دستورِ هیچ زبانی آن‌قدر دقیق نیست که با استفاده از قواعد دستوری همیشه بتوان به نقش هریک از اجزای جمله‌های آن زبان پی برد.

پردازش زبان‌های طبیعی آمارگرا[ویرایش]

پردازش زبان‌های طبیعی به‌شکل آمارگرا عبارت است از استفاده از روش‌های تصادفی، احتمالاتی و آماری برای حل مسائلی مانند آنچه در بالا ذکر شد. به‌ویژه از این روش‌ها برای حل مسائلی استفاده می‌کنند که ناشی از طولانی بودن جملات و زیاد بودن تعداد حالات ممکن برای نقش کلمات هستند. این روش‌ها معمولاً مبتنی بر نمونه‌های متنی و مدل‌های مارکف هستند.

کارکردهای مهم پردازش زبان‌های طبیعی[ویرایش]

جستارهای وابسته[ویرایش]

منابع[ویرایش]

  1. «Sheffield University». بایگانی‌شده از اصلی در ۱۴ مه ۲۰۲۱. دریافت‌شده در ۳۰ ژوئن ۲۰۰۸.
  2. ۲٫۰ ۲٫۱ "Natural language processing". Wikipedia (به انگلیسی). 2023-04-05.
  3. «Birmingham University».
  4. دموکراتیک کردن ارتباطات نوشتاری برای پیشبرد قابلیت‌های اختصاصی NLG 21.06.2022

Crystal D. , The Cambridge Encyclopedia of Language, 2nd edition, Cambridge University Press, 1996. ISBN 0-521-55967-7 Manning, C. D. , and Schutze, H. , Foundations of Statistical Natural Language Processing, 5th edition, The MIT Press, 2002. ISBN 0-262-13360-1

پیوند به بیرون[ویرایش]