لینک اصلی این نوشته من در ویرگول + به همراه تصاویر

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

پردازش زبان طبیعی چیست؟

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

خلاصه‌ای از تاریخچه‌ی پردازش زبان طبیعی

برای پیدا کردن ریشه‌ی پردازش زبان طبیعی باید به دهه ۵۰ میلادی برگردیم. زمانی که آلن تورینگ مقاله‌ای با عنوان «Computing Machinery and Intelligence» را منتشر کرد، و در آن چیزی را بیان کرد که امروزه آن را با عنوان آزمون تورینگ (معیاری برای سنجش هوش کامپیوترها) می‌شناسیم. این آزمون پیشنهادی شامل وظیفه‌ای به نام «تفسیر خودکار و تولید زبان طبیعی» نیز بود.

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

۱- دوره‌ی پردازش زبان طبیعی نمادین یا Symbolic NLP (دهه ۵۰ تا اوایل دهه ۹۰ میلادی) این دوره به خوبی توسط جان سرل (John Searle) با آزمایش «اتاق چینی» توضیح داده شده است. در این آزمایش کامپیوتر با استفاده از مجموعه‌ی قوانینی (مانند یک کتاب عبارات چینی یا سوالات و پاسخ‌های مورد نظر آن‌ها) درک زبان طبیعی را تقلید می‌کند، و آن قوانین را بر روی هر داده‌ای که با آن مواجه می‌شود اعمال می‌کند.

در طی این دوره سیستم‌های پردازش زبان طبیعی به شکل موفقیت‌آمیزی توسعه یافتند. از جمله‌ی این سیستم‌ها می‌توان به SHRDLU که در دهه ۶۰ میلادی به واسطه‌ی جهان بلوکی (blocks worlds) با واژگان محدودی کار می‌کرد، یا به ربات‌های گفتگو‌کننده Racter و Jabberwacky در دهه ۸۰ و اوایل دهه ۹۰ که روزهای اوج روش‌های نمادین بودند اشاره کرد.

۲- دوره‌ی پردازش زبان طبیعی آماری یا Statistical NLP (دهه های ۱۹۹۰ تا ۲۰۱۰ میلادی) متوجه شدیم که تا اواخر دهه ۸۰ میلادی اکثر سیستم‌های پردازش زبان طبیعی بر اساس مجموعه‌ای پیچیده از قوانین دست‌نوشته کار می‌کردند. بعد از این دوره، با معرفی الگوریتم‌های یادگیری ماشین برای پردازش زبان طبیعی، انقلابی رخ داد که علت آن افزایش مداوم قدرت محاسباتی پیش‌بینی شده توسط قانون مور و کاهش تدریجی سلطه‌ی نظریه‌های چامسکی در زبان‌شناسی بود. در اوایل این دوره بسیاری از موفقیت‌های حاصل‌شده مربوط به ترجمه‌ی ماشینی (به‌ویژه به دلیل کارهای تحقیقاتی شرکت IBM) بود. سپس با رشد سریع وب مقدار زیادی از داده‌های زبانی خام در دسترس همگان قرار گرفت که این اتفاق باعث تمرکز گسترده‌ی تحقیقات بر روی الگوریتم‌های نظارت‌شده و بدون نظارت در این حوزه شد.

۳- دور‌ه‌ی پردازش زبان طبیعی عصبی یا Neural NLP (دهه ۲۰۱۰ میلادی تا اکنون) در دهه‌ی ۲۰۱۰ بود که روش‌های یادگیری بازنمایی (representation learning) و یادگیری ماشین به سبک شبکه‌های عصبی عمیق در پردازش زبان طبیعی رایج شدند. انبوهی از نتایج نشان می‌داد که این روش‌ها توانایی خاصی در بسیاری از وظایف پردازش زبان طبیعی دارند.

پردازش زبان طبیعی سخت است!

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

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

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

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

چت‌بات ها و دستیارهای هوشمند یا Chatbots and Intelligent Assistants چت‌بات‌ها و دستیارهای هوشمند برای پاسخ‌دهی خودکار به سؤالات استفاده می‌شوند و با هدف درک زبان طبیعی و ارائه‌ی پاسخ مناسب از طریق تولید زبان طبیعی طراحی شده‌اند. نکته‌ی قابل توجه این نوع از سیستم ها این است که از قوانین ازپیش‌تعریف‌شده برای پاسخ به سوالات استفاده نمی‌کنند، بلکه چت‌بات‌های مجهز به هوش مصنوعی و دستیاران هوشمند می‌توانند از هر تعاملی یاد بگیرند و بفهمند که چگونه باید به سوالات پاسخ دهند. این سیستم‌ها به طور انبوه برای کار‌هایی مانند پشتیبانی مشتریان مورد استفاده قرار می‌گیرند، زیرا می‌توانند به تیم‌ها کمک کنند تا حدود ۸۰ درصد از تمام درخواست‌های معمول را حل کنند و مسائل پیچیده‌تر را به سمت عوامل انسانی هدایت کنند.

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

خلاصه‌سازی متن یا Text Summarization هدف از خلاصه‌سازی متن استخراج مهم‌ترین قسمت‌ها و اطلاعات آن به منظور کوتاه کردن طول متن است. این کار باعث ساده‌سازی فرآیند بررسی حجم وسیعی از داده‌ها مانند مقالات علمی، محتوای خبری یا اسناد قانونی می‌شود. دو روش برای خلاصه‌ سازی وجود دارد:

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

۲. خلاصه‌سازی مبتنی بر انتزاع: عبارات جدیدی را با بازنویسی منبع اصلی ایجاد می‌کند.

در حال حاضر، رویکرد دوم رایج‌تر است و عملکرد بهتری دارد.

تکمیل خودکار یا Autocomplete هر زمان که چیزی را در گوگل جستجو می‌کنیم، پس از تایپ چند حرف، عبارات جستجوی احتمالی را به ما نشان می‌دهد. یا اگر چیزی را با غلط املایی جستجو کنیم، آن‌ها را تصحیح می‌کند (تصحیح خودکار یا Autocorrect) و همچنان نتایج مرتبط را برای ما پیدا می‌کند. این موارد نمونه‌ای از تکمیل خودکار یا autocomplete هستند.

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

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

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