خدمات مختلف طبقه بندی احساسات آنلاین هم اکنون در دسترس است. غول هایی مانند Google ، Amazon یا Microsoft راه حل های ابری خود را برای پردازش زبان طبیعی ارائه می دهند. اما اگر قصد ندارید 1-2 دلار برای 1000 تماس API پرداخت کنید (افزایش قیمت در هنگام بررسی بیش از 1000 کاراکتر) و/یا آماده تهیه سرویس یا برنامه طبقه بندی محلی خود هستید ، می توانید از طبقه بندی کننده های آفلاین استفاده کنید. چندین طبقه بندی کننده .NET برای پرونده آفلاین وجود دارد که در این پست مورد بحث قرار خواهد گرفت. مباحث زیر در اینجا پوشش داده می شود:

-[تجزیه و تحلیل احساسات چیست؟] (#چه چیزی-تجزیه و تحلیل-تجزیه و تحلیل)

طبقه بندی احساسات (تجزیه و تحلیل) چیست؟

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

  • دودویی:
    • منفی؛
    • مثبت ؛
  • کلاس 3:
    • منفی؛
    • خنثی؛
    • مثبت ؛
  • 5 کلاس
    • از 1 تا 5 ستاره در همه موارد ، احساسات منفی برای تجزیه و تحلیل مهمترین است. بنابراین کار اصلی که طبقه بندی کننده احساسات باید حل کند به نظر می رسد “آیا این متن منفی است؟” و “چقدر منفی است؟”

معیارها

دقت یک متریک ساده و آشکار است. هنگام عدم تعادل کلاس ها ، مضرات شناخته شده ای دارد. با این حال ، می توان از آن در مورد کلاس های متعادل استفاده کرد. همچنین به طور گسترده در ادبیات علمی مورد استفاده قرار می گیرد. طبقه بندی کننده های ذکر شده در زیر فقط در کارهای طبقه بندی باینری قابل مقایسه هستند زیرا یکی از آنها کلاس “خنثی” ندارد.

طبقه بندی احساسات آفلاین (C#)

چندین کتابخانه C# وجود دارد که از طریق Google ، Nuget E.T.C. یافت می شود. اما آنها باید به صورت دستی بررسی شوند زیرا بسیاری از آنها در واقع فقط SDK برای API های ابر هستند. بسته های بعدی پس از تأیید دستی طبقه بندی احساسات C# کتابخانه ها جمع آوری شد:

  • GroupDocs.Classification ؛
  • Vadersharp ؛
  • stanfordnlp ؛
  • Sentimentanalyzer ؛
  • wikiled ؛ همه آنها طبقه بندی احساسات آفلاین C# کتابخانه هستند. بیایید آنها را با جزئیات بیشتری شرح دهیم.

groupdocs.classification

مجوز: پرونده مجوز

پیچیدگی نصب: آسان ** دقت:**93.3 (ارزیابی) / 96.3 (مجوز) {.wp-block-head} GroupDocs.Classification یک کتابخانه با موتور داخلی خود برای طبقه بندی متن و اسناد است. مدل ها همچنین بخشی از بسته A nuget هستند. نصب ساده است: شما فقط باید بسته Nuget را نصب کنید. بین ارزیابی و نسخه های دارای مجوز تفاوت وجود دارد. برای نسخه ارزیابی ، باید متن را به تکه های 100 کاراکتر تقسیم کرده و سپس نتایج را متوسط ​​کنید. کلاس Docs.Classification 93.3 ٪ دقت را در حالت ارزیابی و 96.3 ٪ هنگام اعمال مجوز نشان می دهد.

vadersharp

مجوز: MIT

پیچیدگی نصب: آسان دقت: 77.6 ٪ {.wp-block-head} Vadersharp یک راه حل محبوب برای طبقه بندی احساسات C# (تجزیه و تحلیل) است. این خیلی سریع کار می کند و پیام ها را در هر ثانیه در یک رایانه معمولی خانگی پردازش می کند ، نه در مورد دستگاه های سرور. نصب نیز ساده است (فقط بسته nuget را نصب کنید). با این حال ، یک نقطه ضعف مهم نیز وجود دارد: دقت به اندازه زمان پردازش مناسب نیست. این به دقت 78 ٪ در مجموعه داده های آزمون می رسد.

استنفوردNLP

مجوز ####: GPL V2 پیچیدگی نصب: سخت. دقت: 70 ٪ {.WP-Block-Heading} استنفورد NLP یک کتابخانه C# است که بر اساس کتابخانه جاوا مربوطه برای پردازش زبان طبیعی است. برخی از مشکلات در نصب وجود دارد. لازم است نسخه جاوا استنفورد NLP را نصب کرده و در صورت لزوم مدل ها را در فهرست فعلی برنامه کپی کنید. همچنین با سازگاری .NET Core 3.0 مشکلی وجود دارد. دقت و زمان پردازش برای این کتابخانه ناپایدار است و به نظر می رسد به طول متن بستگی دارد. برای متون کوتاه از مجموعه داده SST-2 ، به دقت 80.2 ٪ با ثانیه در هر زمان پردازش به دست می آید. برای متون طولانی تر از دامنه متقابل ، دقت به 70 ٪ کاهش می یابد. و زمان پردازش به 1 دقیقه یا بیشتر در هر متن افزایش می یابد.

sentimentanalyzer

مجوز: MIT

پیچیدگی نصب: متوسط دقت: 79.1 ٪ {.wp-block-head} این کتابخانه ML.NET است. در حین نصب ، ممکن است مشکلات مربوط به کار ML.NET وجود داشته باشد. این یک کتابخانه ناامن است ، به صراحت به پیکربندی (x86 / x64) نیاز دارد ، و ممکن است شما نیاز به نصب برخی از وابستگی ها نیز داشته باشید. SentimentAnalyzer کلاس مثبت یا منفی و نمره مربوطه را برمی گرداند. به همین دلیل است که از کار طبقه بندی باینری برای آن مقایسه استفاده شده است. بهترین نتیجه را می توان با آستانه دقیقاً انتخاب شده بدست آورد. دقت پس از بهینه سازی مقدار آستانه به 79 ٪ رسید.

wikiled

مجوز: مجوز Apache 2.0

پیچیدگی نصب: ساده دقت: هیچ کدام {.wp-block-heading} یکی دیگر از کتابخانه های طبقه بندی احساسات C# Wikiled است. این کتابخانه باید قبل از آزمایش آموزش داده شود تا نتایج کافی داشته باشد. بنابراین دقت را نمی توان برای کتابخانه محاسبه کرد.

مجموعه داده ها

ما از یک مجموعه داده دامنه متقابل برای اهداف آزمایش استفاده کردیم. GroupDocs.Classification روی آن آموزش نیافته است. بقیه کتابخانه ها به احتمال زیاد از آن در آموزش استفاده نمی کردند. ما نتیجه را از طریق نامه الکترونیکی به هر شخص علاقه مند ارسال خواهیم کرد. لطفاً در repo مربوطه GitHub مسئله ای ایجاد کنید. 14: Stanford Sentiment Treebank (Socher et al. 2013. Recursive deep models for semantic compositionality over a sentiment treebank. In proc. EMNLP).

نتایج

جدول 1 دقت (٪) را برای طبقه بندی کننده های آزمایش شده نشان می دهد. میز 1.

SST-2دامنه متقابل
GroupDocs.Classification93.3 (مجوز: 94.7)93.3 (مجوز: 96.3)
Sentimentanalyzer58.579.1
استنفورد NLP80.770 ~
Vadersharp68.777.6
بیشتر آنها نتایج متفاوتی را برای این 2 مجموعه داده نشان می دهند. به نظر می رسد که علت چنین رفتاری این است که متون SST-2 کوتاهتر از متون متقابل هستند. همچنین در طول آزمایش NLP استنفورد در Crossdomain برای متن بیش از 500 کاراکتر ، برخی از آویزها وجود داشت. به همین دلیل دقت دامنه متقابل با “~” مشخص شده است.

تجزیه و تحلیل اشتباهات رایج

طبقه بندی نادرست زیر معمولی است: _ “همانطور که ستاره آن ، نگرش و فراموشی آن است.” _ - درک این مسئله سخت است. _ “یک snoozer خوب عمل شده و به خوبی قصد دارد.” _ یا _ “Gee ، یک قاتل دوم به کندی شلیک کرد؟” _ “نقطه شعله ور” _ - متن های خیلی کوتاه. چنین مشکلاتی در کلیه محصولات طبقه بندی احساسات (تجزیه و تحلیل) رخ می دهد. به عنوان مثال ، طعنه ، ذهنی است. بنابراین ، آموزش یک مدل طعنه دار دشوار است و طبقه بندی صحیح آن دشوار است. اما امیدواریم که این نقاط ضعف در آینده نزدیک از بین برود.

نتیجه

در حالی که تمام کتابخانه های فوق برای طبقه بندی احساسات در C#مناسب هستند ، GroupDocs.Classification دقیق ترین است. بنابراین ، این بهترین برای جستجوی احساسات منفی یا مثبت در بخش بزرگی از ذکرها و/یا بررسی ها است. در نتیجه ، باید توجه داشت که یک مورد مهم طبقه بندی منفی/خنثی/مثبت نیز وجود دارد. در آینده نیز در نظر گرفته خواهد شد.

رمز

ما کدی را ارائه می دهیم که برای این وبلاگ پست استفاده شده است: {{LINE_90}}