در فصل قبل ، ما به طور عمیق مورد بررسی قرار دادیم که منظور ما از قالب متن مرتب است و نشان داد که چگونه می توان از این قالب برای نزدیک شدن به سؤالات مربوط به فرکانس کلمه استفاده کرد. این به ما امکان می دهد تجزیه و تحلیل کنیم که کدام کلمات بیشتر در اسناد استفاده می شوند و اسناد را با یکدیگر مقایسه می کنیم ، اما اکنون اجازه می دهیم موضوع دیگری را بررسی کنیم. بیایید به موضوع نظر معدن یا تجزیه و تحلیل احساسات بپردازیم. هنگامی که خوانندگان انسان به یک متن نزدیک می شوند ، ما از درک خود از هدف عاطفی کلمات استفاده می کنیم تا استنباط کنیم که آیا بخشی از متن مثبت یا منفی است یا شاید با برخی از احساسات ظریف تر مانند تعجب یا انزجار مشخص شود. ما می توانیم از ابزارهای استخراج متن برای نزدیک شدن به محتوای عاطفی متن به صورت برنامه ای استفاده کنیم ، همانطور که در شکل 2. 1 نشان داده شده است.

شکل 2. 1: نمودار جریان از یک تحلیل متن معمولی که از TidyText برای تجزیه و تحلیل احساسات استفاده می کند. این فصل نحوه اجرای تجزیه و تحلیل احساسات را با استفاده از اصول داده مرتب نشان می دهد.
یکی از راه های تجزیه و تحلیل احساسات یک متن ، در نظر گرفتن متن به عنوان ترکیبی از کلمات فردی آن و محتوای احساسات کل متن به عنوان مجموع محتوای احساسات کلمات فردی است. این تنها راه برای نزدیک شدن به تجزیه و تحلیل احساسات نیست ، اما این یک رویکرد اغلب استفاده می شود و رویکردی که به طور طبیعی از اکوسیستم ابزار مرتب استفاده می کند.
2. 1 مجموعه داده های احساسات
همانطور که در بالا بحث شد ، روش ها و فرهنگ لغت های مختلفی وجود دارد که برای ارزیابی نظر یا احساسات در متن وجود دارد. بسته TidyText دسترسی به چندین واژگان احساساتی را فراهم می کند. سه واژگان با هدف کلی هستند
- afi از فین Årup Nielsen ،
- بینگ از بینگ لیو و همکاران و
- NRC از سیف محمد و پیتر تورنی.
هر سه این واژگان مبتنی بر Unigrams ، یعنی کلمات مجرد هستند. این واژگان حاوی بسیاری از کلمات انگلیسی است و کلمات برای احساسات مثبت/منفی نمرات اختصاص داده می شوند و همچنین احتمالاً احساساتی مانند شادی ، عصبانیت ، غم و اندوه و غیره. واژگان NRC کلمات را به صورت باینری ("بله"/"نه") به دسته هایی از مثبت ، منفی ، عصبانیت ، پیش بینی ، انزجار ، ترس ، شادی ، غم ، غافلگیر و اعتماد طبقه بندی می کند. واژگان بینگ کلمات را به صورت باینری به دسته های مثبت و منفی طبقه بندی می کند. واژگان AFINN کلماتی را با نمره ای که بی ن-5 تا 5 اجرا می شود ، اختصاص می دهد و نمرات منفی نشانگر احساسات منفی و نمرات مثبت است که نشانگر احساسات مثبت است.
این واژگان تحت مجوزهای مختلف در دسترس هستند، بنابراین مطمئن شوید که مجوز برای واژگانی که می خواهید استفاده کنید برای پروژه شما مناسب است. ممکن است از شما خواسته شود قبل از دانلود داده ها با مجوز موافقت کنید.
تابع get_sentiments() به ما این امکان را می دهد که واژگان احساسات خاصی را با معیارهای مناسب برای هر یک بدست آوریم.
چگونه این واژگان احساسات در کنار هم قرار گرفتند و تایید شدند؟آنها از طریق جمع سپاری (برای مثال با استفاده از آمازون مکانیکال ترک) یا با تلاش یکی از نویسندگان ساخته شدند و با استفاده از ترکیبی از منابع جمعی دوباره، نقدهای رستوران یا فیلم یا داده های توییتر تأیید شدند. با توجه به این اطلاعات، ممکن است در به کار بردن این واژگان احساسی در سبک های متنی که به طور چشمگیری متفاوت از آنچه در آن اعتبارسنجی شده اند، مانند داستان های داستانی 200 سال پیش، تردید کنیم. در حالی که درست است که استفاده از این واژگان احساسی با رمان های جین آستن، برای مثال، ممکن است نتایج دقیق تری نسبت به توییت های ارسال شده توسط یک نویسنده معاصر به ما بدهد، اما همچنان می توانیم محتوای احساسات را برای کلماتی که در واژگان و متن به اشتراک گذاشته می شوند اندازه گیری کنیم..
همچنین برخی از واژگان احساسات خاص دامنه موجود است که برای استفاده با متن از یک منطقه محتوای خاص ساخته شده است. بخش 5. 3. 1 تجزیه و تحلیلی را با استفاده از واژگان احساسات به طور خاص برای امور مالی بررسی می کند.
روش های مبتنی بر فرهنگ لغت، مانند آن هایی که در مورد آن بحث می کنیم، با جمع کردن امتیازهای احساسی فردی برای هر کلمه در متن، احساس کلی یک قطعه متن را پیدا می کنند.
هر کلمه انگلیسی در فرهنگ لغات نیست زیرا بسیاری از کلمات انگلیسی کاملاً خنثی هستند. مهم است که در نظر داشته باشید که این روش ها پیش از یک کلمه، معیارهایی مانند «خوب نیست» یا «نادرست» را در نظر نمی گیرند. یک روش مبتنی بر واژگان مانند این فقط بر اساس unigrams است. برای بسیاری از انواع متن (مانند نمونه های روایی زیر)، بخش های مستمری از طعنه یا متن نفی وجود ندارد، بنابراین این تأثیر مهمی نیست. همچنین، ما می توانیم از یک رویکرد متن مرتب استفاده کنیم تا بفهمیم چه نوع کلمات نفی در یک متن خاص مهم هستند. برای مثال گسترده ای از چنین تحلیلی به فصل 9 مراجعه کنید.
آخرین اخطار این است که اندازه تکه متنی که برای جمع کردن نمرات احساسات یک گرام استفاده می کنیم، می تواند بر تحلیل تأثیر بگذارد. متنی به اندازه بسیاری از پاراگراف ها اغلب می تواند احساسات مثبت و منفی را تا حدود صفر داشته باشد، در حالی که متن به اندازه جمله یا پاراگراف اغلب بهتر عمل می کند.
2. 2 تجزیه و تحلیل احساسات با اتصال داخلی
با داده های موجود در قالب مرتب ، تجزیه و تحلیل احساسات را می توان به عنوان یک عضو داخلی انجام داد. این یکی دیگر از موفقیت های بزرگ در مشاهده استخراج متن به عنوان یک کار تجزیه و تحلیل داده های مرتب است. به همان اندازه که از بین بردن کلمات متوقف یک عمل ضد جین است ، انجام تجزیه و تحلیل احساسات یک عملیات پیوستن داخلی است.
بیایید به کلمات با نمره شادی از واژگان NRC نگاه کنیم. رایج ترین کلمات شادی در Emma چیست؟اول ، ما باید متن رمان ها را بگیریم و متن را با استفاده از uest_tokens () به قالب مرتب تبدیل کنیم ، دقیقاً همانطور که در بخش 1. 3 انجام دادیم. بیایید ستونهای دیگری را نیز تنظیم کنیم تا از کدام خط و فصل کتاب که هر کلمه از آن تهیه شده است ، پیگیری کنیم. ما برای ساخت آن ستون ها از Group_by استفاده می کنیم و جهش می دهیم.
توجه داشته باشید که ما نام کلمه را برای ستون خروجی از uest_tokens () انتخاب کردیم. این یک انتخاب مناسب است زیرا واژگان احساسات و مجموعه داده های Word دارای ستون هایی به نام Word هستند. بنابراین انجام پیوندهای داخلی و ضد جواهرات آسان تر است.
اکنون که متن در قالب مرتب و دارای یک کلمه در هر ردیف است ، ما آماده هستیم تا تجزیه و تحلیل احساسات را انجام دهیم. ابتدا بیایید از واژگان NRC و فیلتر () برای کلمات شادی استفاده کنیم. در مرحله بعد ، بیایید قاب داده را با متن از کتاب ها برای کلمات از Emma فیلتر کنیم و سپس از ier_join () برای انجام تجزیه و تحلیل احساسات استفاده کنیم. رایج ترین کلمات شادی در Emma چیست؟بیایید از شمارش () از dplyr استفاده کنیم.
ما در اینجا سخنان مثبت و شاد در مورد امید ، دوستی و عشق می بینیم. ما همچنین برخی از کلمات را می بینیم که ممکن است توسط آستین با خوشحالی مورد استفاده قرار نگیرد ("یافت شده" ، "موجود"). ما در بخش 2. 4 با جزئیات بیشتر در مورد این موضوع بحث خواهیم کرد.
ما همچنین می توانیم بررسی کنیم که چگونه احساسات در طول هر رمان تغییر می کند. ما می توانیم این کار را فقط با تعداد انگشت شماری از خطوط انجام دهیم که بیشتر توابع dplyr هستند. ابتدا با استفاده از واژگان بینگ و ier_join () نمره احساساتی برای هر کلمه پیدا می کنیم.
در مرحله بعد ، ما در بخش های مشخصی از هر کتاب چند کلمه مثبت و منفی حساب می کنیم. ما یک شاخص را در اینجا تعریف می کنیم تا جایی که در روایت قرار داریم ، پیگیری کنیم. این شاخص (با استفاده از بخش عدد صحیح) بخش هایی از 80 خط متن را به حساب می آورد.
اپراتور ٪/٪ تقسیم عدد صحیح را انجام می دهد (x ٪/٪ y معادل کف (x/y) است) بنابراین این شاخص پیگیری می کند که بخش 80 خطی از متن ما در حال شمارش منفی و مثبت است.
بخش های کوچک متن ممکن است کلمات کافی برای تخمین خوبی از احساسات نداشته باشند، در حالی که بخش های واقعاً بزرگ می توانند ساختار روایت را از بین ببرند. برای این کتاب ها، استفاده از 80 خط به خوبی جواب می دهد، اما این می تواند بسته به متن ها، مدت زمان شروع خطوط و غیره متفاوت باشد. سپس از pivot_wider() استفاده می کنیم تا در ستون های جداگانه احساسات منفی و مثبت داشته باشیم و در آخریک احساسات خالص را محاسبه کنید (مثبت - منفی).
اکنون می توانیم این امتیازات احساسی را در طول مسیر داستانی هر رمان ترسیم کنیم. توجه داشته باشید که ما در برابر شاخصی در محور x ترسیم می کنیم که زمان روایت را در بخش هایی از متن پیگیری می کند.

شکل 2. 2: احساسات از طریق روایات رمان های جین آستن
می توانیم در شکل 2. 2 ببینیم که چگونه طرح هر رمان به سمت احساسات مثبت یا منفی بیشتر در مسیر داستان تغییر می کند.
2. 3 مقایسه سه فرهنگ لغت احساسات
با چندین گزینه برای واژگان احساسات، ممکن است اطلاعات بیشتری در مورد اینکه کدام یک برای اهداف شما مناسب است بخواهید. بیایید از هر سه واژگان احساسی استفاده کنیم و بررسی کنیم که چگونه احساسات در قوس روایی غرور و تعصب تغییر می کند. ابتدا، اجازه دهید از filter() استفاده کنیم تا فقط کلمات را از رمان مورد علاقه خود انتخاب کنیم.
اکنون می توانیم از ()ier_join برای محاسبه احساسات به روش های مختلف استفاده کنیم.
از بالا به یاد داشته باشید که واژگان AFINN احساسات را با نمره عددی بی ن-5 و 5 می سنجد، در حالی که دو واژگان دیگر کلمات را به صورت دودویی دسته بندی می کنند، مثبت یا منفی. برای یافتن نمره احساسی در تکه های متن در سراسر رمان، باید از الگوی متفاوتی برای واژگان AFINN نسبت به دو مورد دیگر استفاده کنیم.
بیایید دوباره از تقسیم عدد صحیح (%/%) برای تعریف بخش های بزرگ تری از متن استفاده کنیم که چندین خط را در بر می گیرد، و می توانیم از همان الگوی با count() , pivot_wider() و mutate() برای یافتن احساسات خالص در هر یک از اینها استفاده کنیم. بخش های متن
ما اکنون تخمینی از احساسات خالص (مثبت - منفی) در هر بخش از متن رمان برای هر واژگان احساسات داریم. بیایید آنها را به هم متصل کرده و در شکل 2. 3 تجسم کنیم.

شکل 2. 3: مقایسه سه واژگان احساسی با استفاده از غرور و تعصب
سه فرهنگ لغت مختلف برای محاسبه احساسات نتایجی به دست می دهند که به معنای مطلق متفاوت هستند، اما مسیرهای نسبی مشابهی در رمان دارند. ما شاهد کاهش ها و اوج های مشابهی در احساسات تقریباً در مکان های مشابه در رمان هستیم، اما مقادیر مطلق به طور قابل توجهی متفاوت هستند. واژگان AFINN بزرگترین مقادیر مطلق را با مقادیر مثبت بالا ارائه می دهد. واژگان از بینگ و همکاران. مقادیر مطلق کمتری دارد و به نظر می رسد که بلوک های بزرگتر متن مثبت یا منفی به هم پیوسته را برچسب گذاری می کند. نتایج NRC نسبت به دو مورد دیگر بالاتر جابه جا می شوند و متن را مثبت تر نشان می دهند، اما تغییرات نسبی مشابهی را در متن تشخیص می دهند. وقتی به رمان های دیگر نگاه می کنیم، تفاوت های مشابهی بین روش ها پیدا می کنیم. احساسات NRC بالا است، احساسات AFINN واریانس بیشتری دارد، Bing و همکاران. به نظر می رسد که احساسات امتداد طولانی تری از متن مشابه پیدا می کند، اما هر سه تقریباً در مورد روند کلی احساسات از طریق قوس روایی توافق دارند.
به عنوان مثال، چرا نتیجه واژگان NRC در مقایسه با Bing و همکارانش از نظر احساسات بسیار بالاست. نتیجه؟بیایید به طور خلاصه به تعداد کلمات مثبت و منفی در این واژگان نگاه کنیم.
هر دو واژگان دارای کلمات منفی بیشتر از مثبت هستند، اما نسبت کلمات منفی به مثبت در واژگان Bing بیشتر از واژگان NRC است. این به تأثیری که در طرح بالا می بینیم کمک می کند، و همچنین هر گونه تفاوت سیستماتیک در تطابق کلمات، به عنوان مثال. اگر کلمات منفی در واژگان NRC با کلماتی که جین آستن به خوبی استفاده می کند مطابقت نداشته باشد. منشأ این تفاوت ها هرچه که باشد، ما مسیرهای نسبی مشابهی را در سرتاسر قوس روایی می بینیم، با تغییرات مشابه در شیب، اما تفاوت های مشخصی در احساسات مطلق از فرهنگ لغت به فرهنگ لغت دیگر. همه اینها زمینه مهمی است که باید هنگام انتخاب واژگان احساسات برای تجزیه و تحلیل به خاطر داشت.
2. 4 رایج ترین کلمات مثبت و منفی
یکی از مزیت های داشتن چارچوب داده با احساس و کلمه این است که می توانیم تعداد کلماتی را که به هر احساس کمک می کنند، تجزیه و تحلیل کنیم. با پیاده سازی count() در اینجا با آرگومان های کلمه و sentiment، متوجه می شویم که هر کلمه چقدر به هر احساس کمک می کند.
این را می توان به صورت بصری نشان داد، و اگر بخواهیم می توانیم مستقیماً به ggplot2 وارد شویم، زیرا به طور مداوم از ابزارهای ساخته شده برای مدیریت فریم های داده مرتب استفاده می کنیم.

شکل 2. 4: کلماتی که به احساسات مثبت و منفی در رمان های جین آستن کمک می کنند.
شکل 2. 4 به ما اجازه می دهد یک ناهنجاری را در تجزیه و تحلیل احساسات مشاهده کنیم. کلمه "خانم" به عنوان منفی کدگذاری شده است اما به عنوان عنوانی برای زنان جوان و مجرد در آثار جین آستین استفاده می شود. اگر برای اهداف ما مناسب بود ، می توانستیم به راحتی "خانم" را با استفاده از bind_rows () به لیست کلمات توقف سفارشی اضافه کنیم. ما می توانیم آن را با یک استراتژی مانند این پیاده سازی کنیم.
2. 5 WordClouds
ما دیده ایم که این رویکرد مرتب سازی متن مرتب با GGPLOT2 به خوبی کار می کند ، اما داشتن داده های ما در قالب مرتب برای سایر توطئه ها نیز مفید است.
به عنوان مثال ، بسته WordCloud را که از Graphics Base R استفاده می کند ، در نظر بگیرید. بیایید به رایج ترین کلمات در کارهای جین آستین به طور کلی نگاه کنیم ، اما این بار به عنوان یک WordCloud در شکل 2. 5.

شکل 2. 5: رایج ترین کلمات در رمان های جین آستین
در توابع دیگر ، مانند مقایسه. cloud () ، ممکن است لازم باشد که قاب داده را با Acast (Reshape2) به یک ماتریس تبدیل کنید. بیایید تجزیه و تحلیل احساسات را انجام دهیم تا کلمات مثبت و منفی را با استفاده از یک پیوستن داخلی برچسب گذاری کنیم ، سپس رایج ترین کلمات مثبت و منفی را پیدا کنیم. تا زمانی که ما نیاز به ارسال داده ها به مقایسه. cloud () داشته باشیم ، این همه با پیوستن ، لوله کشی و dplyr انجام می شود زیرا داده های ما در قالب مرتب هستند.

شکل 2. 6: رایج ترین کلمات مثبت و منفی در رمان های جین آستین
اندازه متن یک کلمه در شکل 2. 6 متناسب با فرکانس آن در احساسات آن است. ما می توانیم از این تجسم استفاده کنیم تا مهمترین کلمات مثبت و منفی را ببینیم ، اما اندازه کلمات در بین احساسات قابل مقایسه نیست.
2. 6 نگاه کردن به واحدهای فراتر از کلمات
بسیاری از کارهای مفید را می توان با نشانه گذاری در سطح کلمه انجام داد ، اما گاهی اوقات نگاه کردن به واحدهای مختلف متن مفید یا ضروری است. به عنوان مثال ، برخی از الگوریتم های تجزیه و تحلیل احساسات فقط فراتر از unigrams (یعنی کلمات منفرد) به نظر می رسند تا سعی کنند احساسات یک جمله را به عنوان یک کل درک کنند. این الگوریتم ها سعی می کنند آن را درک کنند
یک جمله غم انگیز است ، نه خوشحال ، به دلیل نفی. بسته های R شامل CorenLP (T. Aold and Tilton 2016) ، Clealp (T. B. Aold 2016) و Sentimentr (Rinker 2017) نمونه هایی از چنین الگوریتم های تجزیه و تحلیل احساسات هستند. برای اینها ، ما ممکن است بخواهیم متن را به جملات نشان دهیم ، و استفاده از یک نام جدید برای ستون خروجی در چنین حالتی منطقی است.
بیایید فقط به یک نگاه کنیم.
به نظر می رسد که نشانه های این جمله با متن رمزگذاری شده UTF-8 ، به ویژه با بخش های گفتگو ، کمی مشکل دارند. با نگارشی در ASCII بسیار بهتر عمل می کند. اگر این مهم باشد ، اگر این مهم باشد ، استفاده از iconv () ، با چیزی مانند iconv (متن ، به = "لاتین 1") در یک بیانیه جهش یافته قبل از عدم استفاده است.
گزینه دیگر در uest_tokens () تقسیم به نشانه ها با استفاده از الگوی Regex است. به عنوان مثال می توانیم از این استفاده کنیم تا متن رمان های جین آستین را به صورت فصل به یک قاب داده تقسیم کنیم.
ما تعداد صحیح فصل ها را در هر رمان (به علاوه یک ردیف "اضافی" برای هر عنوان رمان) بازیابی کرده ایم. در قاب داده Austen_Chapters ، هر سطر با یک فصل مطابقت دارد.
در نزدیکی آغاز این فصل ، ما از یک Regex مشابه استفاده کردیم تا بتوانیم جایی که تمام فصل ها در رمان های آستین برای یک قاب داده مرتب شده توسط یک کلمه در هر ردیف سازماندهی شده بودند. ما می توانیم از تجزیه و تحلیل متن مرتب استفاده کنیم تا سؤالاتی از قبیل منفی ترین فصل در هر یک از رمان های جین آستین بپرسیم؟ابتدا ، لیست کلمات منفی را از واژگان بینگ دریافت کنیم. دوم ، بیایید یک قاب داده ای از تعداد کلمات در هر فصل ایجاد کنیم تا بتوانیم طول فصل ها را عادی کنیم. سپس ، بیایید تعداد کلمات منفی را در هر فصل پیدا کنیم و بر اساس کل کلمات در هر فصل تقسیم کنیم. برای هر کتاب ، کدام فصل بالاترین نسبت کلمات منفی را دارد؟
این فصل هایی با غم انگیزترین کلمات در هر کتاب است که برای تعداد کلمات موجود در این فصل عادی شده است. در این فصل ها چه اتفاقی می افتد؟در فصل 43 حس و حساسیت ، ماریانا به طور جدی بیمار است ، نزدیک به مرگ ، و در فصل 34 غرور و تعصب آقای دارسی برای اولین بار پیشنهاد می کند (خیلی بد!). فصل 46 پارک منسفیلد تقریباً پایان است ، وقتی همه از زنا رسوایی هنری یاد می گیرند ، فصل 15 اما هنگام وحشت آقای التون پیشنهاد می کند ، و در فصل 21 نورتانگر ابی کاترین در اعماق خیال خود از قتل های گوتیک قتل و غیره است. فصل چهارم ترغیب زمانی است که خواننده فلاش بک کامل آن را که از کاپیتان ونتورث امتناع می ورزد و چقدر ناراحت بود و چه اشتباهی وحشتناک متوجه شد که این امر را درک کرده است.
2. 7 خلاصه
تجزیه و تحلیل احساسات راهی برای درک نگرش و نظرات بیان شده در متون فراهم می کند. در این فصل ، ما به بررسی چگونگی نزدیک شدن به تجزیه و تحلیل احساسات با استفاده از اصول داده مرتب پرداختیم. هنگامی که داده های متنی در ساختار داده مرتب قرار دارند ، تجزیه و تحلیل احساسات را می توان به عنوان یک عضو داخلی اجرا کرد. ما می توانیم از تجزیه و تحلیل احساسات استفاده کنیم تا درک کنیم که چگونه یک قوس روایی در طول دوره خود تغییر می کند یا چه کلماتی با محتوای عاطفی و افکار برای یک متن خاص مهم است. ما ادامه خواهیم داد تا جعبه ابزار خود را برای استفاده از تجزیه و تحلیل احساسات در انواع مختلف متن در مطالعات موردی خود بعداً در این کتاب توسعه خواهیم داد.
بازار رمزارزها...
ما را در سایت بازار رمزارزها دنبال می کنید
برچسب :
نویسنده : محمود کیانوش
بازدید : <-PostHit->
تاريخ : چهارشنبه
16 فروردين
1402 ساعت: 17:01