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

۱. مقدمه

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

۲. کارهای مرتبط

- انواع الگوریتم های تشخیص و توقیف هرزنامه:

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

- تشخیص بر اساس محتوا و کلمات:

این روش ساده ترین و رایج ترین راه برای شناسایی هرزنامه ها می باشد. اگر محتوای نامه های الکترونیکی و یا محتوای اجزای تشکیل دهنده ی وب سایت مانند عنوان ٬ فرا تگ ٬ لینک های موجود در صفحه و URL شامل کلمات خاصی باشند ٬ به عنوان هرزنامه شناسایی می شوند. هرزنامه نویسان اغلب از عبارات خاص و جذاب برای جلب توجه کاربران در نامه ی الکترونیکی یا وب سایت استفاده می کنند . کلماتی مانند free, Buy-Now, cheap, Satisfy-Me, Sex, Winner و..به همین دلیل هرزنامه نویسان کلمات مورد استفاده ی خود را دایم به شیوه های مختلف تغییر می دهند این تغییر مکرر باعث کاهش دقت می شود. برای رفع این مشکل به پایگاه داده بزرگتری جهت پوشش کلمات گوناگون نیاز داریم که جستجو و پردازش در این پایگاه داده باعث افزایش پیچیدگی زمانی می شود . از طرفی احتمال از دست رفتن نامه های الکترونیکی و یا وب سایت های واقعی و قانونی به علت استفاده ی مشروع از این کلمات نیز بالا می رود.

- تشخیص بر اساس رفتار هرزنامه:

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

هرزنامه نویسان برای فریب دادن ضد هرزنامه ها از اطلاعات غیر معتبر و نامربوط در فایل سرایند نامه ی الکترونیکی استفاده می کنند بدین سببب
در این روش اطلاعات فیلدها مانند: From, To, Date, Deliver-to, Received, Reteurn-Path بررسی می شوند و در صورت غیر معتبر یا نامربط بودن هر کدام از اطلاعات فیلدهای فایل سرایند درجه ی هرزنامه بودن نامه الکترونیکی را بالا می برد.

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

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

مقایسه و تعیین صحت این فایل ها بر اساساس قوانینی تعریف شده است ؛ که این قوانین تا حدی همه ی حالاتی که برای سنجش فیلد ها نیازمند است را تحت پوشش می دهد.و به ۲ بخش تقسیم شده اند: یک بخش برای سنجش فیلدهای هر کدام از فایل ها(سرایند و syslog) و بخش دیگر برای مقایسه هر فیلد از فایل سرایند با فایل sysylog ٬ این قوانین مواردی مانند تهی ٬ جعلی ٬ تصادفی و در قالب درست بودن فیلدهای ادرس و قالب ٬ زمان(اداری یا غیر اداری) فیلد تاریخ(Date) را شامل می شوند همچنین فیلدهایی که قرار است دو به دو با هم مقایسه شوند از نظر اینکه آیا دو فیلد در یک قالب درست آدرس یا زمان هستند؟مثلا اطلاعات فیلد FROM از فایل سرایند با اطلاعات فیلد FROM از فایل syslog در یک نامه الکترونیکی باید یکسان باشند.

- روش پیشنهادی:

روش مورد استفاده در این بخش شامل مراحل زیر می باشد:

۱)حذف کلمات بی ارزش

۲)ریشه یابی کلمات

۳)استخراج ویژگی ها

۴)کاهش ویژگی ها

۵)ساخت مدل

۱- حذف کلمات بی ارزش:

در ابتدا به منظور آزمایش روش پیشنهادی از پایگاه های اطلاعاتی استاندارد در زمینه تشخیص هرزنامه (enorm) استفاده می کنیم که شامل نامه های الکترونیک عادی و هرزنامه می باشد. داده های مورد بررسی ما داده های مورد استفاده در مقاله های معتبر علمی می باشد که در چند سال اخیر چاپ شده است. ما در ابتدا سعی بر آن داریم تا با انجام روش های متفاوت کلمات بی ارزش (and,the,or,in,…) را از متن نامه ها حذف کنیم.

۲- ریشه یابی کلمات:

بعد از حذف کلمات بی ارزش کلمات باقی مانده را ریشه یابی می کنیم و هدف این است که کلماتی که ریشه یکسانی دارند را یکسان در نظر بگیریم برای این منظور ما از الگوریتم های stemming استفاده می کنیم.

۳- استخراج ویژگی:

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

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

الگوی تکراری:

الگوی <SB<sb1,sb2,…,sbm در دنباله S نمونه ای از الگوی <P<e1,e2,…,en می باشد اگر و تنها اگر عبارت QRE زیر برقرار باشد:

عبارت e1 ; [-e1,e2,…,en];e2;…; [-e1,e2,…,en];en. : QRE

یک نمونه را با ۳ تایی (sidx , istart , iend) نمایش داده می شود که در آن sidx نشان دهنده شماره دنباله S در پایگاه داده اطلاعاتی می باشد و istart اندیس شروع و iend اندیس پایان زیر رشته در S می باشد . در حالت پیش فرض٬ تمامی اندیس ها از ۱ شروع می شود.

۴- کاهش ویژگی ها:

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

۵- ساخت مدل:

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

برای این منظور از نرم افزار weka و از الگوریتم Random Forest برای ساخت مدل استفاده میکنیم . و ارزیابی کارایی مدل ٬ نیز بر مبنای اعتبار سنجی صلیبی ۱۰ تایی می باشد.

لینک کد قرار داده شده بر روی github:

۳. آزمایش‌ها

۴. کارهای آینده

۵. مراجع

  • Liu, Bing, and Lei Zhang. "A survey of opinion mining and sentiment analysis." Mining Text Data. Springer US, 2012. 415-463.

  • Blanzieri, Enrico, and Anton Bryl. "A survey of learning-based techniques of email spam filtering." Artificial Intelligence
    Review 29.1 (2008): 63-92.

  • Chih-Hung Wu, “Beahavior-based detection using neural networks”, Expert Systems with Applications: An International Journal. Vol.36, Issue 3, pp4321-4330. April 2009.

  • J. G. Hidalgo, M. M. LÛpez, and E. P. Sanz, Combining text and heuristics for
    cost-sensitive spam filtering, in Proceedings of the Fourth Computational Natural Language
    Learning Workshop, CoNLL-2000, Lisbon, Portugal, 2000, Association for Computational
    Linguistics

  • G. Sakkis, I. Androutsopoulos, G. Paliouras, V. Karkaletsis, C. Spyropoulos,
    and P. Stamatopoulos, Stacking classifiers for anti-spam filtering of e-mail, in Proceedings
    of the 6th Conference on Empirical Methods in Natural Language Processing (EMNLP 2001),
    L. Lee and D. Harman, eds., Carnegie Mellon University, 2001, pp. 44ó50.

  • P. Pantel and D. Lin, Spamcop: A spam classification & organization program, in Learning
    for Text Categorization: Pap

  • محمد رزم آرا ٬ بابک اسدی ٬ مسعود نارویی ٬ منصور احمدی٬ سال ۱۳۹۱ ٬ ارایه یک روش نوین ترکیبی مبتنی بر چند فیلتر ٬ جهت افزایش قابلیت تشخیص هرزنامه ها سال ۲۰۱۲ ٬ دومین همایش ملی مهندسی کامپیوتر ٬برق و فناوری اطلاعات ٬دانشگاه آزاد اسلامی واحد خمین

http://www.civilica.com/copied/IP/20140224/2165969/208619c8e9c8a97bb2fb684ee1882f9e

http://arxiv.org/pdf/cs/0109015v1.pdf

  • Spam Filtering with Naive Bayes – Which Naive Bayes?

http://classes.soe.ucsc.edu/cmps242/Fall09/lect/12/CEAS2006_corrected-naiveBayesSpam.pdf

  • SVM-based Filtering of E-mail Spam with Content-specific Misclassification Costs

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.61.883&rep=rep1&type=pdf

رد شده

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

رد شده

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

محسن ایمانی

کار شما در این فاز در کل خوب بود، اما چند نکته وجود دارد که به آن باید بیشتر توجه نمایید:

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

  • شما باید روشی که آن را پیاده‌سازی کرده‌اید با روش‌های معمول ارزیابی، مثل precision و recall، و روی مجموعه داده استاندارد مورد ارزیابی قرار دهید.

  • توضیح نداده‌اید که چرا برای ساخت مدل خود از Random forest استفاده کردید و از Weka چگونه و در کجای پیاده‌سازی خود استفاده نمودید.

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

تایید شده

مشخص است تلاش زیادی برای انجام پروژه صورت گرفته و در کل به خوبی انجام شده است. تنها نکاتی که از روی حساسیت شخصی ناشی می‌شود بیان می‌کنم وگرنه از نظر من کار شما بسیار خوب می‌باشد.

قسمت روش پیشنهادی این را به خواننده القا می‌کند که روش را خودتان ابداع کرده‌اید، یا تغییری در آن اعمال کرده‌اید، اما روش ذکر شده document classification می‌باشد.

نکات مربوط به پیاده‌سازی:

بهتر بود اگر نتایج حاصل از پیاده‌سازی همچون دقت تشخیص هرزنامه‌ها هم اعلام می‌شد.
استفاده از یک کد استایل ثابت در طول برنامه باعث خوانایی بیشتر کد می‌شود و به آن زیبایی می‌بخشد. کد استایل رایج در پایتون PEP8 می‌باشد.
http://legacy.python.org/dev/peps/pep-0008/

در کد شما استفاده از weka که گفته بودید دیده نشد.

پایتون ابزارهای بسیار قوی برای پردازش متن ساختارمند دارد که استفاده از آن‌ها کار شما را بسیار راحت‌تر می‌کرد.

موفق باشید،