خوب خوب جای وبلاگ داخل همینجا میگم در این پروژه هایی که بهعنوان یک نوپا در حوزه تحلیل داده درحال انجام هستم، این سری هدف بررسی مسیرهای تحصیلی، شغلی و مهاجرتی متخصصان ایرانی در حوزه فناوری اطلاعات و ارتباطات (ICT) بود. برای این منظور، مراحل زیر را طی کردم:
مرحله اول جمعآوری دادهها: با توجه به اینکه LinkedIn یکی از منابع اصلی اطلاعات حرفهای است، تصمیم گرفتم دادههای مورد نیاز را از این پلتفرم استخراج کنم. برای این کار، از ابزارهای وباسکرپینگ مانند BeautifulSoup و Selenium در زبان برنامهنویسی Python استفاده کردم. این ابزارها امکان استخراج دادههای ساختاریافته از صفحات وب را فراهم میکنند.
مرحله دوم پیشپردازش دادهها: دادههای خام استخراجشده معمولاً دارای نواقص و ناسازگاریهایی هستند. برای آمادهسازی دادهها جهت تحلیل، مراحل زیر را انجام دادم:
حذف دادههای تکراری و ناقص: با استفاده از کتابخانه pandas در Python، رکوردهای تکراری و آنهایی که اطلاعات کلیدی را نداشتند، حذف کردم.
استانداردسازی مقادیر متنی: برای یکسانسازی نام کشورها، عناوین شغلی و رشتههای تحصیلی، تمام متون را به حروف کوچک تبدیل کرده و فاصلههای اضافی را حذف نمودم.
مدیریت دادههای گمشده: مقادیر گمشده را با استفاده از روشهای آماری مانند میانگین یا میانه پر کردم یا در صورت لزوم، آنها را حذف کردم.
مرحله سوم تحلیل دادهها: پس از پیشپردازش، به تحلیل دادهها پرداختم تا به سؤالات تحقیق پاسخ دهم:
محبوبترین رشتههای تحصیلی: با محاسبه توزیع فراوانی رشتههای تحصیلی، متوجه شدم که رشتههای مهندسی کامپیوتر، فناوری اطلاعات و علوم کامپیوتر بیشترین تعداد را دارند.
مشاغل پرطرفدار: تحلیل عناوین شغلی نشان داد که توسعهدهنده نرمافزار، مدیر پروژه IT و تحلیلگر سیستمها از جمله مشاغل محبوب هستند.
مقاصد مهاجرتی: با بررسی مکانهای فعلی متخصصان، کشورهایی مانند کانادا، آلمان و استرالیا بهعنوان مقاصد اصلی مهاجرت شناسایی شدند.
ارتباط بین تحصیلات و شغل: با استفاده از جداول توافقی (crosstab) و آزمونهای آماری، رابطه معناداری بین رشته تحصیلی و شغل فعلی افراد مشاهده شد.
مرحله چهارم مصورسازی دادهها: برای نمایش نتایج بهصورت بصری و قابلفهم، از کتابخانههای Matplotlib و Seaborn در Python استفاده کردم. نمودارهای میلهای، هیستوگرامها و نمودارهای خطی برای نمایش توزیعها و روندها ترسیم شدند.
مرحله پنجم ارائه داشبورد تعاملی: بهمنظور ارائه نتایج به ذینفعان بهصورت تعاملی، از فریمورک Dash بهره بردم. این فریمورک مبتنی بر Python امکان ساخت داشبوردهای وب تعاملی را فراهم میکند. داشبورد طراحیشده شامل تبهای مختلفی برای نمایش تحلیلهای تحصیلی، شغلی و مهاجرتی بود و کاربران میتوانستند با انتخاب فیلترهای مختلف، نتایج را بر اساس نیاز خود مشاهده کنند.
توی متدولوژی Crisp بیشتر چالش رو جمع آوری اطلاعات و پیشپردازش اولیه مثل تمیزکاری و استاندارسازی داره، پس قطعا قدم های اول به آسونی قدم های آخر مثل مصور سازی و نمودار بندی و Storytelling نیست.
محدودیتهای وباسکرپینگ: با توجه به سیاستهای سختگیرانه LinkedIn در مقابل وباسکرپینگ، با محدودیتهایی مواجه شدم. برای مدیریت این موضوع، نرخ درخواستها را کاهش داده و از پروکسیهای چرخشی استفاده کردم تا از مسدود شدن جلوگیری شود.
دادههای گمشده و ناهماهنگ: برخی پروفایلها اطلاعات کاملی نداشتند یا از فرمتهای متفاوتی استفاده کرده بودند. با تعریف قواعد مشخص برای استانداردسازی و تکمیل دادهها، این مشکل را به حداقل رساندم.
حجم بالای دادهها: با توجه به حجم بالای دادههای استخراجشده، پردازش و تحلیل آنها زمانبر بود. با استفاده از تکنیکهای بهینهسازی و پردازش موازی، زمان اجرای کدها را کاهش دادم.
این پروژه تجربهای جامع در زمینه جمعآوری، پیشپردازش، تحلیل و مصورسازی دادهها بود. با استفاده از ابزارها و تکنیکهای مختلف، توانستم به درک بهتری از مسیرهای حرفهای و مهاجرتی متخصصان ایرانی در حوزه ICT دست یابم و نتایج را بهصورت تعاملی و قابلفهم ارائه دهم. البته فعلا بخش مهاجرت از سمت مهارت یا آکادمیک مورد بررسی قرار گرفت که داشبورد تعاملیش هم داخل اسکریپت dashboard.py قابل بررسی هستش فقط کافیه دپدنسی های مورد نیاز رو نصب کنید و داشبورد رو لوکال اجرا کنید.