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

منتشر شده در analyticsvidhya به تاریخ ۱۴ جولای ۲۰۲۱
لینک منبع Understanding Natural Language Processing -A Beginner’s Guide

زبان زمانی که می‌خواهیم با یکدیگر ارتباط برقرار کنیم بسیار مهم است. هر انسانی می‌تواند حرف بزند و به دیگران بگوید که به چه چیزی نیاز دارند و با زبان گوش دهد. این زبان‌ها می‌توانند هر چیزی مانند انگلیسی، اسپانیایی، هندی، مالایالام و غیره باشند. … ما می‌توانیم ایده‌هایمان را به دیگران در این رسانه بیان کنیم. زبان یکی از اجزای حیاتی هوش انسان است.

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

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

زبان‌های ساخت‌یافته و بخش چالش برانگیز:

یکی از زیبایی‌های زبان انسان ماهیت ساختار نیافته بودن آن است. این امر ایده پردازش زبان را بسیار دشوار می‌کند و یکی از سخت‌ترین بخش‌های NLP است. بیایید در مورد برخی از زبان ساختار یافته صحبت کنیم. اگر ما مورد ریاضیات را در نظر بگیریم، معادلاتی داریم که می‌گویند،

y = 3x+2

در اینجا، به طور مستقیم این واقعیت را نشان می‌دهد که یک نقطه x در یک ثابت ۳ ضرب می‌شود و وقتی با ۲ اضافه می‌شود به ما y می‌دهد. و همانطور که x را تغییر می‌دهیم y ما نیز تغییر می‌کند.

زبان‌های برنامه‌نویسی، SQL Queries، و Scripting مجموعه دیگری از زبان ساختار یافته‌ای هستند که ما از آن‌ها استفاده می‌کنیم. این زبان‌ها به گونه‌ای طراحی شده‌اند که در طبیعت غیر مبهم هستند و می‌توانند به راحتی پردازش شوند. اینها توسط برخی قوانین یا قواعد گرامری بیان می‌شوند. این گرامرها به خوبی تعریف شده‌اند و می‌تواند به هنگام پردازش یک زبان مورد استفاده قرار گیرد.

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

مسئله مربوط زمینه است:

بخش اصلی برای ماشین‌ها درک متن یا گفتار است. برای درک این موضوع بیایید این نمونه از این میم را در نظر بگیریم:

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

این دو جمله را در نظر بگیرید:

· ۱. میز از میان پنجره جا نگرفت چون خیلی عریض بود.

· ۲. میز از میان پنجره جا نگرفت چون خیلی نازک بود.

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

چگونه می‌توانیم پایپ‌لاین NLP را بسازیم؟

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

پردازش متن:

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

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

استخراج ویژگی:

حالا که ما متن را پردازش کرده‌ایم و داده‌های مربوطه را بدست‌آورده ایم، آیا می‌توانیم به طور مستقیم حالت را بسازیم؟ نه کاملا. این به این دلیل است که کامپیوترها ماشین‌هایی هستند که داده‌ها را در یک کدگذاری خاص مانند باینری پردازش می‌کنند. آن‌ها نمی‌توانند انگلیسی که ما صحبت می‌کنیم را درک کنند. کامپیوترها هیچ نمایش استانداردی برای کلمات ندارند. اینها به صورت داخلی دنباله‌ای از مقادیر ASCII و یا یونیکد هستند، اما معنی و یا زمینه را ثبت نمی‌کنند. بنابراین، ساخت یک مدل خوب ممکن است نیاز به ویژگی‌های مناسب استخراج از داده‌های پردازش‌شده داشته باشد. این کاملا به این بستگی دارد که چه کاری می‌خواهیم انجام دهیم. ما کلمات را به شکل‌های مختلف نشان می‌دهیم مانند شبکه‌های گرافیکی مانند برای WordNet. شاید شبیه فرم کدگذاری شده برای Word2Vec، مجموعه‌ای از کلمات، و غیره …

ما می‌توانیم از یک رمزگذاری برای دادن احتمال به کلمات خاص استفاده کنیم به طوری که آن‌ها در یک شکل آرایه نشان داده شوند. ما از بردارها در تولید متن و ترجمه ماشینی استفاده می‌کنیم. این موارد را می توان در نمایش word2vec یا glove مشاهده کرد. راه‌های زیادی برای نشان دادن این بخش‌های متنی از اطلاعات وجود دارد.

مدلسازی:

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

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

نتیجه‌گیری:

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

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