فهرست مطالب
پردازش زبان طبیعی یکی از چالشبرانگیزترین حوزههای یادگیری ماشین به شمار میآید، زیرا زبان ما انسانها فوقالعاده پیچیده است. یکی از چالش های پردازش زبان طبیعی، لحن بیان جملات است. شاید یک جمله، معنای مثبتی داشته باشد اما اگر با طعنه گفته شود، دقیقاً معنای منفی و مخالفی پیدا کند. اما رایانهها چگونه میتوانند تا این حد باریکبین باشند و این تفاوت را درک کنند؟ از نظر رایانهها، زبان انسانها بههمریخته و بدون ساختار است، زیرا نمیتوان آن را بهصورت جدولی یا تعدادی سطر و ستون نشان داد.
اما جای هیچ نگرانی نیست. ایجاد ویژگیهای مناسب در دادههای آموزشی که در یادگیری ماشین استفاده میشود، این موضوع را حل میکند. پایه چالش های پردازش زبان طبیعی، تبدیل متن خام به ویژگیهایی است که الگوریتم یادگیری ماشین بتواند آنها را پردازش کرده و الگوهای پنهان را جستجو کند.
دوره آموزشی: اگر با الگوریتمهای یادگیری ماشین و پروژههای آن آشنایی ندارید، آموزش یادگیری ماشین به زبان ساده با پایتون را در کانال یوتیوب دیتاهاب ببینید.
چالش های پردازش زبان طبیعی
در مقاله کاربردهای پردازش زبان طبیعی اشاره شد که کامپیوتر و ماشین فقط ورودیهایی از جنس عدد قبول میکنند و نمیتوان ورودی از جنس کلمه یا جمله برای آن ارسال کرد. یکی از رایجترین تکنیکهای تبدیل متن به بردار عددی Bag-of-words یا بهاختصار BoW است که در شکل زیر نمایش داده شده است.
حال به بررسی مشکلاتی که ممکن است هنگام استفاده از رویکرد BoW با آنها برخورد کنیم، میپردازیم و برای حل آن مشکلات و چالش های پردازش زبان طبیعی راهحلهایی را ارائه خواهیم کرد. تمامی موارد با بیانی ساده و روان همراه با مثال توضیح داده شدهاند.
برای درک بهتر هر مثال، از چهار جمله ساده که در تصاویر میبینید، استفاده کردهایم.
ویژگیهای اضافی (Redundant Features)
پس از تقسیم این چهار جمله کوتاه به کمک روش BoW، متوجه میشویم که تعدادی از ویژگیها، اضافی و زائد هستند. آیا ” North” با “N” بزرگ باید بهعنوان یک ویژگی متفاوت از ” north” با “n” کوچک در نظر گرفته شود؟ یا اینکه کلمه مفرد “king” با کلمه جمع “kings”، تفاوتی دارد؟
بدون هیچ پیشپردازشی، رویکرد BoW آنها را بهعنوان ویژگیهای مجزایی در نظر میگیرد، اما سؤال این است که آیا آنها واقعاً اطلاعات متفاوتی را منتقل میکنند؟ یا هر دو به لحاظ معنایی یکسان هستند و نباید بین آنها تمایز قائل شد.
ویژگیهای پراکنده (Sparse Features)
باتوجهبه تصویر، متوجه میشویم که این جدول ویژگیها، بسیار پراکنده است. بیشتر کلمات و بهاینترتیب بیشتر ویژگیها، تنها در یک جمله وجود دارند و فقط چند کلمه مانند “king” در بیش از یک جمله وجود دارد. این پراکندگی از چالش های پردازش زبان طبیعی است و باعث میشود که یافتن شباهتهای بین جملات توسط الگوریتم، هنگام جستجوی الگوها دشوار باشد. چون اشتراک کلمهای بین جملات بسیار کم بود و اکثر مقادیر ماتریس، صفر است.
ابعاد بالا (High Dimensionality)
تعداد ویژگیهای یک مجموعهداده، ابعاد آن نامیده میشود. با استفاده از رویکرد BoW تعداد ویژگیهای زیادی ایجاد میشود که از چالش های پردازش زبان طبیعی است. باتوجهبه تصویر، از چهار جمله کوتاه 23 ستون ایجاد شده است. حال تصور کنید که متن یک کتاب، چند ستون ایجاد میکند! تصور کنید که فرضاً 10 هزار متن داشته باشیم و 100 هزار کلمه یکتا (ویژگی)، پس ماتریس ویژگیها شامل یک میلیارد درایه خواهد شد که به لحاظ پردازشی وحشتناک است.
هرچقدر ویژگیهای بیشتری داشته باشیم، به فضای ذخیرهسازی و حافظه بیشتری نیاز داریم تا بتوانیم آنها را پردازش کنیم. حال، چالش دیگری نیز برایمان به وجود میآید. با بیشتر شدن تعداد ویژگیها، ترکیب احتمالی بیشتری بین ویژگیها خواهیم داشت؛ بنابراین برای آنکه مدلی که آموزش میدهیم فرایند یادگیری کارآمدتری داشته باشد، به دادههای بیشتری نیاز خواهیم داشت. این یکی از دلایلی است که ما اغلب به دنبال استفاده از تکنیکهایی هستیم که ابعاد دادههای آموزشی را کاهش میدهد.
در صورتی که با NLP آشنایی کافی دارید، دوره آموزش متن کاوی فارسی با شبکههای عصبی را تهیه کنید. در این دوره، با تمرکز روی زبان فارسی، جدیدترین تکنیکهای پردازش زبان طبیعی با کدنویسی فراوان آموزش داده میشود.
ابهام و عدم قطعیت در زبان
از مهمترین چالش های پردازش زبان طبیعی ابهام و عدم قطعیت می باشد که منظور از ابهام، داشتن معانی متفاوت است. به عبارتی دیگر، در زبانهای مختلف کلماتی داریم که بیش از یک معنا و مفهوم دارند. این موضوع باعث شده که زبان طبیعی بسیار مبهم و پرچالش شود. چون وقتی انسان از درک و فهم برخی کلمات و جملات دچار مشکل شود وای به حال ماشین.
انواع ابهامی که در NLP وجود دارد و باعث سخت شدن تحلیل میشود عبارتاند از:
ابهام واژهای (Lexical Ambiguity)
ابهامی را که یک کلمه بهتنهایی میتواند داشته باشد، ابهام واژهای میگویند. به طور مثال، اگر کلمه انگلیسی silver را در نظر بگیریم، این کلمه میتواند بهعنوان noun، adjective یا یک verb به کار گرفته شود. یا مثل کلمه “شیر” که معانی مختلفی (شیر جنگل، شیر خوردنی، شیر آب) دارد.
ابهام نحوی (Syntactic Ambiguity)
این ابهام زمانی به وجود میآید که بتوان یک جمله را بهصورت تعابیر مختلف، تجزیه کرد. اگر جمله انگلیسی زیر را داشته باشیم:
“.The man saw the girl with the telescope”
میتوانیم آن را به دو صورت تجزیه کنیم. “مرد دختر را در حال حمل تلسکوپ دید.” یا اینکه “مرد دختر را با استفاده از تلسکوپ خود دید.”. مثال فارسی و معروف آن “بخشش لازم نیست اعدامش کنید” که این جمله حداقل دو برداشت و معنی متضاد و متفاوت دارد. این نوع جملات از چالش های پردازش زبان طبیعی هستند.
ابهام معنایی (Semantic Ambiguity)
این نوع ابهام زمانی رخ میدهد که بتوان معنای خود کلمات را به نادرستی تفسیر کرد. به عبارتی دیگر، ابهام معنایی زمانی اتفاق میافتد که یک جمله دارای یک کلمه یا یک عبارت مبهم باشد. بهعنوانمثال، جمله انگلیسی زیر ابهام معنایی دارد:
“.The car hit the pole while it was moving”
زیرا دو تعبیر میتواند داشته باشد. “ماشین در حال حرکت، به تیر چراغ برق برخورد کرد.” یا اینکه “ماشین درحالیکه تیر چراغ برق در حال حرکت بود به آن برخورد کرد.”. درک صحیح چنین جملاتی از چالش های پردازش زبان طبیعی برای ماشین است.
ابهام آنافوریک یا ارجاعی (Anaphoric Ambiguity)
این ابهام به دلیل استفاده از ضمایر در متن به وجود میآید. به این سه جمله دقت کنید:
“.The horse ran up the hill. It was very steep. It soon got tired”
میتوان این سه جمله را به این شکل ترجمه کرد. “اسب روی تپه دوید. (آن) بسیار شیبدار بود. (آن) زود خسته شد.” اینجا ضمیر ارجاعی It (آن) در دو جمله، هم برای تپه و هم برای اسب استفاده شده که باعث ابهام میشود.
ابهام عملی (Pragmatic ambiguity)
ابهام عملی زمانی اتفاق میافتد که از یک متن تعابیر متعددی به دست آید بهگونهای که توضیح ارائه شده مشخص و شفاف نباشد. بهعنوانمثال، جمله انگلیسی زیر را در نظر بگیرید:
“.I like you too”
میتوان این جمله را به دو صورت تعبیر کرد. “همانطور که تو مرا دوست داری، من نیز تو را دوست دارم.” و یا اینکه “همانطور که (فرضاً) شخص دیگری تو را دوست دارد، من نیز تو را دوست دارم.”
اگر میخواهید کار بر روی پروژههای واقعی NLP را یاد بگیرید و چالش های پردازش زبان طبیعی را حل کنید، دوره آموزش پردازش زبان طبیعی مقدماتی را از دست ندهید.
سطوح پردازش زبان طبیعی و متن کاوی
با چالش های پردازش زبان طبیعی که نتیجه رویکرد BoW بودند آشنا شدیم. اما زبان را میتوان از زوایای مختلفی تحلیل کرد که در ادامه هر کدام را بررسی میکنیم.
تحلیل واژگانی (Lexical Analysis)
اولین سطح از پردازش زبان طبیعی و متن کاوی، تحلیل واژگانی یا لغوی می باشد که در آن متن کامل ورودی را به تعدادی پاراگراف، جمله و یا کلمه تقسیم میکنیم. برای این کار لازم است که ابتدا ساختار کلمات را شناسایی کرده و سپس تجزیهوتحلیل کنیم. مثل تبدیل جمله “من عاشق اصفهان هستم” به (“من”، “عاشق”، “اصفهان” و “هستم”).
تحلیل نحوی (Syntactic Analysis)
در تحلیل نحوی یا Parsing، کلمات یک جمله برای بررسی دستور زبان، تجزیهوتحلیل میشود که البته نحوه مرتب کردن کلمات باید بهگونهای باشد که رابطه بین کلمات و چینش آنها نیز بهدرستی نشان داده شود. بهعنوانمثال، جمله انگلیسی “The shop goes to the house.” که بهصورت “مغازه (فروشگاه) به خانه میرود.” ترجمه میشود، نادرست است. نمونهای از تحلیل نحوی بهصورت زیر است که احتمالاً شما به یاد دبیرستان و درس زبان فارسی خواهید افتاد.
تحلیل معنایی (Semantic Analysis)
با استفاده از تحلیل معنایی، معنی دقیق کلمات بررسی میشود تا معنادار بودن متن تعیین شود؛ بنابراین، عبارت انگلیسی ” hot ice-cream” که ترجمه آن “بستنی داغ” است، معنادار نیست. پس در تحلیل معنایی، تلاش میکنیم درستی یک متن از لحاظ معنایی بررسی شود. اینکه ماشین چطور این معنا را درک کند از چالش های پردازش زبان طبیعی است.
ترکیب اطلاعات بهدستآمده (Disclosure Integration)
این تحلیل، شامل ایجاد رابطه بین دو جمله یا عبارت متوالی است؛ بهطوریکه قبل از اتمام جمله، معنای آن را باتوجهبه اطلاعات قبلی بهدستآمده، تعیین میکند. بهعنوانمثال، اگر جمله انگلیسی “.He works at Google” را در نظر بگیریم که بهصورت “او در گوگل کار میکند.” ترجمه میشود، باید برای شناسایی ضمیر He (او) به جمله قبل آن توجه کنیم.
تحلیل عملی (Pragmatic Analysis)
تحلیل عملی به بررسی ارتباطات، تفسیر کلی و استفاده معنادار از زبان در موقعیتهای مختلف میپردازد. بهعنوانمثال، “میانگین 18 است.” منظور از میانگین میتواند، معدل یک دانشجو، میانگین تولید یک شرکت، یا میانگین مصرف قند در کشور باشد. همانطور که مشاهده میکنید برای یک جمله یکسان، معانی متفاوتی داریم که برای مقابله با چنین چالش های پردازش زبان طبیعی از تحلیل عملی استفاده میکنیم.
در مقالات آینده با کتابخانه های پردازش متن در پایتون، پردازش متون فارسی را یاد میگیریم. اگر هنوز پایتون را یاد نگرفته اید، دوره رایگان آموزش پایتون ویژه هوش مصنوعی را در کانال یوتیوب دیتاهاب ببینید.
علی رغم همهی چالش های پردازش زبان طبیعی و محدودیتهای آن، NLP زندگی انسانها را راحتتر میکند و برای کسب و کارها بسیار مفید است. بدون شک حل چالش های پردازش زبان طبیعی نیاز به زمان دارد، اما هر سال NLP قوی تر شده و بر قابلیتهای آن افزوده میشود. در این راه، ابزارهایی وجود دارند که به حل این چالشها کمک میکنند. در مقاله بعدی، این کتابخانه های پردازش زبان طبیعی را بررسی کرده و امکانات، کاربردها، مزایا و معایب هر کدام بیان میشوند.
2 دیدگاه
به گفتگوی ما بپیوندید و دیدگاه خود را با ما در میان بگذارید.
بسیار عالی
خواهش می کنم