خانه / هوش مصنوعی / طبقه بندی / دسته بندی متن (هرزنامه-اسپم) با طبقه بند بیز
طبقه بندی متن
text classification

دسته بندی متن (هرزنامه-اسپم) با طبقه بند بیز


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

قابلیت های پروژه  :

  1. پیاده سازی طبقه بند نایو بیز در محیط متلب
  2. دسته بندی ایمیل های اسپم از غیر اسپم
  3. دسته بندی یک ایمیل خاص
  4. دسته بندی یک پوشه که حاوی ایمیل های اسپم و غیر اسپم و هر کدام از ایمیل ها را با دقت خوبی تشخیص می دهد.
  5. حاوی داکیومنت کامل فارسی برای هر بخش
  6. نحوه اجرای کامل کدهای برنامه

شرح عملکرد بیز ساده در دسته بندی متن :

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

  • در کل برای طبقه بندی ماشینی متن باید مراحل زیر صورت گیرد :
  1. (Preprocessing)– پیش پردازش
  2. (Feature Generation) – تولید ویژگی
  3. (Feature Selection) – انتخاب ویژگی
  4. (Data Mining/Pattern Discovery) – اعمال الگوریتمهای داده کاوی / متن کاوی…..(بیز ساده)
  5. (Interpretation /Evaluation) – تفسیر و ارزیابی

  1. پیش پردازش داده ها :

در این مرحله  (اعداد ..حروف اضافه.. کلمات دستوری …و…) از متن حذف میشوند. تا کلاس ها متوازن تر شوند.و حجم اطلاعات هم کاهش یابد.در واقع برای کاهش ابعاد و حذف کلمات غیر مفید 3رویکرد کلی وجو دارد :

  • کلمات توقف ()
  • ریشه کلمات
  • فیلترهای اماری (.DF)

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

  1. تولید ویژگی :

بعد پیش پردازش باز هم کلمات غیر مفید دیگری در متن وجود دارد.و هر چه تعداد اینها زیاد باشد کیفیت درخت تصمیم گیری یا طبقه بندی که میخواهیم با ان طبقه بندی را انجام دهیم.کاهش میابد.لذا با روش هایی نظیر IDF,ENTROPY وسایر فرومول های موجود انها را حذف میکنیم.

  1. انتخاب ویژگی :

ما باید ویژگی هایی رو انتخاب کنیم که بیشترین تفیکیک را بین کلاسها ایجاد کنند.برای اینکار دو راه وجود دارد :

  • ویژگی هایی رو انتخاب کنیم که بیشترین تفیکیک رابین کلاسها ایجاد کنند.(RELEVANCY)
  • ویژگی هایی را انتخاب کنیم که افزونه نباشند (NON-REDUNENCY)
  • که روشهایی زیادی برای انتخاب وجود دارد از جمله روش FILTER که براساس امتیاز دهی و رتبه بندی به ویژگی ها عمل میکند و ویژگی های با امتیاز بالا را انتخاب میکند.یا روش WRAPPER که با استفاده از یک طبقه بند میزان دقت یا خطا هر ویژگی را محاسبه کرده و ان ویژگی را انتخاب میکند.یا میتوان از یک مقدار استانه استفاده کرد که این مقدار استانه قابل تنظیم است.وچون ثابت شده فقط 0.33 از کلمات یک متن مفید هستن میتوان مقدار استانه را بین 0 تا 30 در نظر گرفت.
  • اعمال الگوریتم دسته بندی بیز ساده :

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

کلاس یک سند متناسب با کلماتی است که در یک سند ظاهر می شوند که در این روش برای تخمین کلاس سند از فرمول زیر استفاده می­شود.:

  • در این فرمول L نشان دهنده کلاس c و tها ترم­های موجود در یک سند هستند. این نکته قابل ذکر است که هر سند دقیقا به یک کلاس تعلق دارد. از
    آنجا که برای همه کلاس­ها مساوی در نظر گرفته می­شود، می­توان این احتمال را از فرمول بالا حذف نمود و همچنین برای سادگی از فرض استقلال Na¨ıve استفاده می­شود. طبق این فرض احتمال رخداد کلمات در یک سند مستقل از یکدیگر است. برای مقایسه مقدار کلاس اسپم با کلاس «ایمیل معتبر» نیازی به محاسبه مخرج کسر فوق نیست چراکه این مقدار برای هر کلاس یکسان است.

با فرض استقلال داده ها :

این رده­ بندی کننده یک گام learning دارد که در آن احتمالات( P(t|L( تعداد اسنادی که در مجموعه آموزش شامل ترم tهستند و برچسب کلاسشانL است تقسیم بر کل کلاسها) تخمین زده می شود. در گام رده ­بندی، احتمالات تخمین زده شده برای رده ­بندی کردن یک نمونه جدید مطابق با قانون Bayes استفاده می ­شوند.

  • هر کلاس (اسپم و یا ایمیل معتبر) که این مقدار احتمالی به ازای آن بزرگتر باشد، برچسب آن ایمیل خواهد بود.

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

در جدول مربوطه هر ویژگی 3تا خاصیت دارد :

  • شماره
  • موجودیت یا عدم موجودیت در سند مربوطه
  • تعداد تکرار ان در سند مروبوطه

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

  نقاط قوت وضعف دسته بند Naïve Bayesian :
  • نقاط قوت
  • متد Bayesian کل پیغام را در نظر می گیرد. این متد علاوه بر اینکه کلمات کلیدی که معرف و مرتبط با اسپم هستند را شناسایی می کند، بلکه کلمات معرف ایمیل های معتبر را نیز شناسایی می کند. در متد Bayesian کلمات در کنارهم تأثیر یکدیگر را (در نتیجه نهایی فیلتر اسپم) متعادل می کنند؛ به بیانی دیگر فیلتر Bayesian بر روی کلمات کلیدی تکیه نمی کند به طوریکه به خاطر یک کلمه خاص، یک پیغام را جزو اسپم ها طبقه بندی کند، بلکه تمامی کلمات و تمامی ویژگی های پیغام را در نظر می گیرد.
  • یک فیلتر Bayesian با یادگیری مستمر از اسپم های جدید و ایمیل های معتبرِ جدید، به طور ثابت خود را با آخرین تغییرات وفق می دهد. فیلتر Bayesian دائماً در حال تحول است و خود را با تکنیک های جدید اسپم هماهنگ می سازد.
  • هنگامی که فرستادگان اسپم برای فریب دادن راهکارِ «بررسی کلمات کلیدی» به جای “Free” از “F-r-e-e” استفاده کردند، بلافاصله پس از افزودن “F-r-e-e” به پایگاه داده  کلمات کلیدی، راهکارشان خنثی شد
  • روش Bayesian روشی است که قابل اِعمال به هر زبانی می باشد. فیلتر اسپم Bayesian کاملاً قابل انطباق با هر زبان و نوشتاری می باشد
  • تکنیک فیلتر Bayesian حساس به کاربر و داده های اوست. فیلتر از ایمیل های کاربر (و یا شرکت) یاد می گیرد که در مورد کاربر، بیشتر چه مطالبی به عنوان ایمیل رد و بدل می گردد.
  • به عنوان مثال اگر شرکت (یا فرد) یک شرکت دلال اتومبیل باشد، آنگاه کلمه “mortgage” به عنوان نشانه ای برای یک اسپم تلقی می گردد، در حالی که اگر شرکت (یا فرد) یک شرکتی باشد که طرف قراردادش سازمان وام دهنده مسکن باشند آنگاه چنین کلمه ای در ایمیل نشان دهنده وجود یک اسپم نمی باشد.
  • یک فیلتر Bayesian نسبت به فیلترهای مبتنی بر لیست کلمات کلیدی، کمتر فریب می خورد.
  • نقطه ضعف: فرض استقلال بین ویژگی ها
  • می توان از روشهای جایگزین (البته با محاسبات بیشتر) مانند Belief Network استفاده کرد.

*

10000 تومان – خرید

همچنین ببینید

java agent development framework

سیستم چند عامله برای خرید و فروش سهام با کتابخانه Jade

هدف از این پروژه این است که با استفاده از چارچوب نرم افزاری jade یک …

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *