همان طور که در وبلاگ Victor Zhou اشاره شده است، برای شناسایی کلمات و عبارات توهین آمیز از مدل SVM استفاده شده است و برای اموزش مدل SVM ترکیبی از چند مجموعه آموزشی به کار رفته است که باز هم برای توضیحات بیشتر به پست مربوطه ارجاع می دهم . با توجه به اینکه من مجموعه ای آموزشی از پیامهای حاوی عبارات توهین آمز فارسی در اختیار نداشتم سعی کردم یک مجموعه اموزشی از توییتر جمع آوری کنم. برای اینکار با استفاده از کتابخانه tweepy یک مجموعه از کلمات و عبارات رکیک را سرچ کردم و توییت های حاوی این کلمات را جمع آوری کردم. ,ولی همانطور که می دانید تنها داشتن مجموعه ای از پیامهای حاوی عبارات توهین آمیز برای ساختن مجموعه آموزشی کافی نیست و باید نمونه منفی ( پیامهایی که حاوی عبارات توهین آمیز نباشند) هم داشته باشیم. برای جمع اوری نمونه های منفی و برای اینکه مطمئن باشم این توییت ها حاوی کلمات رکیک نیستند، توییت های چند اکانت که اطمینان داشتم از این ادبیات استفاده نمی کنند را استفاده کردم.
ابتدا تصمیم داشتم مجموعه داده ای که با این روش جمع آوری کرده ام را هم همراه با کد منتشر کنم. اما با این توضیحات و با توجه به اینکه نمی خواستم حریم خصوصی کاربرانی که از توییت های آنها استفاده کرده ام را پایمال کنم، تصمیم گرفتم کدی که برای جمع اوری مجموعه داده استفاده کرده ام را منتشر کنم. به این ترتیب هر کسی می تواند مجموعه اموزشی خودش را جمع آوری کند .
به جز مرحله جمع آوری داده، سایر مراحل نیاز به توضیح اضافی ندارد و با خواندن وبلاگ Victor Zhou مساله ای باقی نخواهد ماند. برای آموزش مدل از 80 درصد مجموعه آموزشی جمع آوری شده و برای تست از 20 درصد باقیمانده استفاده کردم . که پس از ارزیابی هم دقت و هم فراخوانی مدل به دست آمده بیش از 0.95 بود.
برای دریافت و مشاهده کد به اینجا مراجعه کنید.