پروژه جالب تشخیص احساسات در متن فارسی ( کاری از Parsiya Keshavarz)
با درود و سپاس
در ادامه آموزش های هوش مصنوعی با گوگل گولب (Google CLoba Notebook) ، در اینجا با معرفی کاری از Parsiya Keshavarz (متن باز در سایت GithHub )، با شما همراه هستم.
توضیحات مربوط به پروژه را می توانید در ویدیوی زیر مشاهده بفرمایید:
در نهایت با اجرای این پروژه در صفحه گوگل کولب از طریق کلیک بر روی لینک زیر :
می توانید، از یک متن فارسی میزان احساس گوینده را،باخروجی هایی مانند نمونه های زیر بدست بیاورید:

برخی جزئيات پروژه:
در این پروژه از اصول دسته بندی متن مشابه توضیحات اولیه ارایه شده در لینکهای زیر استفاده شده است: است:
- https://www.youtube.com/watch?v=BO4g2DRvL6U
- https://www.youtube.com/watch?v=vPrSca-YjFg
- پردازش زبان طبیعی (NLP) با پایتون — راهنمای جامع
- دسته بندی متن با پایتون و کرس (Keras) — راهنمای جامع
- Sentiment Analysis – Advanced Deep Learning
- دوره آموزشی پیشرفته پردازش زبان طبیعی با یادگیری عمیق که برای دریافت سرفصل های مورد نیاز برای درک تکنولوژی های موجود و برخی از این تکنولوژی ها در این پروژه مناسب می باشد.
- نقشه راه یادگیری پردازش زبان طبیعی قسمت دوم
- پیش پردازش متون فارسی با استفاده Parsivar
این پروژه مشابه ادامه برخی از پروژه های خانم مینا می باشد:

دیتابیس:
شما می توانید فایل دیتابیس (Tutorial_Dataset.csv ) را در محیط کولب باز کرده و از محتویات دیتابیسی که برای آموزش مدل های بالا استفاده شده آگاه شوید ، تصویر زیر بخشی از فایل دیتابیس را محیط کولب نشان می دهد:

همچنین۷ در این پروژه با استفاده از ماژول Hazm در محیط پایتون ( لینک فرادرس در صورت نیاز)، جملات فارسی مانند نمونه زیر تحلیل شده اند و به نحوی برای ورود به عنوان داده های آموزشی و تست در شبکه عصبی استفاده گردیده است:

مدل شبکه عصبی:
با توجه به عنوان (Download, extract and load Fasttext word embedding model) در محیط Google Colab از مدل Fasttext برای جمع آوری داده های مناسب برای آموزش هوش مصنوعی در این پروٰژه استفاده شده است.
مراحل انجام کار تقریبا مطابق فلوچارت زیر می باشد ( برگرفته از Classifying text as prohibited using NLP and Deep Learning):


کد آموزش FastText برای این کار مشابه کد زیر میباشد:
1./fasttext skipgram -input data.txt -output model
در ادامه با استفاده از لایه های متفاوتی از قبیل:
Conv1D, Dropout, Dense, Flatten, LSTM, MaxPooling1D, Bidirectional
شبکه عصبی را آماه سازی می نماییم. مثلا بر اساس قدم سوم Step C) Preparing LSTM model) در صفحه کولب مدل شبکه عصبی لایه گذاری و ترکیب بندی شده است:

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

KEYWORDS: sentiment analysis; natural language processing; deep learning; Persian;
همچنین برای درک بهتر از معماری لایه LSTM می تونید از ۲ پست مناسب زیر( به زبان فارسی)، استفاده نمایید:
سال 2016 در یک نگاه- شبکه های عصبی LSTM و RNN -بخش سوم
آموزش شبکه عصبی بازگشتی بخش پنجم : معرفی LSTM
جدول زیر مقایسه ای بین دقت مدلهای مختلف شبکه عصبی برای پردازش کلمات نشان می دهد:

همچنین امکان استفاده از مدل های دیگر، شبکه عصبی مانند GRU نیز مطابق معماری هایی از قبیل ارایه شده در این مقاله و عکس های زیر، نیز برای این کار، موجود می باشد:

برای توضیحات بیشتر در مورد مقایسه GRU و LSTM از پست جالب زیر (حاوی تصویر زیر) می توانید استفاده نمایید:

در صورت تمایل و کنجکاوی، پروژه متن باز زیر (مشابه با الگوریتم مشابه Fastext و LSTM در زبان هندی) را نیز مورد بررسی قرار بدهید:
A-Determination-of-Effective-Word-Embedding-of-Bengali-Language-using-text-classification

در پایان ترکیب پردازش متن با سایر پروژه های هوش مصنوعی فضای کاری و … جدیدی را ایجاد می نماید، برای مثال یکی از نمونه های ترکیب پردازش تصویر با پردازش متن مشابه پروژه زیر را می توان نام برد:

بروز رسانی 1:
فایل PDF در مورد این پروژه را می تونیداز این لینک دریافت نمایید:

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