
مقدمه
به گفته DOMO ، یک شرکت تحلیلی، تا سال 2020 به ازای 4.6 میلیارد کاربر فعال در اینترنت هر فرد در هر ثانیه 1.7 مگابایت داده تولید می کند.
این شامل تقریباً 500000 توییت ارسال شده و 306 میلیارد ایمیل در هر روز می شود. از همه این داده ها، بخش بزرگی از متن و گفتار بدون ساختار است، زیرا هر روز میلیاردها ایمیل و محتوای رسانه های اجتماعی ایجاد می شود و تماس های تلفنی برقرار می شود. این آمارها مبنای خوبی برای تعریف NLP برای ما فراهم می کند.
پردازش زبان طبیعی NLP، زمینهای از هوش مصنوعی است که به آموزش رایانهها برای درک و تفسیر زبان انسان میپردازد. این پایه و اساس حاشیه نویسی متن، ابزارهای تشخیص گفتار، و نمونه های مختلف دیگر در هوش مصنوعی است که در آن انسان ها از طریق گفتار با ماشین ها تعامل دارند. با استفاده از NLP به عنوان ابزاری، مدلها میتوانند انسانها را درک کنند و به آنها پاسخ مناسب دهند و پتانسیل عظیمی را در بسیاری از صنایع ایجاد کنند.
تعریف پردازش زبان طبیعی NLP
به زبان ساده، هدف NLP این است که ماشین ها زبان های گفتاری و نوشتاری ما را بفهمند. علاوه بر این، NLP همه جا حاضر است و در حال حاضر بخش بزرگی از زندگی انسان است. دستیارهای مجازی (Virtual Assistance VAs)، مانند دستیار گوگل، کورتانا، الکسا و سیری اپل، عمدتاً سیستم های NLP هستند.
بسیاری از وظایف NLP زمانی انجام می شود که یکی از VA می پرسد: “آیا می توانید یک رستوران ایتالیایی خوب در آن نزدیکی به من نشان دهید؟”
ابتدا، VA باید گفته را به متن (یعنی گفتار به متن) تبدیل کند. در مرحله بعد، باید معنای درخواست را درک کند (به عنوان مثال، مهم ترین کلمات کلیدی مانند رستوران و ایتالیایی را شناسایی کند) و یک درخواست ساختاریافته را فرموله کند (به عنوان مثال، آشپزی = ایتالیایی، رتبه = 3-5، فاصله <10 کیلومتر). سپس، VA باید رستوران ها را بر اساس مکان و غذاهای فیلتر شده جستجو کند، و سپس، رستوران ها را بر اساس رتبه بندی های دریافت شده رتبه بندی کند.
برای محاسبه رتبه بندی کلی برای یک رستوران، یک سیستم NLP خوب ممکن است به رتبه بندی و توضیحات متن ارائه شده توسط هر کاربر نگاه کند.
در نهایت، هنگامی که کاربر در رستوران است، VA ممکن است با ترجمه آیتم های مختلف منو از ایتالیایی به انگلیسی به کاربر کمک کند.
این مثال نشان می دهد که NLP به بخشی جدایی ناپذیر از زندگی انسان تبدیل شده است.

چالش های NLP
باید درک کرد که NLP یک زمینه تحقیقاتی بسیار چالش برانگیز است زیرا کلمات و معناشناسی یک رابطه غیرخطی بسیار پیچیده دارند و گرفتن این اطلاعات به عنوان یک نمایش عددی قوی حتی دشوارتر است.
علاوه بر این هر زبان، دستور زبان، نحو و واژگان خاص خود را دارد.
بنابراین، پردازش دادههای متنی شامل کارهای پیچیده مختلفی مانند تجزیه متن (به عنوان مثال، نشانهسازی و ریشهیابی)، تحلیل مورفولوژیکی، ابهامزدایی از معنای کلمه، و درک ساختار دستوری زیربنایی یک زبان است.
یادگیری ماشینی به یک عامل کلیدی برای NLP تبدیل شده است که به انجام وظایف فوق از طریق ماشین ها کمک می کند. در ادامه برخی از وظایف مهمی که تحت NLP قرار میگیرند را مورد بحث قرار میدهیم.
وظایف پردازش زبان طبیعی
دارای بسیاری از برنامه های کاربردی در دنیای واقعی است. یک سیستم NLP خوب سیستمی است که بسیاری از وظایف NLP را انجام می دهد. وقتی آب و هوای امروز را در گوگل جستجو میکنید یا از Google Translate استفاده میکنید تا بفهمید چگونه میگویید: «چطوری؟» در زبان فرانسه، شما به زیرمجموعه ای از این وظایف در NLP تکیه می کنید. ما در اینجا تعدادی از فراگیرترین وظایف را فهرست می کنیم:
توکن سازی Tokenization
وظیفه جداسازی یک پیکره متن به واحدهای کوچکتر (مثلاً کلمات یا کاراکترها) است. اگرچه ممکن است برای زبانی مانند انگلیسی بی اهمیت به نظر برسد، اما توکن سازی یک کار مهم است. به عنوان مثال، در زبان ژاپنی، کلمات با فاصله یا علائم نقطه گذاری مشخص نمی شوند.
ابهام زدایی با حس کلمه (WSD)
WSD وظیفه شناسایی معنای صحیح یک کلمه است. مثلاً در جملات The dog barked at mailman و Tree bark گاهی اوقات به عنوان دارو استفاده می شود، کلمه bark دو معنای متفاوت دارد. WSD برای کارهایی مانند پاسخگویی به سؤال بسیار مهم است.
شناسایی موجودیت نامگذاری شده (NER)
NER تلاش می کند تا موجودیت ها (به عنوان مثال، شخص، مکان، و سازمان) را از یک متن خاص یا یک مجموعه متن استخراج کند. NER یک موضوع ضروری در زمینه هایی مانند بازیابی اطلاعات و بازنمایی دانش است.
برچسب گذاری قسمتی از گفتار(PoS)
برچسب گذاری PoS وظیفه انتساب کلمات به بخش های مربوط به گفتار آنها است. این می تواند برچسب های اصلی مانند اسم، فعل، صفت، قید و حرف اضافه باشد یا می تواند دانه ای باشد مانند اسم خاص، اسم مشترک، فعل عبارتی، فعل و غیره.
طبقه بندی جمله یا خلاصه
طبقه بندی جمله یا خلاصه موارد استفاده زیادی مانند تشخیص هرزنامه، طبقه بندی مقالات خبری (به عنوان مثال، سیاسی، فنی و ورزشی) و رتبه بندی بررسی محصول (یعنی مثبت یا منفی) دارد. این امر با آموزش یک مدل طبقهبندی با دادههای برچسبگذاریشده (یعنی بررسیهای حاشیهنویسی شده توسط انسان، با برچسب مثبت یا منفی) به دست میآید.
تولید متن
در تولید متن، یک مدل یادگیری (مثلاً یک شبکه عصبی) با پیکرههای متنی (مجموعه بزرگی از اسناد متنی) آموزش داده میشود و سپس متن جدیدی را پیشبینی میکند. برای مثال، مدلسازی زبان میتواند یک داستان علمی تخیلی کاملاً جدید را با استفاده از داستانهای علمی تخیلی موجود برای آموزش، خروجی دهد.
اخیراً OpenAI یک مدل زبان به نام OpenAI-GPT-2 منتشر کرده است که می تواند متن فوق العاده واقعی ایجاد کند. علاوه بر این، این وظیفه نقش بسیار مهمی در درک زبان ایفا می کند.
پاسخ به سؤال (QA)
تکنیکهای QA دارای ارزش تجاری بالایی هستند و چنین تکنیکهایی پایه چتباتها و VA هستند (به عنوان مثال، Google Assistant و Apple Siri). چت بات ها توسط بسیاری از شرکت ها برای پشتیبانی از مشتری بکار می روند.
از چتباتها میتوان برای پاسخگویی و رفع نگرانیهای مستقیم مشتری (مثلاً تغییر برنامه ماهانه تلفن همراه مشتری) استفاده کرد، که بدون دخالت انسان قابل حل است. QA به بسیاری از جنبه های دیگر NLP مانند بازیابی اطلاعات و بازنمایی دانش اشاره می کند. در نتیجه، همه اینها توسعه یک سیستم QA را بسیار دشوار می کند.
ترجمه ماشینی (MT)
وظیفه تبدیل یک جمله یا عبارت از زبان مبدأ (مثلاً آلمانی) به زبان مقصد (مثلاً انگلیسی) است. این یک کار بسیار چالش برانگیز است، زیرا زبان های مختلف ساختارهای نحوی متفاوتی دارند، به این معنی که یک تبدیل یک به یک نیست.
علاوه بر این، روابط کلمه به کلمه بین زبان ها می تواند یک به چند، یک به یک، چند به یک یا چند به چند باشد. در ادبیات MT این مسئله به عنوان مشکل هم ترازی کلمات شناخته می شود.
در نهایت، برای توسعه سیستمی که بتواند به انسان در کارهای روزمره کمک کند (به عنوان مثال، VA یا یک ربات چت)، بسیاری از این وظایف باید به صورت یکپارچه تنظیم شوند.
همانطور که در مثال قبلی دیدیم که در آن کاربر می پرسد، “آیا می توانید یک رستوران ایتالیایی خوب در این نزدیکی به من نشان دهید؟” چندین کار مختلف NLP، مانند تبدیل گفتار به متن، تجزیه و تحلیل معنایی و احساسی، پاسخگویی به سؤال و ترجمه ماشینی، باید تکمیل شوند. در شکل 1، یک طبقه بندی سلسله مراتبی از وظایف مختلف NLP ارائه شده که به چندین نوع مختلف طبقه بندی شده اند.
دسته بندی وظایف NLP
کار دشواری است که یک وظیفه را در NLP به یک طبقه بندی واحد نسبت دهیم.
بنابراین، برخی از وظایف را می توانیم در چندین دسته مشاهده کنیم.
ما دستهها را به دو نوع اصلی تقسیم میکنیم:
مبتنی بر زبان (رنگهای روشن با متن سیاه)
مبتنی بر فرمولبندی مسئله (رنگهای تیره با متن سفید)
تفکیک زبانی دارای دو دسته است:
نحوی (مبتنی بر ساختار)
معنایی (مبتنی بر معنا)
تفکیک مبتنی بر فرمولبندی مسئله دارای سه دسته است:
- وظایف پیشپردازش (وظایفی که بر روی دادههای متنی قبل از تغذیه به یک مدل انجام میشوند)
- وظایف متمایز (وظایفی که در آن سعی میکنیم یک متن ورودی را به یک یا چند دسته از مجموعهای از دستههای از پیش تعریفشده اختصاص دهیم)
- وظایف تولیدی (وظایفی که در آن تلاش میکنیم یک خروجی متنی جدید تولید کنیم).
این دسته بندی در شکل 1 با مستطیل های قرمز رنگ نشان داده شده اند.البته این یکی از طبقه بندی هاست اما نشان می دهد که تعیین یک کار NLP خاص به یک دسته خاص چقدر دشوار است.

- مطالبی که مطالعه آنها توصیه می شود: