زبان ۳

پردازش زبان طبیعی (Natural Language Processing) یعنی فهم و بازتولید زبان‌هایی که انسان با اون ها گفت‌وگو میکنه در حال حاضر طرفداران زیادی بین متخصصین هوش‌ مصنوعی داره. آلن تورینگ با تعریف هوش مصنوعی در سال ۱۹۵۰ نشون داد برای اینکه ماشینی، هوشمند درنظر گرفته بشه باید بتونه صحبت‌های انسان رو پردازش و بعد پاسخی براش تولید کنه. چند سال بعد برای اولین بار پروژه ترجمه ماشینی کلید خورد. در این پروژه قرار بود متون روسی به انگلیسی برگردونده‌بشن. پیش‌بینی برای انجام پروژه ۳ تا ۵ سال بود اما پس از حدود ۱۲ سال بدون داشتن نتیجه چشمگیر بودجه این پروژه به‌شدت کاهش داده‌شد.(این اتفاق حدود سال ۱۹۶۶ در پاییز شبکه عصبی رخ‌داد.) اما از نسخه‌های نسبتا موفق در اون دوران میشه به ELIZA که توسط جوزف ویزنباوم ساخته شده بود و یک شبیه‌ساز روان-درمانی فردمحور یا به‌طور کلی یک سیستم پرسش‌و پاسخ بود، اشاره‌کرد.

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

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

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

در حال حاضر کارهای جذابی در این زمینه انجام میشه. ترجمه ماشینی، تولید متن و شعر، خلاصه‌سازی متن، سیستم های پرسش‌وپاسخ(چندتا از این سرویس‌ها رو در پایین لینک دادم) از مثال‌های مهمی هستند که در تیم های پردازش متن روشون کار میشه.

http://www.bolbolzaban.com/
https://talktotransformer.com/


tarjomaan.com


https://www.textcompactor.com
http://textsummarization.net/text-summarizer



برای خوندن دقیق‌تر در مورد نحوه پردازش متن با شبکه‌های عصبی می‌تونید از لینک زیر استفاده کنید. و برای شروع یادگیری در این زمینه دیدن کورس Sequence Models از اندرو ان‌جی در سایت https://www.coursera.org بهترین تصمیمه.

https://deeplearning.ir/%D8%A2%D9%85%D9%88%D8%B2%D8%B4-%D8%B4%D8%A8%DA%A9%D9%87-%D9%87%D8%A7%DB%8C-%D8%B9%D8%B5%D8%A8%DB%8C-%D8%A8%D8%A7%D8%B2%DA%AF%D8%B4%D8%AA%DB%8C-recurrent-neural-networks-%D8%A8%D8%AE%D8%B4-%D8%A7/