(۲۲ فروردین ۱۳۹۲ ۱۰:۵۴ ق.ظ)tarane khanoom نوشته شده توسط: من سایت های زیادی رفتم برای دیتا ست مثلا
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
ولی اینا تاریخاشون ۲۰۰۴و ۲۰۰۵ اشکالی نداره ؟و اینکه من میخوام یکسری لغات خاص که توی ایمیل اسپم ها استفاده میشه را به شبکه عصبی اموزش بدم ولی از روی این دیتا ستها هیچ چیز متوجه نمیشم لطفا راهنماییم کنید!!!یا مقاله ای که بیس کارم قرارش دادم گفته قواعد تویه فایل .cf توی سایت spamassassin که من پیدا نکردم
۱- اون طور که گفته spamassassin یک پروژه متن باز هستش که باید روی یک سرور اجراش کنید.من یکی از دیتاست هاش رو نگاه کردم دیدم به صورت صفحات HTML هستش.توی لینک زیر در مورد ویژگی های پروژه توضیح داده :
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
و اون قواعدی که شما میگید در لینک زیر قرار داره:
مهمان عزیز شما قادر به مشاهده پیوندهای انجمن مانشت نمیباشید. جهت مشاهده پیوندها ثبت نام کنید.
به نظرم کار با این دیتاست کمی سخته.بهتره از دیتاست های ساده تر مثل lingspam استفاده کنید
۲- منظورتون رو از اینکه این دیتاست ها مربوط به سال ۲۰۰۴ و ۲۰۰۵ هستن نمیفهمم؟؟یعنی قدیمیه؟؟خب اگه چند تا مقاله جدید در حوزه spam filtering دانلود کنید و به قسمت result یا experiment نگاه کنید میفهمید که از چه دیتاست هایی استفاده میشه.من دو مقاله رو براتون پیوست کردم.مقاله اول که خاص spam filtering هستش که از چند دیتاست از جمله lingspam استفاده کرده.مقاله دوم در حوزه دسته بندی متن هستش و مراحل انجام کار رو توضیح داده
۳- اینکه یکسری کلمات خاص رو به شبکه عصبی آموزش بدید رو نمیفهمم.مراحل کار رو میشه به طور خلاصه به صورت زیر انجام داد :
۳-۱- استخراج کلمات
ابتدا تک تک ایمیل ها رو در هر قالبی که هست(مثلا .txt) باید از ورودی بخونید و تک تک کلمات اون رو استخراج کنید.مثلا اگر داخل یکی از فایل ها جمله if you would prefer to stay in a hotel , we recommend the arcade hotel وجود داشت باید تک تک کلمات و تعداد دفعات تکرارش رو استخراج کنید که می تونید به هر صورتی(در داخل پایگاه داده، استفاده از ساختار درختی، آرایه یا ...) ذخیره کنید.یعنی داریم
کد:
word frequency
if 1
you 1
...
hotel 2
تا این مرحله هر ایمیل تبدیل به برداری از کلمات میشه(مجموعه train و test) که به عنوان ویژگی(feature) شناخته میشن
۳-۲-حذف stop-words
کلماتی که مربوط مفهوم ایمیل نیستن و در همه ایمیل ها تکرار میشن، باید حذف بشن. مثل if.لیست این کلمات توی اینترنت به وفور پیدا میشه
۳-۳- انتخاب ویژگی
با توجه به اندازه مجموعه داده ای به احتمال زیاد تعداد کلماتی(ویژگی ها) که در نهایت استخراج میشن خیلی زیاد هست(ده ها هزار ویژگی) آموزش هر الگوریتم یادگیر از جمله شبکه عصبی بسیار بسیار زمان بر هستش.پس باید بیشتر کلمات استخراج شده حذف بشن.میشه از روش هایی مثل informatio gain، gini index، document frequency یا هر روش دیگه استفاده کرد که ابتدا به هر کلمه استخراج شده یک رتبه ای رو میده و در نهایت درصدی از کلمات با رتبه بالاتر انتخاب میشن
۳-۴-تست الگوریتم یادگیر
حالا وقتی این مراحل انجام شد هر ایمیل(سند یا فایل یا هر چیز دیگه ای که اسمشو میزارید) تبدیل به یک بردار با ویژگی های استخراج شده میشه(مجموعه داده های train و test).حالا از هر الگوریتم یادگیر در هر نرم افزاری(Matlab، JavaNNS، Weka یا ...) استفاده میکنید این بردار ویژگی رو به فرمت اون نرم افزار تبدیل میکنید و استفاده کنید
نمیدونم این رو برای یه پروژه درسی میخواید یا پروژه پایانی.ولی اگر به اندازه کافی زمان دارید میتونید از الگوریتم های ریشه یاب(Stemming) برای افزایش دقت استفاده کنید. یا از یک سری الگوریتم های بهینه سازی مثل ژنتیک یا کلونی مورچه ها و ... برای انتخاب ویژگی استفاده کنید