PDA

View Full Version : اشکال در رنکینگ متن کاوی



baidin
جمعه 14 مهر 1391, 13:42 عصر
با سلام
یه مشکلی هست دارم ممنون میشم دوستان کمک کنند.
تعدادی الگو(pattern) به صورت دستی تعیین شده است. هر الگو دارای یک تعدادی آیتم هست. با جستجو در متن تعداد آیتم هایی که از هر الگو در متن یافت شده وجود دارد. به عنوان مثال از الگو اول 2 آیتم یافت شده و از الگو دوم 5 آیتم یافت شده و... تعداد آیتم های هر الگو با هم برابر نیست. مثلا الگو اول 3 آیتم دارد و الگو دوم 10 آیتم دارد و...
مشکل اینجاست اگر الگو اول 3 آیتم داشته باشد و 2 تا آیتمش در متن پیدا شود و الگو دوم 10 آیتم داشته باشد و در متن 5 آیتمش یافت شود این متن به الگو اول نزدیکتر است یا به الگو دوم؟

ممنون میشم دوستان کمک کنند واقعا گیر افتادم
مرسی

مصطفی ساتکی
جمعه 14 مهر 1391, 17:08 عصر
تو هر روش جستجو نوع distance مهمه که در شرایط عادی از Euclidean distance استفاده میشه مثلاً knn را می تونید بجز Euclidean distance با distance های دیگه هم استفاده نمائید به طور مثال که شما در زمینه text mining میخاید knn استفاده کنید بهتره از Hamming distance استفاده کنید در واقع در فیلد های مختلف می تونید distance های مختلف را استفاده کنید که مسلماً جواب هایی با دقت متفاوت بدست خواهید آورد

baidin
جمعه 14 مهر 1391, 17:25 عصر
تو هر روش جستجو نوع distance مهمه که در شرایط عادی از Euclidean distance استفاده میشه مثلاً knn را می تونید بجز Euclidean distance با distance های دیگه هم استفاده نمائید به طور مثال که شما در زمینه text mining میخاید knn استفاده کنید بهتره از Hamming distance استفاده کنید در واقع در فیلد های مختلف می تونید distance های مختلف را استفاده کنید که مسلماً جواب هایی با دقت متفاوت بدست خواهید آورد
دوست عزیز مشکل من جستجوی رشته و تطبیق رشته ها نیست
فرض کن دو تا الگو داریم که الگو اول دارای 5 آیتم و الگو دوم دارای 10 آیتم هست. با روش جستجو ساده متوجه میشویم که تعداد آیتم های هر الگو در متن ورودی برای الگو اول برابر 3 و الگو دوم برابر 5 است.
اگر معیار تطبیق را تعداد یافته ها بگیریم باید الگو دوم را به متن اختصاص بدهیم چون 5>3
ولی اگر معیار را تعداد یافته ها به کل آیتم های pattern مربوطه قرار دهیم داریم 3/5=0.6 و 5/10=0.5 و در این حالت باید رشته ورودی را به الگو اول اختصاص دهیم.
در حقیقت سوال نوعی classify کردن می باشد.
حالا سوال این هست که چه معیاری را با توجه به تعداد یافته های آیتم هر pattern در متن و تعداد کل آیتم های هر pattern در نظر بگیرم؟

مصطفی ساتکی
جمعه 14 مهر 1391, 17:38 عصر
اگر اینطوریه ترکیب وزن دار برای هر یک از الگوهات تعریف کنید سپس مقایسه latent graph انجام بدید
و یا اینکه الگوی مورد نظر را به توالی تبدیل کنید برطبق یک code book مشخص سپس با hmm توالی های موردنظر را classify کنید

baidin
جمعه 14 مهر 1391, 20:32 عصر
اگر اینطوریه ترکیب وزن دار برای هر یک از الگوهات تعریف کنید سپس مقایسه latent graph انجام بدید
و یا اینکه الگوی مورد نظر را به توالی تبدیل کنید برطبق یک code book مشخص سپس با hmm توالی های موردنظر را classify کنید

دوست عزیز امکان اینکار وجود ندارد. در حقیقت تنها مواردی که در دسترس هست pattern,آیتم های هر pattern,تعداد
میخواستم ببینم روشی برای استاندارد سازی وجود داره. مثلا تقسیم تعداد یافته شده به تعداد کل آیتم های هر pattern کاری اصولی و علمی است؟

مصطفی ساتکی
جمعه 14 مهر 1391, 20:57 عصر
میشه مثال خودتونو با جزئیات توضیح بدید من متوجه نمی شم شما چی نیاز دارید؟
دقیقاً بفرماید که application شما چه چیزی هستش تا پیشنهادهای مناسبی داده بشه

baidin
جمعه 14 مهر 1391, 23:11 عصر
میشه مثال خودتونو با جزئیات توضیح بدید من متوجه نمی شم شما چی نیاز دارید؟
دقیقاً بفرماید که application شما چه چیزی هستش تا پیشنهادهای مناسبی داده بشه

دوست عزیز من یک boolean model دارم که برای تطبیق رشته با الگوی مربوطه استفاده میشه.
به ازای هر رشته الگویی از قبل تعریف شده است.
قراره با استفاده از رشته ورودی از چند تا pattern موجود الگویی به رشته ورودی اختصاص داده بشه(mapping,match)
منتهی الگوها آیتم های مشترک نیز دارند. یعنی نمیشه با دیدن یک آیتم رشته را با الگویی تطبیق داد چون ممکنه الگوهای دیگری نیز دارای آین آیتم باشند.
من با کد تعداد آیتم های موجود در الگو که در رشته موجود هست را بدست آوردم. حالا نمیدونم بر چه اساسی این رشته را به الگویی اختصاص بدم.
آخه بولین مدل استاندارد رنکینگ نداره و من میخوام یه رنکینگ براش بنویسم.
حالا این رنکینگ میتونه:
1-بر اساس الگویی که بیشترین تعداد آیتم در رشته را داره بدست بیاد
2-بر اساس تعداد آیتم موجود در الگو تقسیم بر تعداد کل آیتم ها بدست بیاد
3-یا یه نوع استاندارد سازی تعریف کنیم که اینکار را برامون انجام بده.
دقت کنید مشکل مورد 1و 2 اینه الگویی که دارای بیشترین تطبیق بوده ممکنه تعداد آیتم های بیشتری نیز باشد مثلا از 10 تا آیتم 50 درصد اونها در رشته ورودی باشه در حالی که ممکنه الگویی کلا 3 تا آیتم داشته باشه و 3 تا هم در رشته ورودی دیده بشه در حقیقت 100 درصد آیتم های اون در رشته دیده بشه. حالا من اگر بر اساس تعداد باشه باید الگویی که 5 تا آیتم دیده شده(50درصد) و اگر بر اساس درصد باشه باید الگویی که 3 تا آیتم دیده شده(100درصد) نسبت بدم.
در حقیقت من یه نوع استاندارد سازی میخوام بکنم ولی نمیدونم به چه صورتی اینکار را انجام بدم.

مصطفی ساتکی
یک شنبه 16 مهر 1391, 00:51 صبح
گفتم بهتون بهترین راه ممکن hmm هستش با hmm شما یک codebook table میسازی اینها عناصری هستند که رشته هاتون از اینها ساخته شده کلیه رشته ها را برای آموزش آماده کنید و سپس hmm را آموزش بدید
البته hmm یه مقدار پیچیده هستش از سیستم آسان تری هم مثل DAWG می تونید استفاده کنید

baidin
یک شنبه 16 مهر 1391, 14:00 عصر
گفتم بهتون بهترین راه ممکن hmm هستش با hmm شما یک codebook table میسازی اینها عناصری هستند که رشته هاتون از اینها ساخته شده کلیه رشته ها را برای آموزش آماده کنید و سپس hmm را آموزش بدید
البته hmm یه مقدار پیچیده هستش از سیستم آسان تری هم مثل DAWG می تونید استفاده کنید

دوست عزیز مراحل آموزش انجام شده و boolean model توانایی تشخیص داره و نتایج خوبی هم گرفتم. من قرار نیست مدل را عوض کنم و محدود به شرایط و توانایی های boolean model ها هستم و با توجه به عملگرهای این مدل بایستی برای رنکینگ پیشنهادی ارائه کنم.
فقط در زمان تشخیص الگو گاهی بین چند الگو نمیتونه تشخیص بده مثلا از بین 100 الگو فیلتر میکنه و به جای یک الگو، 3 الگو را معرفی میکنه و اونجا با توجه به ساختار boolean model ها بایستی الگوریتمی برای رنکینگ داشته باشم تا از بین تعداد الگو که در مرحله تشخیص بدست آمده (3 االگو) یک الگو را انتخاب کنه.

از زمانی که گذاشتید متشکرم

مصطفی ساتکی
یک شنبه 16 مهر 1391, 14:39 عصر
به مطالب گفته شده توجه نمی کنید مدام پست رو تکرار می کنید
این چیزی که شما میخاید تو بحث classifier ها بهش میگن قدرت تعمیم classifier که با توجه به نوع و topology کلاسیفیر ها تغییر می کنه
کلاسیفی که شما در حال حاظر انجام میدید از نوع knn هستش قابلیت تعمیم نداره چون آموزشی در کار نیست همه چیز به متد distance شما بستگی داره و برای اینکه شما قابلیت تعمیم داشته باشید از انواع کلاسیفر های
که train میشه استفاده کنید و اگر تعداد feature ها متفاوت باشه بایستی از روش های temporal استفاده کنید مثل temporal neural network یا hmm

مدل شما boolean هم باشه در شبکه عصبی نرمال میشه به بازه مناسب مربوط به activation function موردنظر و تو hmm هم فرقی نداره جدول codebook شما میشه حاوی 2 عنصر

مصطفی ساتکی
یک شنبه 16 مهر 1391, 14:41 عصر
به مطالب گفته شده توجه نمی کنید مدام پست رو تکرار می کنید
این چیزی که شما میخاید تو بحث classifier ها بهش میگن قدرت تعمیم classifier که با توجه به نوع و topology کلاسیفیر ها تغییر می کنه
کلاسیفی که شما در حال حاظر انجام میدید از نوع knn هستش قابلیت تعمیم نداره چون آموزشی در کار نیست همه چیز به متد distance شما بستگی داره و برای اینکه شما قابلیت تعمیم داشته باشید از انواع کلاسیفر های
که train میشه استفاده کنید و اگر تعداد feature ها متفاوت باشه بایستی از روش های temporal استفاده کنید مثل temporal neural network یا hmm

مدل شما boolean هم باشه در شبکه عصبی نرمال میشه به بازه مناسب مربوط به activation function موردنظر و تو hmm هم فرقی نداره جدول codebook شما میشه حاوی 2 عنصر

baidin
دوشنبه 17 مهر 1391, 12:21 عصر
به مطالب گفته شده توجه نمی کنید مدام پست رو تکرار می کنید
این چیزی که شما میخاید تو بحث classifier ها بهش میگن قدرت تعمیم classifier که با توجه به نوع و topology کلاسیفیر ها تغییر می کنه
کلاسیفی که شما در حال حاظر انجام میدید از نوع knn هستش قابلیت تعمیم نداره چون آموزشی در کار نیست همه چیز به متد distance شما بستگی داره و برای اینکه شما قابلیت تعمیم داشته باشید از انواع کلاسیفر های
که train میشه استفاده کنید و اگر تعداد feature ها متفاوت باشه بایستی از روش های temporal استفاده کنید مثل temporal neural network یا hmm

مدل شما boolean هم باشه در شبکه عصبی نرمال میشه به بازه مناسب مربوط به activation function موردنظر و تو hmm هم فرقی نداره جدول codebook شما میشه حاوی 2 عنصر
مدل بولین هست.
مدل بولین تعداد عملگرهای محدود و خاص داره.
قرار هم نیست مدلم را عوض کنم یا با روشهای دیگری تعمیم بدم.
تنها و تنها محدود به استفاده از بولین مدل و عملگرهای بولین مدل هستم.