PDA

View Full Version : جستجو در فایل متنی



mh_esk7
جمعه 01 تیر 1397, 10:24 صبح
سلام
من یک فایل متنی دارم (برای کسانی که میدونن مربوط به درس داده کاوی ، فایل FoodMart.txt)
که میخوام روی داده های داخلش عملیاتهایی انجام بدم(دوباره برای دوستانی که راجع به داده کاوی میدونن میخوام الگوریتم 2Phase و HUIMiner رو پیاده سازی کنم) ، برای این کار اومدم اطلاعات هر سطر از فایل رو خوندم و توی لیست مربوطه ذخیره کردم که برای ادامه کارم از این لیستها استفاده میکنم ، کار انجام میشه
اما اشکال اینجاست که زمان انجام کار خیلی بالاست برای فایل FoodMart که تقریبا 4000 خط داره 7 ساعت داره طول میکشه در صورتی که برنامه نوشته شده جاوا که توی سایت خودش(SPMF) هست یک ثانیه جواب میده
نمیدونم چرا اینقدر زمان میبره ،
خواندن از فایل نیست که داره زمان میبره یقینا وارد کردن اطلاعات به لیست و عملیاتهای انجام شده روی لیست که با دستورات ساده for و foreach انجام میشه داره زمان میبره
چرا این کار توی برنامه اصلی جاوا اینقدر زمان نمیبره ؟ یعنی اون با روش دیگه ای داره کار میکنه ؟
چطور میتونم زمان انجام محاسبات رو پایین بیارم؟
با دستورات SQL میشه این عملیات ها رو روی فایل متنی انجام داد ؟
من هرچی گشتم چیزی راجع به انجام عملیات از قبیل جستجو و فیلتر کردن داده ها روی فایل متنی توسط SQL پیدا نکردم؟

رامین مرادی
شنبه 02 تیر 1397, 09:36 صبح
سلام
من یک فایل متنی دارم (برای کسانی که میدونن مربوط به درس داده کاوی ، فایل FoodMart.txt)
که میخوام روی داده های داخلش عملیاتهایی انجام بدم(دوباره برای دوستانی که راجع به داده کاوی میدونن میخوام الگوریتم 2Phase و HUIMiner رو پیاده سازی کنم) ، برای این کار اومدم اطلاعات هر سطر از فایل رو خوندم و توی لیست مربوطه ذخیره کردم که برای ادامه کارم از این لیستها استفاده میکنم ، کار انجام میشه
اما اشکال اینجاست که زمان انجام کار خیلی بالاست برای فایل FoodMart که تقریبا 4000 خط داره 7 ساعت داره طول میکشه در صورتی که برنامه نوشته شده جاوا که توی سایت خودش(SPMF) هست یک ثانیه جواب میده
نمیدونم چرا اینقدر زمان میبره ،
خواندن از فایل نیست که داره زمان میبره یقینا وارد کردن اطلاعات به لیست و عملیاتهای انجام شده روی لیست که با دستورات ساده for و foreach انجام میشه داره زمان میبره
چرا این کار توی برنامه اصلی جاوا اینقدر زمان نمیبره ؟ یعنی اون با روش دیگه ای داره کار میکنه ؟
چطور میتونم زمان انجام محاسبات رو پایین بیارم؟
با دستورات SQL میشه این عملیات ها رو روی فایل متنی انجام داد ؟
من هرچی گشتم چیزی راجع به انجام عملیات از قبیل جستجو و فیلتر کردن داده ها روی فایل متنی توسط SQL پیدا نکردم؟

مطمئنا نحوه کد نویسی خیلی خیلی تاثیر داره. استفاده از حلقه های تکرار زیاد . بهینه نبودن الگوریتم کد نویسیتون. درصورت امکان کد های برنامتون رو به صورت چند نخی بنویسید . پیشنهاد من استفاده از زبان هایی مثل C++‎‎ یا c هست که میتونید کارتون رو به صورتت dll دربیارید و مثلا تو سی شارپ هم استفاده کنید. در ضمن استفاده از ورودی و خروجی کمی برنامه رو کند میکنه. درصورت امکان داده هاتون رو در حافظه لود کنید به صورت استریم سپس رو اون کار کنید.

mr.sirwan
شنبه 02 تیر 1397, 10:52 صبح
شما کدتون رو قرار بدین ببینیم کجاها بهینه نیست، درصورتیکه کدتون بهینه بود (که بعیده) پیشنهاد میدم برین سمت پردازش موازی

mh_esk7
شنبه 02 تیر 1397, 17:42 عصر
شما کدتون رو قرار بدین ببینیم کجاها بهینه نیست، درصورتیکه کدتون بهینه بود (که بعیده) پیشنهاد میدم برین سمت پردازش موازی

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