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

۱. مقدمه

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

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

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

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

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

این روش ساده ترین و رایج ترین راه برای شناسایی هرزنامه ها می باشد. اگر محتوای نامه های الکترونیکی و یا محتوای اجزای تشکیل دهنده ی وب سایت مانند عنوان ٬ فرا تگ ٬ لینک های موجود در صفحه و 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 می باشد . در حالت پیش فرض٬ تمامی اندیس ها از ۱ شروع می شود.

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

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

۵- ساخت مدل:

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

۳. آزمایش‌ها

۱- مجموعه داده و ویژگی های استخراج شده:

نکات قابل توجه:

  • فایلی که شامل ایمیل هاست در کد به نام DOCUMENT فراخوانی می شود و هر ایمیل داخل فایل با تگ باز <BODY > شروع شده و با تگ بسته <BODY/> تمام می شود.

  • خروجی شامل ایمیل هایی است که هرزنامه تشخیص داده شده اند و به ترتیب میزان ویژگی هرزنامه بودن هر ایمیل(ایمیل های اول ویژگی هرزنامه

بودن بیشتری را دارند) نشان داده شده است.

  • برای اجرای برنامه ابتدا دو تابع ()write_start_unmergefile و ()main_dictionary را اجرا کرده تا فایل های مورد نیاز ساخته شده و سپس این

دو تابع را کامنت کرده و تابع ()input_query را اجرا کرده تا خروجی را مشاهده کنید.

۲- ارزیابی کارایی مدل:

در سیستم پیشنهادی برای سنجش کارایی مدل از معیارهای Accuracy و Precision و Recall و Fmeasure استفاده شده است در زیر

خلاصه ای از مهمترین فرمول ها و معیارهای ذکر شده است:

Accuracy Precision Recall Fmeasure
TP+TN / TP+FP+TN+FN TP / FP+TP TP / FN+TP 2Recall.Precesion / Recall+Precesion
  • معیار prescision نسبت تعداد پیام هایی است که به درستی دسته بندی شده اند و از دسته های هرزنامه هستند به تعداد کل پیام های شناسایی شده به عنوان هرزنامه.

  • معیار recall نسبت تعداد کل پیام های شناسایی شده به عنوان هرزنامه به تعدا د کل پیام هایی است که واقعا جزء دسته هرزنامه ها می باشند.

  • معیار accuracy نسبت تعداد هرزنامه ها و ایمیل های درست تشخیص داده شده به تعداد کل هرزنامه ها و ایمیل هایی که وجود دارند.

  • معیار fmeasure ترکیبی از recall و precision است.

در ادامه , برای بررسی دقت عملکرد روش پیشنهادی , از معیارهای بالا بر روی یک نمونه پایگاه داده اطلاعاتی استفاده می شود:

  • نتیجه ی کد به ازای نمونه فایل ورودی:

Accuracy Precision Recall Fmeasure
0.63 0.42 2 0.69

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

۵. مراجع

  • 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://www.civilica.com/copied/IP/20140223/2162060/b4f8b08d0b6ea11dec2032009c7cc509

  • Boosting Trees for Anti-Spam Email Filtering
    Xavier Carreras and Llu's Marquez, TALP Research Center, LSI Department, Universitat Politecnica de Catalunya (UPC), Jordi Girona Salgado 1–3,Barcelona E-08034, Catalonia

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

  • M. Brown, W. N. Grundy, D. Lin, N. Cristianini, C. Sugnet, M. Ares, and .D Haussler, Support vector machine classification of microarray gene expression data, Tech. Report UCSC-CRL-99-09, University of California, Santa Cruz, 1999

  • S. Dumais, J. Platt, D. Heckerman, and M. Sahami, Inductive learning algorithms
    and representations for text categorization, in Proceedings of 7th International Conference on
    Information and Knowledge Management, 1998, pp. 229ó237.

  • Cisco 2008 Annual Security Report

۶. پیوندهای مفید

رد شده

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

رد شده

با عرض سلام و خسته نباشید خدمت شما
پروژه تون نقاط قوت زیادی داره اما چند تا نقطه ضعف هم داره:

  1. چند غلط املایی در متن دیده میشه.

  2. بهتر بود اسم روش پیشنهادی تون رو هم ذکر می کردید.

  3. بهتر بود روش پیشنهادی تون رو با جزئیات بیشتری توضیح می دادید تا قابل درک تر می شد. مثلاً بهتر بود الگوریتم stemming ی رو که استفاده کردید توضیح می دادید.
    اما چون تو این بخش باید آزمایش ها رو انجام می دادید و به نظرم روی این بخش هم خیلی خوب کار کرده اید من نمره ی کامل رو به شما میدم.

رد شده

توضیح شما در مورد این پروژه چرا بجای این صفحه باید درون یک پی دی اف در یک جای دیگر باشد؟؟

علیرضا نوریان
  • اعدادی که برای سنجش کار گزارش کردید، روی چه داده‌هایی آزمایش شده‌اند؟

  • توضیح خط به خط کد چندان اهمیتی ندارد برای مخاطب.

  • به نظر می‌رسد در کار شما اصلا از مدل استفاده‌ای نشده است. اگرچه در روش‌تان به ساختن مدل اشاره کرده‌اید. منظور از ساختن مدل، آموزش یک رده‌بند روی داده‌های هرزنامه آموزشی و استفاده از آن در هنگام تشخیص است.

  • فکر می‌کنم عددی که به عنوان Recall گزارش کردید، اشتباه وارد شده. چون حداکثرش ۱ هست.