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

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

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

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

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

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

**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 محسوب می‌شود، چرا که محقق شدن آن به‌طور کامل مستلزم سطح بالایی از درک جهان خارج و حالات انسان برای ماشین است.

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

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

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

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

## جستارهای وابسته
* هوش مصنوعی
* زبان‌شناسی محاسباتی
* ترجمهٔ ماشینی
* منطق فازی
* محاسبات نرم
* فراوانی وزنی تی‌اف-آی‌دی‌اف

## منابع

Crystal D. , *The Cambridge Encyclopedia of Language*, 2nd edition, Cambridge University Press, 1996. 
Manning, C. D. , and Schutze, H. , *Foundations of Statistical Natural Language Processing*, 5th edition, The MIT Press, 2002. 

## پیوند به بیرون
* مرجع دادگان زبان فارسی پیکره‌های مورد استفاده در پردازش رایانه‌ای زبان فارسی
* مرکز مطالعات زبان و اطلاعات، استانفورد
* تهیهٔ بانک پرحجم واژگان برای کاربرد در نظام‌های متن‌سازی و سازه‌یابی و بازیابی اطلاعات، ترجمهٔ سید مهدی سمائی، مرکز اطلاعات و مدارک علمی ایران
* کتاب ''زبان، پیوستگی و صورت''


رده:بازشناسی گفتار
رده:زبان‌شناسی رایانشی
رده:فناوری‌های نوپدید
رده:مسئله‌های حل‌نشده در علوم رایانه
رده:هوش مصنوعی