علی رضانسب
علی رضانسب
خواندن ۲۳ دقیقه·۲ سال پیش

تحلیل و بررسی یک رویداد اجتماعی در توییتر


چکیده

نقش شبکه های اجتماعی امروز در زندگی ما کاملا مشهود است.روز به روز به تعداد کاربران شبکه های اجتماعی افزوده می‌شود در این مطلب ابتدا به اهمیت تحلیل شبکه های اجتاعی می‌پردازیم و سپس ابزارهای تحلیل توییتر را مورد بررسی قرار می‌دهیم و نقاط قوت هر یک از ابزار ها را بیان می‌کنیم . در انتها به تحلیل یک رویدداد اجتماعی که در طول زمان این پروژه در توییتر مورد بحث قرار گرفته است، می پردازیم. به روش های استخراج اطلاعات از توییتر را برای بررسی رویداد می‌پردازیم و با نوشتن برنامه پایتون و استفاده از گراف سعی میکنیم انجمن ها و دسته های مختلف افرادی که در این رخداد واکنش داشتند را شناساسی کنیم. در انتها نتایج پروژه با انجام تحلیل ارائه می‌کنیم .

کلمات کلیدی : تحلیل شبکه های اجتماعی - تحلیل توییتر - اسخراج اطلاعات از توییتر - تحلیل گراف

اگر جایی گنگ توضیح داده شده و نیاز بود توضیح بیشتری داده بشه یا انتقاد و پیشنهادی داشتید، خیلی خوشحال میشیم اون رو در نظرات با ما درمیون بزارید.

۱. مقدمه

شبکه های اجتماعی امروز به بخشی جدایی ناپذیر از زندگی ما تبدیل شده اند. تعداد کاربران آن پیوسته در حال افزایش است. تعداد کاربران فعالی که روزانه از توییتر استفاده می‌کنند، از ۵۴ میلیون در سال ۲۰۱۰ به نزدیک ۲۰۰ میلیون در سال ۲۰۲۱ رسیده است. در آمریکا کاربران بطور میانگین ماهانه ۱۵۸ دقیقه در توییتر وقت می‌گذرانند. جالب است بدانید ۹۲ درصد توییت ها صرفا توسط ۱۰ درصد کاربران ایجاد می‌شود. [1]اگرچه دسترسی به توییتر در ایران با محدودیت همراه است، اما تعداد کاربران فارسی زبان این شبکه اجتماعی در ایران در سال اخیر بصورت قابل توجه ای افزایش یافته است. بنابر نتایج مرکز پژوهشی بتا تعداد کاربران فارسی زبان توییتر از ۲ میلیون کاربر در سال ۱۳۹۹ به ۳.۲ میلیون در سال ۱۴۰۰ ، و تعداد توییت ها از ۵۰۰ میلیون به ۷۹۰ میلیون در مدت مشابه رسیده است. [2] این آمار مثال هایی جهت ارائه درک بهتر نسبت به میزان رشد تعداد کاربران و داده های شبکه های اجتماعی در سال های اخیر می‌باشد.

در دهه اخیر همواره نام توییتر با فعالیت های اجتماعی و سیاسی پیوند خورده است. . این رسانه اجتماعی بصورت گسترده مورد توجه سیاستمداران و دیپلمات ها قرار گرفته است و به بستری جهت انعکاس نظرات و سخنان ها تبدیل شده است. استفاده از این زیرساخت نوع جدیدي از دیپلماسی را با عنوان «توئیپلماسی» به وجود آورد. بررسی تاثیرگذاری اجتماعی توییتر بصورت گسترده ای مورد توجه پژوهشگران و محققان قرار گرفته است.

برای تبیین بهتر تاثیر متقابل رخداد های اجتماعی و سیاسی با توییتر میتوانیم نگاهی کلی به روند انتشار توییت فارسی در سال ۱۴۰۰ بیندازیم :

بررسی روند انتشار محتوا در توییتر فارسی در سال ۱۴۰۰ [3]
بررسی روند انتشار محتوا در توییتر فارسی در سال ۱۴۰۰ [3]


همانطور که مشهود است رخداد های اجتماعی و سیاسی تاثیر غیر قابل انکاری در میزان انتشار محتوا و فعالیت کاربران در توییتر دارد.

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


۲. فعالیت های پیشین

با افزایش فعالیت شبکه های اجتماعی محققان و گروه ها و مجموعه های بسیاری به تحلیل محتوای توییتر روی آورده اند. بطور کلی این تلاش ها را به سه دسته کلی میتوان تقسیم کرد :

۱. تحقیقاتی که تاثیر متقابل شبکه اجتماعی بر روی جامعه و سیاست، تشخیص حساب های جعلی، روش های متخلف داده کاوی بر روی شبکه های اجتماعی و ... بررسی کرده اند.

۲. برنامه هایی که موضوعات مربوط حساب ها رو مورد بررسی قرار می‌دهند.

۳. مجموعه ها و شرکت هایی که بر روی کلان داده های یک موضوع یا یک ناحیه جغرافیایی تحلیل و بررسی انجام می‌دهند.

۲-۱ بررسی تحقیقات انجام شده بر روی تحلیل توییتر

در دسته اول بسیاری از محققان به تاثیر توییتر در جامعه و رخداد ها مورد تحلیل و بررسی قرار داده اند، بیشترین این دست مقالات جامعه و سیاست آمریکا را پوشش می‌دهند مقاله ی Twitter use by the U.S. Congress نوشته Jennifer Golbeck و همکاران با بررسی بیش از ۶ هزار توییت اعضای کنگره آمریکا و تاثیر آن ها مورد توجه قرار داده است.[4] از این دست آقای قربانی شیخ نشین در مقاله ای به تاثیر توییتر بر روی میزان محبوبیت ترامپ از قبل تا پایان ریاست جمهوری وی پرداخته است.[5]. همچنین آقای مهدی بیگدلو در دانشگاه خوارزمی با انجام تحقیقات با انجام نظر سنجی های مختلف به تاثیر توییتر بر فرهنگ سیاسی استادان دانشگاه های شهر بزرگ ایران پرداخته اند.[6] بخشی دیگر از تحقیقات در حوزه تشخیص حساب های جعلی در توییتر و شبکه های اجتماعی بوده است. برای نمونه در مقاله آقای Sirivianos و همکارنشان در دانشگاه دوک با استفاده از الگوریتم پیاده روی تصادفی راهی کمک به شناسایی حساب های جعلی در مقاله پیشنهاد دادند . این روش مبتنی بر ایجاد گراف شبکه اجتماعی بود . نیازمند ان است تا ما شبکه ی اجتماعی را در اخیتار داشته باشیم و مناسب توسعه دهندگان است. [7] در دسته دیگر برخی محققان تلاش کرده اند تا با استفاده از ویژگی های حساب ها، حساب های جعلی را تشخیص دهند. در ، ویژگی‌های مختلفی را از نمایه، شبکه اجتماعی و محتوای یک حساب استخراج می‌کنند. رویکرد های یادگیری ماشین با نظارت با استفاده از داده های از قبل مشخص شده برای یادگیری استفاده می‌کنند تا بتوانند بین حساب های جعلی و قانونی تمایز قائل شوند. رویکرد های با نظارت عموما از روش های طبقه بندی (Classification) شناخته شده ای مانند جنگل تصادفی ( Random Forest)، SVM و KNN استفاده می‌کنند. [8]

۲-۲ بررسی ابزار های ساخته شده برای تحلیل توییتر

۲-۲-۱ مقدمه

در دسته دوم ابزار و برنامه هایی قرار دارند که به تحلیل حساب توییتری و محتوای کلی توییتر می‌پردازند.

شناخت این ابزار ها از این جهت مورد اهمیت است که شناخت معیار ها و متریک هایی که این ابزار ها برای تحلیل توییتر استفاده می‌کنند، میتواند دید خوبی در رابطه با تحلیل توییتر به ما بدهد. همچنین شناخت تفاوت ها و امکاناتی هر یک از این ابزار میتواند در پروژه های تحلیل توییتر و فیلتر کردن موضوعات، تاریخ و ... بسیار مفید باشد.

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

ابزار های رایگان :

Twitter Analytics - TweetDeck - Tweriod - Twitter List - Strawberryj.am

ابزار های اشتراکی

Twitonomy - SocialPilot - Tweepi - TweetReach - Tweepsmap - GroupTweet - Twilert - Bluenod-SocialOomph

ابزار های ایرانی :

لایف وب - زلکا - نوین هاب


۲-۲-۲ مروری بر قابلیت کلیدی برخی از ابزار ها

Twitter Analytics :

این ابزار در قالب یک افزونه توسط شرکت توییتر ارائه می‌شود . این ابزار قابلیت های جامعی درخصوص رفتار حساب میزان مشاهده، لایک، فالور های حساب و مقایسه ان با دوره های مختلف را میدهد. این ابزار برای بررسی تاثیر توییت ها از معیار های ایمپرشن‌ها (Impressions) و مشارکت (Engagements) استفاده می‌کند.


Twitter List :

قابلیت کلیدی این ابزار دسته بندی مخاطبین بر اساس سلایق آنها است. با کمک آن میتوان با توجه مخاطبین و فراوانی دسته ها، محتوای تخصصی ایجاد کرد .

Tweriod :

نقطه مثبت این ابزار بررسی و تحلیل ۲۰۰ توییت اخیر دنبال کنندگان‌ حساب و پیشنهاد بهترین زمان توییت برای کاربران است.

TweetDeck :

این ابزار هم متلق به شرکت توییتر است و قابلیت کلیدی که میتوان در آن اشاره کرد، انجام جستجوهای دلخواه بر اساس کلمه، تاریخ، زمان است.

Twilert :

یکی از ابزار های غیررایگان محبوب در برند های تجاری است که هنگامی که در توییتر نام تجاری، کلمه کلیدی یا هشتگی از پیش تعیین شده استفاده شود، از طریق ایمیل به حساب اطلاع داده می‌شود.

SocialOomph :

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

Strawberryj.am :

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

TwitterCounter :

قابلیت کلیدی این ابزار ، تحلیل و ارائه گراف های پایه در خصوص دنبال کنندگان و توییت ها است.


MentionMapp :

این ابزار با استفاده از گراف و بصورت بصری حساب های افرادی که بیشترین تعامل را دارند را نمایش می‌دهد. به کمک گراف میتوان بیشترین تعامل حساب ها و زمان آن ها را تشخیص داد .

Twitonomy :

این ابزار در ارائه آمار تجمیعی و تفکیکی عملکرد مطلوبی دارد. اطلاعاتی نظیر اینکه چه ساعاتی بیشتر از همه دنبال کنندگان فعالیت می‌کنند میزان فعالیت آنها و نسبت ریتوییت به توییت و ..

دسته سوم را سایت هایی تشکیل می‌دهند که محتوای کلی و موضوعات داغ را تحلیل می‌کنند، و لزوما اطلاعات مربوط به یک حساب را بررسی نمی کنند. برخی از این وب سایت ها تحلیل خود را معطوف به موضوعات داغ و ترند ها کرده اند از جمله این ابزار ها می‌توان به موارد زیر اشاره کرد :

RiteTag - Tagboard - Hashtagify

سایت Trendsmap سعی می‌کند در هر لحظه ترند ها را بر اساس موقعیت مکانی نمایش دهد:‌

سایت trendsmap در تاریخ ساعت ۲ بعد از ظهر ۲۴ تیر ماه ۱۴۰۱
سایت trendsmap در تاریخ ساعت ۲ بعد از ظهر ۲۴ تیر ماه ۱۴۰۱


۲-۲-۳ شرکت های ایرانی فعال در این حوزه

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

۲-۲-۳-۱ مرکز پژوهشی بتا

مرکز پژوهشی «بِتا»، (بررسی و تحلیل اطلاعات) به تحلیل داده های با کمک هوش مصنوعی می پردازد. این مرکز با سازمان دولتی و خصوصی بسیاری همکاری کرده است. در شکل زیر نمونه از گرازش های را می بینید.

روند انتشار محتوا در اینستاگرام فارسی - نمونه ای گزارش مرکز پژوهشی بتا
روند انتشار محتوا در اینستاگرام فارسی - نمونه ای گزارش مرکز پژوهشی بتا


۲-۲-۳-۲. اندیشکده تحلیلی دیتاک

http://beta-co.ir/#
تحلیل افکار عمومی بعد از موج گرانی پس از آزادسازی قیمت ها - نمونه ای از گزارش دیتاک
تحلیل افکار عمومی بعد از موج گرانی پس از آزادسازی قیمت ها - نمونه ای از گزارش دیتاک


https://iranthinktanks.com/dataak-analiticaa/

۲-۲-۳-۳. لایف وب

لایف وب شرکتی دانش بنیان است با تجربه بیش از ۱۰ سال است که کلان داده‌ شبکه‌های اجتماعی، وبسایت‌ها و رسانه‌های چاپی را جمع‌آوری می‌کند و با پردازش مبتنی بر هوش مصنوعی، تحلیل کمی و کیفی آن به مشتریان ارائه می‌کند.

داغ ترین رخداد های شبکه های اجتماعی در بهار ۱۴۰۱ - نمونه گزارش از لایف وب
داغ ترین رخداد های شبکه های اجتماعی در بهار ۱۴۰۱ - نمونه گزارش از لایف وب


https://lifewebco.com/

۲-۲-۳-۴.زلکا

زلکا یک شرکت دانش بنیان ایرانی است که یک پلتفرم رصد، تحلیل، انتشار و مدیریت رسانه‌ها و شبکه‌های اجتماعی ارائه می دهد

میزان پاسخگویی پر منشن ترین برند های در توییتر فارسی - نمونه ای از گزاش زلکا
میزان پاسخگویی پر منشن ترین برند های در توییتر فارسی - نمونه ای از گزاش زلکا


https://zelkaa.com/




۳. اصطلاحات رایج در شبکه های اجتماعی - ادبیات موضوع

در شبکه های اجتماعی اطلاعات منتشر شده توسط کاربران دارای ویژگی ها و اصطلاحات مشترکی وجود دارد که برای تحلیل و بررسی شبکه های آشنایی با آنها لازم است از این رو در ادامه به بررسی اصطلاحات شبکه های اجتماعی می‌پردازیم:

۳-۱. نمایه :

نمایه (Profile) صفحه‌ای است که برای کاربر پس از عضویت در شبکه‌های اجتماعی ایجاد می‌شود تا بتواند خود را به دیگران معرفی کند. این صفحه شامل: آواتار يا عكس کاربر، بیوگرافی، علاقه‌مندی‌های او، مطالبی که به‌روز کرده، فهرست دوستان و... بوده و برای سایر کاربران قابل دسترسی است. در برخی از شبکه‌های اجتماعی، اعضا قادرند تنظیمات نمایه خود را به گونه‌ای انجام دهند که اطلاعات آنها به صورت عمومی یا خصوصی قابل دیدن باشد؛ بدین صورت که فقط اعضایی که در فهرست دوستان کاربر حضور دارند، قادر باشند نمایه او را ببینند، در اکثر موارد تنظیمات به گونه ای است که تمام اعضای آن شبکه اجتماعی قادر به دیدن موارد موجود در نمایه باشند و یا حتی از طریق جستجو در موتورهای جستجوگر نیز بتوان اطلاعات او را مشاهده کرد.

۳-۲. آواتار (تصویر نمایه) :

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

۳-۳. پسند (Like) :

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

۳-۴. رابطه دوستی(friendship relation):

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

۳-۵. دنبال کننده (Follower):

در یک شبکه اجتماعی به حساب هایی که فعالیت های یک حساب را دنبال می‌کنند دنبال‌کننده های آن کاربر می‌گویند .

۳-۶. دنبال شونده (Following):

در یک شبکه اجتماعی به حساب هایی که کاربر فعالیت آنها ها را دنبال می‌کنند دنبال‌شونده های آن کاربر می‌گویند .

۳-۷. بلاک کردن (Block):

به زمانی اطلاق می‌شود که حسابی نمی‌خواهد شخصی برای او یادداشت یا پیغامی بفرستد یا برای مطالب آن نظر بگذارد. در این حالت، شخص را اصطلاحا بلاک می‌کند. همچنین مدیران شبکه‌ها از این ابزار برای کنترل کاربران، قطع دسترسی آنان به قسمتی از پايگاه و یا اخراج کاربران خاطی از پايگاه شبكه اجتماعي استفاده می‌کنند.

۳-۸. نظر (Comment) :

کاربران در شبکه اجتماعی این قابلیت را دارند تا نسبت به فعالیت یک حساب بازخورد نشان دهند. در اکثر موارد این شبکه ها اجازه میدهند افراد نسبت به پست یا پیام نظر خود را بنویسند. البته بعضی از برنامه های به حساب کاربری اجازه میدهند قسمت نظرات برای پست و فعالیت های خود ببندند.

۳-۹. بازارسال (retweet):

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

۳-۱۰. خوراک (Feed):

خوراک راهی است برای دسترسی به مطالب نظیر وبلاگ‌ها، سایت‌ها و يا خبرگزاری‌ها؛ بدون نیاز به باز کردن سایت مورد نظر است. وقتی فید یک پايگاه اينترنتي را دنبال شود، با هر بار به روز شدن آن سایت، سرخط و تیتر مطالب منتشر شده نمایش داده شده و به‌راحتی می‌توان کل مطالب مورد علاقه را مطالعه کرد. اکنون فیدها یکی از اجزای جدانشدنی سایت‌ها و شبکه‌های اجتماعی هستند و کاربران بسیاری با دنبال کردن مطالب خود از طریق فید، به‌سرعت و به‌آساني در دنیای اینترنت فعالیت می‌کنند.

۳-۱۱. برچسب (تگ) (Tag):

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

۳-۱۲ # (هشتگ )(Hashtag) :

این نشانه که به آن Hashtag گفته می‌شود، هنگامي توسط کاربران شبکه‌های اجتماعی استفاده می‌شود که بخواهند نوشته خود را به دسته‌بندی خاصی تگ کنند. بدین ترتیب، وقتي کاربری در آن شبکه لغت مورد نظر شما را جستجو کرد، مطلب تگ‌شده شما نیز جزء نتایج جستجو آورده خواهد شد. همچنین در بسیاری از برنامه ها تعداد هشتگ های یک کلمه شمارش می‌شود و از آن برای مسئله داغ یا ترند در آن شبکه استفاده می‌شود. به همین دلیل کاربران یک شبکه اگر بخواهند عبارت یا موضوعی را در شبکه ترند کنند یک هشتگ مربوط به اون موضوع را منتشر می‌کنند.

۳-۱۳. لرکر :

لِرکِر در فرهنگ اینترنت به شخصی گفته می‌شود که در اجتماعات آنلاین به مشاهده نوشته‌ها و آثار دیگران می‌پردازد ولی خود به‌طور فعال در فعالیت‌ها شرکت نمی‌کند. لرکرها جمعیت زیادی را در جوامع آنلاین به خود اختصاص می‌دهند. لِرکِر بودن به شخص اجازه می‌دهد تا به بررسی اجتماع مورد نظر بپردازد و قبل از فعالیت در آن به قواعد و ویژگی‌های شرکت در آن اجتماع آگاه شود. اگرچه عدم روابط اجتماعی در لِرکِرها می‌تواند به تنهایی و انزوای آنها منجر شود.

۳-۱۴. کاربر

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

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




۴. جمع آوری داده ها

برای اینکه بتوانیم داده ها را از توییتر دریافت کنیم در وهله اول باید راهی برای جمع آوری داده های مورد نظر برای پروژه پیدا کنیم. بطور کلی راه های جمع آوری داده ها را میتون به دو بخش تقسیم کرد :

۴-۱ استفاده از مجموعه داده های آماده توییتر

برای کاربرد های مختلف و مطالعات دیتاست های آماده در اینترنت قرار گرفته است که محققان میتوانند تحقیقاتشان بر روی آن ها انجام دهند. چند نمونه از این وب سایت ها که میتوانید در آن دیتاست های آماده توییتر را پیدا کنید در زیر آورده ایم :

https://data.world/datasets/twitter
https://www.kaggle.com/
https://imerit.net/blog/top-25-twitter-datasets-for-natural-language-processing-and-machine-learning-all-pbm/


۴-۲ جمع آوری داده با توجه به نیازهای مخصوص پروژه

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

۴-۲-۱ دریافت اطلاعات با استفاده از API توییتر

اما متاسفانه در چند سال اخیر دریافت API از توییتر بسیار سخت تر شده است. برای دریافت API توییتر نیاز است در حساب کاربری خود منو توسعه دهندگان دلایل نیاز و استفاده از API توییتر کاملا شرح دهید. پاسخ های داده شده توسط توییتر اعتبار سنجی می‌شود و نتیجه به ایمیل شما ارسال خواهد شد.

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

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

اگر توانستید به پرتال توسعه دهندگان توییتر درسترسی پیدا کنید . در مرحله بعد باید برای هر برنامه که میخواهید از این API استفاده کنید شک APP ایجاد کنید. هر حساب میتواند ۱۰ APP را ایجاد کند. بعد از احراز هویت و تعیین حساب کاربری برای استفاده، به شما یک توکن و کلید برای حساب کاربری به نام های access_token و access_token_secret داده می‌شود. همچنین برای هر APP در دو مقدار ConsumerKey و ConsumerSecret ساخته می‌شود که میتوانید از آنها برای دسترسی به API استفاده کنید.

حالا وقت آن رسیده است که به کمک این توکن ها به API توییتر متصل شویم و شروع به جمع آوری داده ها کنیم :

برای استفاده از API توییتر در پایتون میتوانیم از کتابخانه Tweepy استفاده کنیم ‍‍

import tweepy consumer_key = &quotconsumer_key&quot consumer_secret = &quotconsumer_secret&quot access_token = &quotaccess_token&quot access_token_secret = &quotaccess_token_secret&quot auth = tweepy.OAuthHandler(consumer_key, consumer_secret) auth.set_access_token(access_token,access_token_secret) api = tweepy.API(auth)

با دریافت شی api میتوانیم مطابق نیازمان از آن استفاده کنیم برای نمونه میتوانیم توییت های تایملاین را نمایش دهیم

public_tweets = api.home_timeline() for tweet in public_tweets: print(tweet.text)

میتوانیم تعداد دنبال کنندگان حساب و نام هر یک از دنبال کنندگان را استخراج کنیم.[10]

user = api.get_user(screen_name='twitter')
print(user.followers_count) for friend in user.friends(): print(friend.screen_name)

۴-۲-۲ استفاده از ابزار های شخص ثالث بجای استفاده از API توییتر

اگر نتوانستید به API توییتر دسترسی پیدا کنید نگران نباشید چراکه ابزار هایی وجود دارند که میتوانند معمولا نیاز های ما را پاسخ دهند.ابزار های متفاوتی برای دریافت داده های وجود دارند و از جمله آنها، کتابخانه های پیشرفته برای دریافت داده ها بدون نیاز به API کتابخانه twint است. مزیت اصلی این کتابخانه عدم محدودیت در دریافت توییت ها و سادگی آن است. [11]

https://github.com/twintproject/twint

در آدرس بالا میتوانید به کد ها ، طریقه نصب، قابلیت ها و موارد استفاده از آن را مشاهده کنید.




۵. پیاده سازی

در ادامه قصد داریم یک رویداد اجتماعی که در مدت زمان نوشتن این مقاله در شبکه توییتر ترند شده است را داده ها را استخراج و سپس مورد بررسی و تحلیل قرار دهیم. غالب محتوای این پروژه در بهار ۱۴۰۱ در حال انجام بوده است بنابراین نگاهی به گزارش لایف وب (یکی از سایت تحلیل محتوای توییتر فارسی که پیش از این معرفی شد)در خصوص پر تکرار ترین هشتگ های این بهار ۱۴۰۱ می‌اندازیم:

پرتکرار ترین هشتگ ها بر اساس تعداد کاربران استفاده کننده در بهار ۱۴۰۱ [9]
پرتکرار ترین هشتگ ها بر اساس تعداد کاربران استفاده کننده در بهار ۱۴۰۱ [9]

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

ابتدا باید در مرحله اول داده های مورد نیاز خود را استخراج کنیم برای اینکار از کتابخانه twint ااستفاده می‌کنیم.

https://gist.github.com/arnasab/d318baba08f5b1043d2aea94dcb9fba4

با استفاده از کد بالا توییت هایی که در آن واژه سلام فرمانده به کار رفته است را نمایش می‌دهیم

نتیجه خروجی با فرمت csv ذخیره می‌شود نتیجه به صورت مشابه است :

بخشی از خروجی ایجاد شده -قسمت اول
بخشی از خروجی ایجاد شده -قسمت اول
بخشی از خروجی ایجاد شده بخش دوم
بخشی از خروجی ایجاد شده بخش دوم

نکته : ممکن است ابزار twint در استخراج توییت های ماه های قبل به خوبی عمل نکند برای عملکرد بهتر ، باید بازه زمانی را به بخش های کوچکتر تقسیم کرد و نتایج آن را ترکیب کرد.

در ادامه باید ستون هایی که لازم نداریم را حذف کنیم. در مرحله بعد باید در فایل پایتون باید داده ها را بخوانیم و سپس تبدیل به گراف کنیم. برای این کار از کتابخانه networkX استفاده می‌کنیم . کتابخانه networkX یکی از ابزار ها جهت تحلیل گراف در زبان پایتون است. [11]

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

گره ها : حساب های کاربری های نسبت به این رخداد واکنش داشتند. (واکنش یعنی اگر در این رخداد توییت زدند یا توییتی در این زمینه ریتویت و کوت یا ریپلای کرده باشند )

یال ها : بر اساس نوع ارتباط میان گره ها میان آن ها یال با وزن مشخص ایجاد می شود.

وزن یال ها : در اینجا برای هر مشارکت یک وزنی در نظر گرفته می‌شود مجموع تعامل میان دو حساب وزن یال در نظر گرفته می شود .

reply = 2 , qoute = 3 , retweet = 5

فرض کنید حسابی توییت حساب دیگر را رپلای کند میان این دو حساب یال با وزن ۲ ایجاد می‌شود.اگر علاوه بر آن توییت را اگر علاوه بر آن توییت ریتوییت کند به وزن قبلی یال ۵ مقدار اضافه میشود . دلیل اصلی این مدل وزن دهی ایسنت که در انتها برای تشخیص انجمن ها، هدف ما اینست که افرادی در یک انجمن قرار گیرند که از نظر فکری مشابه باشند. و به نظر میرسد اگر حسابی، حساب دیگری را ریتوییت کند احتمال بالا این دو در این رخداد مورد بررسی هم نظر باشند بسیار زیاد است. کد زیر برای هر رابطه ایجاد شده میان حساب وزن محاسبه می‌شود.

https://gist.github.com/arnasab/22942dbfcd15f4d0ddd9465615e12a4a

در کد های بالا برای هر رابطه تابع claculated_weight فراخوانی میشود و وزن یال های آن محاسبه می‌شود.

https://gist.github.com/arnasab/884fd261d3ea9a2189bea605deaaae3d


در ادامه باید گراف را ایجاد کنیم. ویژگی هایی که برای گره ها نیاز است نگه داریم را تعیین کرده ایم. با استفاده از تابع DiGraph یک گراف جهت دار خالی ایجاد کردیم در ادامه با استفاده از تابع add_nodes_fromتمام گره ها را اضافه می‌کنیم. همچنین با تابع add_weighted_edges_from لیست یال های وزن دار که در کد قبل محاسبه شده بود را به گرافمان اضافه می کنیم.

در انتها میتوانیم از الگوریتم های تشخیص انجمن ها برای دسته بندی داده هایمان استفاده کنیم . در اینجا از الگوریتم تشخیص اجتماعات LPA استفاده کردیم . با استفاده از دستور زیر تشخیص انجمن ها بر اساس الگوریتم LPA بر روی گراف انجام می‌شود. نتایج بصورت لیست در شی communities ذخیره شده است.

communities = list(nx.algorithms.community.asyn_lpa_communities(G,weight=&quotweight&quot))


تعداد اندازه لیست communities تعداد انجمن های تشخیص داده شده را نشان می‌دهد. هر عضو این لیست خود لیستی است که شامل تمام گره های آن لیست است.

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




۶. نتایج

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

با جمع آوری داده ابتدا نگاهی به این نتایج جمع آوری شده بیندازیم :

در داده های ما از ۲۴ زبان مختلف داده جمع آوری شد . که از این بین بیشترین سهم برای زبان فارسی و عربی بود.

زبان های استفاده شده در داده جمع آوری شده
زبان های استفاده شده در داده جمع آوری شده


در خوشه های ایجاد کاربران عرب زبان هم خوشه بندی شده بودند. با نگاهی کاربران هر خوشه میتوان خوشه های فارسی را به سه دسته مثبت منفی و خنثی تقسیم کرد.

تعداد اعضای خوشه ها بصورت زیر است :

تفکیک بر اساس خوشه بندی
تفکیک بر اساس خوشه بندی


بسیار جالب است اگر به خوشه منفی نگاه کنیم، عملکرد آن ها بیشتر دهه اول خرداد ماه بوده است. دقیقا زمانی که حادثه دلخراش متروپل رخ داد. بیشترین نظرات منفی علیه این شعر در این زمان بوده است نگاهی به تفکیک واکنش در طول بازه ۲ خرداد تا ۸ خرداد را نمایش می‌دهد.

میزان توییت های هر خوشه در بازه ۲ خرداد تا ۸ خرداد
میزان توییت های هر خوشه در بازه ۲ خرداد تا ۸ خرداد



۷. جمع بندی

در این مطلب سعی کردیم ابتدا اهمیت تحلیل شبکه های مجازی در زمان فعلی بررسی کنیم. سپس نگاهی به آمار توییتر انداختیم و تحقیقات و برنامه های ایجاد شده جهت تحلیل توییتر پرداختیم و آن ها را دسته بندی کردیم . در ادامه بصورت مختصر با ابزار هایی که میتوانند در تحلیل توییتر به ما کمک کنند آشنا شدیم و نقاط مثبت هر یک را بیان کردیم. در ادامه به اصطلاحات رایجی که در شبکه توییتر استفاده می‌شود و دانستن آن برای فهمیدن مطلب لازم بود را بیان کردیم. در ادامه به راه های جمع آوری داده از توییتر پرداختیم و یک موضوع داغ در طول این پروژه را داده های آن را جمع آوری کرده و با ایجاد گراف به کمک کتابخانه NetworkX آن ها را دسته بندی کردیم و نتایج را گزارش کردیم .

امیدوارم این مطلب براتون مفید بوده باشه اگه نظری داشتید لطفا در قسمت نظرات بگید. ممنون از وقتی که گذاشتید و این مطلب را تا اینجا خوندید.

۸. منابع

[1]

https://backlinko.com/twitter-users

[2]

https://fa.shafaqna.com/news/1174009/%D9%85%D8%AD%D8%A8%D9%88%D8%A8%E2%80%8C%D8%AA%D8%B1%DB%8C%D9%86-%D9%88-%D9%BE%D8%B1%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87%E2%80%8C%D8%AA%D8%B1%DB%8C%D9%86-%D8%B4%D8%A8%DA%A9%D9%87%E2%80%8C%D8%A7/


[3]

http://beta-co.ir/%d8%a8%d8%b1%d8%b1%d8%b3%db%8c-%d8%b1%d9%88%d9%86%d8%af-%d8%a7%d9%86%d8%aa%d8%b4%d8%a7%d8%b1-%d9%85%d8%ad%d8%aa%d9%88%d8%a7-%d8%af%d8%b1-%d8%aa%d9%88%db%8c%db%8c%d8%aa%d8%b1-%d9%81%d8%a7%d8%b1%d8%b3/


[4]

https://onlinelibrary.wiley.com/doi/10.1002/asi.21344


[5]

https://qpss.atu.ac.ir/article_13650.html

[6]

https://nms.atu.ac.ir/article_8498.html


[7] Q. Cao, M. Sirivianos, X. Yang, and T. Pregueiro, “Aiding the detection of fake accounts in large scale social online services,” in Presented as part of the 9th {USENIX} Symposium on Networked Systems Design and Implementation ({NSDI} 12), 2012, pp. 197–210

[8] K.-C. Yang, O. Varol, P.-M. Hui, and F. Menczer, “Scalable and generalizable social bot detection through data selection,” in Proceedings of the AAAI Conference on Artificial Intelligence, vol. 34, no. 01, 2020, pp. 1096–1103.

[9]

https://lifewebco.com/%D8%AA%D8%AD%D9%84%DB%8C%D9%84-%D8%AF%D8%A7%D8%AF%D9%87-%D8%AA%D9%88%DB%8C%DB%8C%D8%AA%D8%B1/


[10]

https://docs.tweepy.org/en/stable/#

[11]

https://github.com/twintproject/twint


[12]

https://networkx.org/





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