Ehsan Shahbazi
Ehsan Shahbazi
خواندن ۷ دقیقه·۹ ماه پیش

پردازش زبان طبیعی یا همون NLP چیه؟!

create image for my artilce: about NLP technology natural language processing and intruduce some algorithms. make it dark and modern
create image for my artilce: about NLP technology natural language processing and intruduce some algorithms. make it dark and modern

پردازش زبان طبیعی (Natural Language Processing) زیرشاخه‌ای از هوش مصنوعی (AI) هست که به ماشین‌ها کمک می‌کنه زبان انسان رو پردازش و درک کنه تا بتونند به‌طور خودکار کارهای تکراری رو انجام بدن. ما انسان ها اکثرا از طریق کلمه ها با هم گفت و گو می‌کنیم ولی کامپیوتر ها با جدول های دیتابیس یا صفحه های گسترده (Spreadsheets) خیلی خوب عمل می‌کنند. از این طرف خیلی از اطلاعات ما توی جهان ساختاری نداره و این برای ماشین ها خوب نیست و این چالش بزرگیه. خب سوال اینجا پیش میاد حالا چطور می‌تونیم کامپیوتر هارو به درک متون بدون ساختار وادار کنیم؟ اینجاست که پردازش زبان طبیعی یا همون NLP پیشتاز میشه و خودی نشون میده!

هوش مصنوعی به زبون آدمی زاد چیه اصلا؟!

اول نیازه که در مورد هوش مصنوعی یه ذره آشنایی اولیه پیدا کنیم. اونجور که اکثر مردم فکر می‌کنند اینه که هوش مصنوعی مثل یه ترمیناتور تو فیلم The Terminator هست و می‌خواد کل آدما رو نابود کنه!

سکانسی از فیلم محبوب The Terminator
سکانسی از فیلم محبوب The Terminator

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

هوش مصنوعی علم ساخت ماشین‌هایی هست که میتونن مانند انسان فکر کنند و می‌تونند کارهایی انجام بدن که «هوشمند» در نظر گرفته می‌شوند. هدف هوش مصنوعی اینه که بتونند کارهایی مثل تصمیم‌ گیری، قضاوت و تشخیص الگو رو مثل انسان ها انجام بدن.

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

این موضوع حدودا در دهه 1940 که جنگ جهانی دوم تموم شده بود شروع شد. مردم اهمیت ترجمه یه زبان به زبان دیگه رو درک کردند و امیدوار بودن همچین چیزی به زودی عرضه بشه. توی سال 1950 پدر علوم کامپیوتر یعنی آلن تورینگ (Alan Mathison Turing) سنگ بنای NLP رو با این گفته زیر ایجاد کرد:

اگر ماشینی توانایی این را داشته باشد که با یک انسان به گفتگو بنشیند، می‌توان آن را ماشینی متفکر دانست.
عکس دوران جوانی آلن تورینگ پدر علوم کامپیوتر
عکس دوران جوانی آلن تورینگ پدر علوم کامپیوتر

در سال 1958 بعضی از محققان که یکی از اونها جناب نوام چامسکی (Noam Chomsky) که زبان شناس بود کتاب ساختار های نحوی رو ارائه داد. منتهی این موضوع به قدری دشوار بود که به این زودی ها نتونستند به طور کامل حل کنن.

نوام چامسکی زبان شناس و دانشمند علوم شناختی
نوام چامسکی زبان شناس و دانشمند علوم شناختی

توی دوران 1958 تا 1970 محققان NLP میشه گفت به دو بخش تقسیم شدند:

  1. نمادین (symbolic): روی زبان های رسمی و تولید نحو تمرکز داشتن.
  2. تصادفی (stochastic): که به روش های آماری و احتمالی برای تشخیص کاراکتر ها و الگو ها علاقه‌مند بودن.

این موضوع رفته رفته معروف تر شد تا جایی که اپلیکیشن هایی به وجود اومدن مثل «ELIZA» توی سال 1966 که اولین چت بات (chat bot) بود و کاربردش تو زمینه خدمات درمانی با استفاده از روش های تطبیق الگو (Pattern Matching) و گزینش پاسخ (Response Selection) خدمات ارائه می‌کرد.

عکسی از صفحه اصلی اپلیکیشن ELIZA
عکسی از صفحه اصلی اپلیکیشن ELIZA

بعد از اون نظامی ها توی سال 1971، سازمان پروژه‌های پژوهشی پیشرفته دفاعی «DARPA» اومدن ترانویسی خودکار (در مقابل اختلال و نویز) گفتار یا «RATS» رو ایجاد کردن. این سیستم کار های مربوط به تحلیل سیگنال های گفتاری رو تو کانال هایی که به شدت نویز داشته رو انجام میداد.

بعد سال 1970 این دسته بندی بیشتر شد و حوزه های جدیدی متولد شدن مثل:

  1. پارادایم های مبتنی بر منطق (logic base paradigms): زبان هایی که به کدگذاری قواعد و زبان در منطق ریاضی متمرکز بودن. (این حوزه بعد ها به توسعه زبان برنامه نویسی Prolog کمک کرد.)
  2. درک زبان طبیعی (Understanding Natural Language): این برنامه کمک می‌کرد یه کامپیوتر روابط بین اشیا رو حل کنه و ابهامات خاصی رو درک کنه.
  3. مدل‌سازی گفتمان (discourse modeling): تبادلات بین افراد و ماشین رو بررسی می‌کرد و ایده هایی مثل نیاز به تغییر «تو» در سوال گوینده به «من» رو بررسی می‌کرد.

تا سال 1993 دانشمندان روش ها و استدلال های چامسکی و بقیه محققان قبل رو آزمایش کردند و فهمیدن بسیاری از استدلال هایی که در متن قانع کننده بود، از نظر تجربی دقیق نیست. خلاصه روش های احتمالی و آماری رایج ترین نوع مدل ها بودند.

پردازش زبان طبیعی چطور کار می‌کنه؟

برای پردازش و درک، زبان انسان به قطعاتی تقسیم میشن تا ساختار دستورب و معنی کلمه ها توی متن (context) تحلیل و درک بشه. به طور خلاصه کار هایی که قبل از استفاده از ابزار پردازش زبان طبیعی باید انجام بشه:

  1. توکن سازی (Tokenization): متن رو به واحد های معنایی کوچیک تقسیم میشه.
  2. برچسب‌گذاری اجزای کلام (Part of speech tagging): کلمه هارو علامت هایی مثل فعل، صفت، اسم، فاعل و ... گفته میشه.
  3. ریشه‌یابی کلمه‌ها (Stemming & Lemmatization): کلمه هارو با تبدیل اونها به ریشه ها استاندارد میکنه.
  4. حذف کلمه‌های توقف (Stop Word Removal): کلمه های متداول که اطلاعات کمی دارند یا مهم نیستند رو حذف می‌کنه مثل: در، بر، به، روی و ...

که این عناوین رو میشه به طور کلی و سازماندهی توی تحلیل های زبان زیر گفت:

  1. تحلیل لغوی (Lexical Analysis): همون توکن سازی رو انجام میده.
  2. تحلیل نحوی (Syntactic Analysis): ارتباط بین کلمات رو ایجاد میکنه و استاندارد سازی می‌کنه.
  3. تحلیل معنایی (Semantic Analysis): ساختار های متن رو به معانی مستقل از زبانشون تبدیل میکنه.
  4. تحلیل خروجی (Transformation Analysis): بر مبنای تحلیل معنایی متن متناسب با هدف اپ هست.

بعد از این کار ها نیازه که یه الگوریتمی بسازیم یا استفاده کنیم تا این اطلاعات رو استفاده کنه.

الگوریتم های پردازش زبان طبیعی

به طور کلی دو مدل الگوریتم اصلی داریم:

  1. رویکردی مبتنی بر قانون (Rule based approach): قوانین دستوری هستن که متخصصان اون هارو زبان شناسی می‌کنه. این روش اولین رویکرد بود که امروزه هم ازش استفاده میشه.
  2. الگوریتم های یادگیری ماشین (Machine Learning Algorithms): این مدل ها مبتنی به روش های آماری و احتمالی هستن و بعد از اینکه داده های آموزشی رو گرفتن، یاد می‌گیرن چه کاری انجام بدن.

مزایا و معایت روش رویکردی مبتنی بر قانون

مزایا:

  1. با داده های آموزشی کم یا ضعیف نیز عمل می‌کنه.
  2. دقت بالاتری نسبت به روش های دیگه داره.
  3. به راحتی قابل تفسیر به قوانین به صراحت تعریف شده هستن.

معایب:

  1. قوانین زیادی داره در نتیجه کار فشرده تری انجام میشه.
  2. نوشتن قوانین برای کار های پیچیده سخته.
  3. احتمال عملکرد ضعیف توی استثنا ها و تغییرات رو داره.

مزایا و معایت روش الگوریتم های یادگیری ماشین

مزایا:

  1. بهبود خودکار سازی با الگوریتم های آماری و بهبود تصمیم گیری داره.
  2. افزایش کارایی و شخصی سازی بیشتر توی این الگوریتم وجود داره.
  3. یادگیری و بهبود مداوم در نتیجه انعطاف پذیر تر هست.

معایت:

  1. وابستگی زیادی به داده داره و با داده کم نمیشه عمل کرد.
  2. بعضی الگوریتم ها درکشون برای آدما خیلی سخته.
  3. هزینه محاسباتی زیادی نسبت به روش های قبلی داره.

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

این شاخه مثل شاخه های دیگه علوم کامپیوتری کاربردهای فراوانی داره و تو اکثر جاها میشه ازشون استفاده کرد. اینجا به چند تا از مهم ترین کاربردها آشنا می‌شیم:

  1. تحلیل احساسات (Sentiment Analysis): توی بازاریابی، تحلیل رسانه های اجتماعی و بررسی نظرات کاربر ها یا مشتری در مورد یه محصول استفاده میشه.
  2. چت‌بات‌ها و دستیاران مجازی  (Chatbots & Virtual Assistants): برای تعامل با انسان و گفتگو باهاش استفاده میشه و توی آموزش، سرگرمی و خدمات مشتریان به درد می‌خوره.
  3. ترجمه‌ی ماشینی (Machine Translation): ترجمه از یه زبان به زبان دیگه که توی سفر و تجارت خوبه.
  4. تصحیح خودکار (Auto-Correct): اشتباهات املایی رو رفع می‌کنه. توی پردازش متن و ایمیل به کار میاد.
  5. تشخیص شرایط اضطراری (Urgency Detection): پیام های کمک و خدمات اورژانس و پزشکی و امینت.
  6. تشخیص گفتار  (Speech Recognition): گفتار انسان رو به متن تبدیل میکنه. دستوران صوتی و دیکته.
  7. تکمیل جمله (Sentence Completion): عبارت های بعدی توی جمله رو پیش‌بینی میکنه.

مزایا و معایت پردازش زبان طبیعی

خب تا اینجا دید خوبی نسبت به اینکه NLP یعنی چی پیدا کردیم. خب حالا خوبی ها و بدی هاش چیه؟

مزایا:

  1. توی تجزیه و تحلیل منابع ساختار یافته یا بدون ساختار کمک می‌کنه.
  2. بسیار سریع و از نظر هزینه مقرون به صرفه هم هست.
  3. کمک می‌کنه تا کاربر ها هر سوالی دارن بپرسن و سریع جواب بگیرن.

معایت:

  1. فرایند آموزش NLP محاسبات زیادی داره و دیتای زیادی هم می‌خواد.
  2. وقتی با عبارات غیر رسمی یا کنایه روبه رو میشه اشتباه می‌کنه.
  3. بعضی وقت ها نتیجه اون اشتباهه و از اصل موضوع دوره.

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

نسخه صوتی رو یه بار گرفتم توش ایرادات لفظی داره دیگه کات کردن و از این کارا بلد نیستم. به مرور آپدیت میشه و مطالب بیشتری رو میارم اگه یادم نره!

پردازش زبانهوش مصنوعیnlpکامپیوترعلوم شناختی
Github: @EhsanShahbazii - Telegram: @ehsandevv
شاید از این پست‌ها خوشتان بیاید