SoSa
SoSa
خواندن ۴ دقیقه·۴ سال پیش

پروژه جالب تشخیص احساسات در متن فارسی ( کاری از Parsiya Keshavarz)

با درود و سپاس

در ادامه آموزش های هوش مصنوعی با گوگل گولب (Google CLoba Notebook) ، در اینجا با معرفی کاری از Parsiya Keshavarz (متن باز در سایت GithHub )، با شما همراه هستم.


توضیحات مربوط به پروژه را می توانید در ویدیوی زیر مشاهده بفرمایید:

https://aparat.com/v/R8OwB

در نهایت با اجرای این پروژه در صفحه گوگل کولب از طریق کلیک بر روی لینک زیر :

https://colab.research.google.com/github/ashalogic/Persian-Sentiment-Analyzer/blob/master/Tutorial.ipynb

می توانید، از یک متن فارسی میزان احساس گوینده را،باخروجی هایی مانند نمونه های زیر بدست بیاورید:


برخی جزئيات پروژه:

در این پروژه از اصول دسته بندی متن مشابه توضیحات اولیه ارایه شده در لینکهای زیر استفاده شده است: است:

این پروژه مشابه ادامه برخی از پروژه های خانم مینا می باشد:


دیتابیس:

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


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



مدل شبکه عصبی:

با توجه به عنوان (Download, extract and load Fasttext word embedding model) در محیط Google Colab از مدل Fasttext برای جمع آوری داده های مناسب برای آموزش هوش مصنوعی در این پرو‌ٰژه استفاده شده است.


مراحل انجام کار تقریبا مطابق فلوچارت زیر می باشد ( برگرفته از Classifying text as prohibited using NLP and Deep Learning):

Multi-class Text Complexity Evaluation via Deep Neural Networks
Multi-class Text Complexity Evaluation via Deep Neural Networks



کد آموزش FastText برای این کار مشابه کد زیر میباشد:

./fasttext skipgram -input data.txt -output model

در ادامه با استفاده از لایه های متفاوتی از قبیل:

Conv1D, Dropout, Dense, Flatten, LSTM, MaxPooling1D, Bidirectional


شبکه عصبی را آماه سازی می نماییم. مثلا بر اساس قدم سوم Step C) Preparing LSTM model) در صفحه کولب مدل شبکه عصبی لایه گذاری و ترکیب بندی شده است:

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

چکیده : با افزایش تعداد وب سایت‌های ارتباط جمعی , مردم تمایل دارند دیدگاه‌های خود را در مورد همه چیز به صورت آنلاین به اشتراک بگذارند . این راهی مناسب برای انتقال پیام‌ها به کاربران نهایی در یک موضوع خاص است . آنالیز احساسی شاخه‌ای از پردازش زبان طبیعی ( NLP ) است که به شناسایی نظرات کاربران نسبت به موضوعات خاص اشاره دارد . این کار در زمینه‌های مختلفی مانند بازاریابی ، خدمات مشتری و غیره مورد استفاده قرار می‌گیرد . از سوی دیگر ، یادگیری عمیق به دلیل نقش موفقیت‌آمیز آن در چندین کار پردازش زبانی طبیعی محبوب شده‌است . هدف این مقاله ارایه یک معماری یادگیری عمیق نوین برای تحلیل احساسات فارسی است . با توجه به مدل پیشنهادی ، ویژگی‌های محلی توسط شبکه‌های عصبی convolutional ( سی ان ان ) استخراج می‌شوند و وابستگی‌های طولانی‌مدت توسط LSTM . بنابراین ، این مدل می‌تواند توانایی‌های CNN's و LSTM's را مهار کند . علاوه بر این ، Word2vec برای نمایش کلمه به عنوان یک گام یادگیری بدون نظارت استفاده می‌شود . برای بهترین دانش ما ، این اولین تلاش است که یک مدل یادگیری عمیق ترکیبی برای تحلیل احساسات فارسی مورد استفاده قرار می‌گیرد .
ما این مدل را بر روی مجموعه داده‌های فارسی که در این مطالعه معرفی شده‌است ، ارزیابی می‌کنیم . نتایج تجربی اثربخشی مدل پیشنهادی را با دقت ۸۵ % نشان می‌دهد .
KEYWORDS: sentiment analysis; natural language processing; deep learning; Persian;
machine learning

همچنین برای درک بهتر از معماری لایه LSTM می تونید از ۲ پست مناسب زیر( به زبان فارسی)، استفاده نمایید:

سال 2016 در یک نگاه- شبکه های عصبی LSTM و RNN -بخش سوم

آموزش شبکه عصبی بازگشتی بخش پنجم : معرفی LSTM



جدول زیر مقایسه ای بین دقت مدلهای مختلف شبکه عصبی برای پردازش کلمات نشان می دهد:

Intent Classification for Dialogue Utterances
Intent Classification for Dialogue Utterances

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


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


در صورت تمایل و کنجکاوی،‌ پروژه متن باز زیر (مشابه با الگوریتم مشابه Fastext و LSTM در زبان هندی) را نیز مورد بررسی قرار بدهید:

A-Determination-of-Effective-Word-Embedding-of-Bengali-Language-using-text-classification



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

تشخیص حالات گوینده در تصاویر ویدیو ای ( LSTM Language Model Adaptation with Images and Titles for Multimedia Automatic Speech Recognition )


بروز رسانی 1:

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

همچنین فایل ویدیوی ارایه این موضوع در گروه دانشجویی نرومارکتینگ مرتبط با دانشگاه شهید بهشتی در زیر قابل مشاهده می باشد (لینک):

https://www.dalfak.com/w/4eb7vp

همچنین در صورت تمایل شما خوشحال میشوم که، نظرات و پیشنهادات خودتون را در مورد چنین پروژه هایی و توانایی های شما، برای اجرایی کردن چنین پروژه هایی، در زمینه های کاری و تحقیقاتی، در کامنت ها با بقیه به اشتراک بگذارید.

با تشکر

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