بهترین بسته تجزیه و تحلیل احساسات پایتون (1 اشتباه بزرگ مشترک)

ساخت وبلاگ

چگونه می توان بدون آموزش مدل خود عملکرد تقریباً کامل بدست آورد

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

ایجاد یک معامله گر الگوریتمی مبتنی بر بودجه؟خوب پس شما به داده های سخت و سخت نیاز دارید

ایجاد یک معامله گر الگوریتمی با 0 دلار ، تجزیه و تحلیل API های رایگان ، مجموعه داده ها و اسکریپت های وب.

با افزایش محبوبیت آن ، همچنین بسته های موجود افزایش یافت و برای تصمیم گیری در مورد بهترین ها ، من سه بسته محبوب را در برابر یکدیگر قرار دادم: NLTK (Vader) ، TextBlob و Flair.

nltk (vader) و textblob

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

  • هرچه جملات طولانی تر شود ، کلمات خنثی تر وجود دارد ، و بنابراین ، نمره کلی تمایل به عادی سازی بیشتر به سمت خنثی نیز دارد (یا این کار را انجام می دهد)
  • طعنه و جارگون اغلب تفسیر می شوند

NLTK می تواند نمره قطبیت (ا ز-1 تا 1) و احساسات کل DataFrame متن را با استفاده از کد زیر پیدا کند:

در حالی که TextBlob می تواند همین کار را با روشی بسیار مختصر تر انجام دهد

استعداد

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

فلر نسبت به همتایان مبتنی بر قانون بسیار کندتر است اما به این نفع است که به جای یک مدل مبتنی بر قانون ، یک مدل NLP آموزش دیده باشد ، که اگر به خوبی انجام شود با عملکرد اضافه شده همراه است. برای چشم انداز چقدر کندتر ، در اجرای 1200 جمله ، NLTK 0. 78 ثانیه طول کشید ، TextBlob 0. 55 ثانیه چشمگیر طول کشید و فلر 49 ثانیه طول کشید (50-100 برابر بیشتر) ، که این سؤال را ایجاد می کند که آیا دقت اضافه شده واقعاً ارزش آن را داردافزایش زمان اجرا

یک DataFrame کامل می تواند به این ترتیب آموزش داده شود

قرار دادن آنها به آزمون

به منظور آزمایش این بسته ها ، من از یک پایگاه داده بزرگ از بررسی های آمازون از Kaggle ، تهیه شده توسط DataFinity استفاده می کنم. این مجموعه داده شامل 34000 بررسی از 1 تا 5 شروع است که بیشتر این موارد 5 ستاره بررسی است. به منظور ارزیابی دقیق ، من از هر رتبه ستاره 300 نمونه می گیرم. برای تعیین صحت من ، من فقط از 300 بررسی 1 ستاره استفاده می کنم (با فرض اینکه همه آنها باید منفی باشند) و 300 بررسی 5 ستاره (با فرض اینکه همه آنها باید مثبت باشند)

معیارهای عملکردی که من از آن استفاده خواهم کرد ، دقت است (پیش بینی های صحیح در مورد همه پیش بینی ها) ، دقت (چند مورد از پیش بینی های مثبت انجام شده صحیح است) ، ویژگی (اندازه گیری چند پیش بینی منفی درست است) و F1-Score (میانگین هارمونیک دقت و فراخوان)

نمرات به شرح زیر است

نتایج برای خودشان صحبت می کنند-مدل های مبتنی بر قوانین با تعیین اینکه چه زمانی یک بررسی منفی واقعاً منفی بود ، تلاش کردند. Vader به درستی 280/300 بررسی 5-STAR را مشخص کرد ، اما فقط 126/300 بررسی منفی را به درستی شناسایی کرد (OUCH) ، که منجر به یک نمره 42 ٪ ویژگی های وحشتناک شد. من معتقدم که این امر به دلیل استفاده زیاد از تأکید ، اصطلاحات و طعنه در بررسی های منفی است.

از طرف دیگر ، فلر در این تله قرار نگرفت و به طور صحیح 289/300 بررسی مثبت و همچنین بررسی های منفی 287/300 را شناسایی کرد. این عملکرد به طور مشابه در بررسی های 2 ستاره داشت و 290/300 از آنها را منفی نشان می داد. نتایج دقیق در زیر آمده است!

این نتایج به این معنی است که شما می توانید با استفاده از FLAIR فقط با چند خط کد عملکرد پیشرفته داشته باشید!

یک خطای مشترک

اکثر مدل های تجزیه و تحلیل احساسات پیشنهاد می کنند که هر جمله از بررسی را تقسیم کنید زیرا مدل ها بر روی جملات فردی آموزش داده می شوند. فهمیدم که این هم دقیق تر و هم از نظر محاسباتی فشرده تر است ، نتایج من در انجام این کار به شرح زیر است:

توجه کنید که چگونه همه این مقادیر پایین تر بودند ، و این حتی وقتی که من برای بررسی بیش از 100 کلمه به طول کنترل می کردم ، صادق ماند. بدیهی است ، حتماً متنی را که بیش از 200 کلمه طول دارد ، شکسته کنید ، اما برای متن تا 1-2 پاراگراف ، فهمیدم که متن را به جملات می شکنم تا یک خطای گمراه کننده باشد ، و چیزی که ارزش دنبال کردن آن را ندارد.

نتیجه

برای عملکرد عالی با استفاده از یک مدل از قبل آموزش دیده ، Flair عملکردی را ارائه می دهد که احتمالاً با یک مدل سفارشی مطابقت دارد. من همچنین آموخته ام که همه این مدل ها نسبت به اسناد مربوطه ممکن است شما را به اعتقاد داشته باشند. اگر کد منبع را می خواهید ، من آن را در اینجا بارگذاری کردم. من در مورد نحوه استفاده از این مدل ها در این وبلاگ از neptune. ai چیزهای زیادی آموختم. من امیدوارم که این به شما در سفر به تحلیل احساسات کمک کند ، و اگر از آنچه می خوانید لذت می برید ، احساس راحتی کنید که از من پیروی کنید و بیشتر از آنچه می نویسم بخوانید. من تمایل دارم که یک بار در ماه یک بار به یک موضوع بپردازم (زیرا این مقالات به طور کلی هر 3+ روز را برای من می گیرند)!

بهترین بروکر فارکس...
ما را در سایت بهترین بروکر فارکس دنبال می کنید

برچسب : نویسنده : داریوش اسدزاده بازدید : <-PostHit-> تاريخ : يکشنبه 28 اسفند 1401 ساعت: 15:21