<div align="justify" dir="rtl">

<p align="center" dir="rtl">بسم الله الرحمن الرحیم</p>

<p align="center">
  <img src="img/1.jpg" />
  <br>  
  <br>  
</p>

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

## آشنایی کامل با این حوزه هوش مصنوعی

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

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

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

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

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

<p align="center">
  <img src="img/2.jpg" />
  <br>  
  <br>  
</p>

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

## کاربردهای NLPدر حوزه متن

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

## تشخیص هرزنامه

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

## ترجمه ماشینی

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

## چت بات‌های گفتگو

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

## تجزیه و تحلیل احساسات

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

<p align="center">
  <img src="img/3.jpg" />
  <br>  
  <br>  
</p>

## خلاصه‌سازی متن

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

## ابهام‌ زدایی

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

## شناسایی موجودیت

شناسایی موجودیت نامگذاری شده یا NEM، کلمات یا عبارات را به عنوان موجودیت‌های مفید شناسایی می‌کند. NEM "شیراز" را به عنوان یک مکان یا "بابک" را به عنوان نام یک مرد شناسایی می‌کند. هرساله الگوریتم‌های مفیدی در این زمینه توسعه داده می‌شوند.

## کاربردهای NLPدر سایر حوزه‌ها

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

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

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

<p align="center">
  <img src="img/4.jpg" />
  <br>  
  <br>  
</p>

## پردازش زبان طبیعی در سیستم‌های توصیه‌گر

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

## مفاهیم مقدماتی NLP

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

## کیسه کلمات

کیسه کلمات (Bag of Words) یک مدل متداول است که به شما اجازه می‌دهد تا تمام کلمات موجود در یک متن را بشمارید. این روش یک ماتریس رخداد هر کلمه را (بدون توجه به دستور زبان و ترتیب کلمات) برای جمله یا سند ایجاد می‌کند. از این فرکانس‌ها یا رخدادها به عنوان ویژگی‌هایی برای آموزش یک مدل طبقه‌بندی کننده متن استفاده می‌شود. این رویکرد ممکن است موجب ایجاد چندین جنبه منفی مانند از دست رفتن معنای کلمات و زمینه معنایی باشد یا اینکه به برخی از کلمات متداول (مانند the) به اشتباه امتیاز بالایی دهد.

## روش TFIDF

برای حل مشکل کیسه کلمات، یک رویکرد این است که بسامد کلمات را بر اساس تعداد دفعات ظاهر شدن آنها در همه متون (نه فقط متنی که در حال تجزیه و تحلیل ما هستیم) مجددا مقیاس بندی کنیم تا امتیازات کلمات متداول مانند "the" که در سایر متون نیز متداول است، به درستی محاسبه شود. این رویکرد امتیازدهی TFIDF نامیده می‌شود و مجموعه کلمات را بر اساس وزن می‌سنجد. از طریق TFIDF اصطلاحات مکرر در متن "پاداش" دریافت می‌کنند اما اگر این عبارات در متون دیگری که ما نیز در الگوریتم گنجانده ایم، تکرار شده باشند، "مجازات" می‌شوند. برعکس، این روش با در نظر گرفتن همه متون آزمایشی، اصطلاحات منحصر به فرد یا کمیاب را برجسته می‌کند و «پاداش» می‌دهد. هرچند بهتر است بدانید که این رویکرد هنوز هیچ زمینه و معنایی ندارد.

## توکن سازی

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

<p align="center">
  <img src="img/5.jpg" />
  <br>  
  <br>  
</p>

## ریشه یابی

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

## Lemmatization

هدف این فرآیند تبدیل یک کلمه به شکل اصلی آن و گروه بندی اشکال مختلف یک کلمه است. برای مثال، افعال در زمان گذشته به مصدر تبدیل می‌شوند (مثلا «رفت» به «رفتن» تغییر می‌کند) و مترادف‌ها یکسان می‌شوند (مثلا صفت بهترین و برترین یکی می‌شود)، از این رو ریشه کلماتی با معنای مشابه استاندارد می‌شوند. اگرچه به نظر می‌رسد که این روش ارتباط نزدیکی با فرآیند ریشه‌ یابی دارد، اما Lemmatization از رویکرد متفاوتی برای رسیدن به اشکال ریشه‌ای کلمات استفاده می‌کند. به عنوان مثال، کلمات " run"، "runs" و "ran" همگی اشکال کلمه " run" هستند ، بنابراین " run" لم تمام کلمات قبلی است. Lemmatization همچنین برای حل مشکلات دیگری مانند ابهام زدایی، بافت کلمه را در نظر می‌گیرد، به این معنی که می‌تواند بین کلمات یکسانی که بسته به بافت خاص معانی متفاوتی دارند، تمایز قائل شود. به کلماتی مانند "شیر" (که می‌تواند مربوط به حیوان یا نوشیدنی یا لوله آب باشد) فکر کنید. با ارائه یک معیار (چه اسم، یک فعل و غیره) می‌توان نقشی برای آن کلمه در جمله تعریف کرد و ابهام زدایی را حذف کرد.

## مدل سازی موضوع

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

## الگوریتم LDA

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

-   اختصاص دادن هر کلمه به یک موضوع تصادفی
-   تعداد موضوعاتی که کاربر می‌خواهد کشف کند

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

<p align="center">
  <img src="img/6.jpg" />
  <br>  
  <br>  
</p>

# ابزارها و رویکردهای NLP

## پایتون و the Natural Language Toolkit (NLTK)

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

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

## جمع بندی

در حال حاضر NLP در حال تلاش برای تشخیص تفاوت‌های ظریف در معنای زبان است. (به دلیل کمبود متن، اشتباهات املایی یا تفاوت‌های گویش) در مارس 2016 مایکروسافت Tay را راه اندازی کرد ، یک چت ربات هوش مصنوعی (AI) که در توییتر به عنوان یک آزمایش NLP منتشر شد. ایده این بود که هرچه کاربران بیشتر با Tay صحبت کنند، هوشمندتر می‌شود. خوب، نتیجه این شد که پس از 16 ساعت، تای به دلیل اظهارات نژادپرستانه و توهین آمیزش حذف شد J مایکروسافت از تجربه خود استفاده کرد و چند ماه بعد Zo را منتشر کرد، نسل دوم چت‌بات انگلیسی زبان که دچار اشتباهات مشابه قبلی نمی‌شد. Zo از ترکیبی از رویکردهای نوآورانه برای شناسایی و ایجاد مکالمه استفاده می‌کند و سایر شرکت‌ها در حال بررسی با ربات‌هایی هستند که می‌توانند جزئیات خاص یک مکالمه را به خاطر بسپارند. اگرچه آینده برای NLP بسیار چالش برانگیز و پر از تهدید به نظر می‌رسد، این حوزه با سرعتی بسیار سریع در حال توسعه است و با ترکیب با یادگیری عمیق در سالهای آینده به سطحی از پیشرفت خواهیم رسید که ساخت برنامه‌های پیچیده (مانند chatgpt) ممکن می‌شود.

<p align="center" dir="rtl">صلوات</p>
</div>
