eye2vec: یه روش تازه و هوشمند برای فهمیدن حرکات چشم برنامه‌نویسا موقع خوندن کد

Fall Back

خب بذار با یه سوال شروع کنم: تا حالا فکر کردی برنامه‌نویسا موقع خوندن کد دقیقاً چشمشون کجاها میره و چی باعث میشه بفهمن یه قسمت از کد چطور کار می‌کنه؟

یه تحقیق جدید اومده که اسمش eye2vec هست و قراره دقیقاً همینو بررسی کنه. ماجرا از این قراره که وقتی دانشمندا بخوان بفهمن برنامه‌نویس‌ها بخش مختلف کد مثل کنترل جریان یا بخشای به‌خصوص سینتکس (یعنی ساختار نوشتاری برنامه) رو چجوری نگاه می‌کنن، باید اول مشخص کنن که دقیقاً دنبال چی می‌گردن. مثلاً ممکنه تصمیم بگیرن نقاط تمرکز چشم (به این میگن fixation یا اون جایی که چشم چند لحظه روش میمونه) رو روی لیست کلمات، خطوط یا کل بلاک‌های کد بررسی کنن.

حالا این تصمیم خیلی مهمه! چون بسته به اینکه “ناحیه مورد توجه” (به انگلیسی میگن AOI یا Area of Interest یعنی همون محلی که تمرکز روشه) رو چطور تعریف کنی، نتیجه کاملاً فرق می‌کنه. مثلاً ممکنه یه نفر فقط خط‌ها رو نگاه کنه، یکی دیگه کلمات، یا یکی دیگه کل یه تابع رو به عنوان بلاک در نظر بگیره. این یعنی کل تحقیق وابسته‌ست به اینکه اون پژوهشگرها چطور دستی این قسمت‌ها رو تعیین کنن و تازه بعدش باید شاخص‌ها و روش‌های خودشون رو درست کنن تا این داده‌ها رو تحلیل کنه.

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

حالا eye2vec اومده یه راه جدید پیشنهاد داده. این مدل – که اسماً هم ترکیبی از “چشم” و همون مدل‌های برداری مثل word2vec هست – حرکات چشم رو به‌صورت “انتقال بین دو تمرکز” (یعنی دو تا fixation پشت سر هم) به شکل بردارهای پراکنده نشون میده. بردار پراکنده یعنی یه جور نمایش عددی که میشه مفاهیم مختلف رو باهاش نشون داد و باهاش کار کرد. خلاصه چشم برنامه‌نویسا وقتی از یه تیکه کد به یه تیکه دیگه میره، این مدل این حرکت رو به عنوان یه انتقال بین عناصر سینتکسی ذخیره می‌کنه.

مزیت این کار چیه؟ اول اینکه نیاز به کلی کار دستی و تعیین AOI و این داستانا خیلی کمتر میشه و دیگه اینکه با این مدل جدید میشه با روش‌های متنوع و جالبی داده‌ها رو تحلیل کرد، و حتی میشه برداشت معنایی قوی‌تری هم به دست آورد.

توی جمع‌بندی، eye2vec داره راه جدیدی برای مطالعه نگاه برنامه‌نویس‌ها به کد پیشنهاد میده که هم انعطاف‌پذیره، هم تحلیلاش قوی‌تره و هم کار آدم رو راحت‌تر کرده. خلاصه اگه دنبال فهم عمیق‌تر از اینکه برنامه‌نویسا موقع خوندن کد دقیقاً دارن چیکار می‌کنن بودی، این مدل خیلی به کارت میاد!

منبع: +