GitHub پیشرفت هایی را در استفاده از یادگیری ماشین برای جستجو و تجزیه و تحلیل کد ایجاد کرده است

GitHub معرفی شده پروژه CodeSearchNetکه مدل های یادگیری ماشین و مجموعه داده های لازم برای تجزیه، طبقه بندی و تجزیه و تحلیل کد در زبان های برنامه نویسی مختلف را آماده کرده است. CodeSearchNet، مشابه IMAGEnet، شامل مجموعه بزرگی از تکه های کد با حاشیه نویسی است که عملکرد کد را رسمی می کند. اجزای مدل های آموزشی و نمونه هایی از استفاده از CodeSearchNet در پایتون با استفاده از چارچوب Tensorflow نوشته شده است. توزیع شده توسط تحت مجوز MIT

هنگام ایجاد CodeSearchNet، از فناوری‌های تجزیه متن زبان طبیعی استفاده شد که سیستم‌های یادگیری ماشینی را قادر می‌سازد تا نه تنها ویژگی‌های نحوی، بلکه معنای اقدامات انجام شده توسط کد را نیز در نظر بگیرند. سیستم GitHub کاربردی در آزمایش های سازماندهی جستجوی کد معنایی با استفاده از پرس و جو در زبان طبیعی (به عنوان مثال، هنگام درخواست "مرتب سازی لیست رشته ها"، کد با اجرای الگوریتم های مربوطه نمایش داده می شود).

مجموعه داده پیشنهادی شامل بیش از 2 میلیون پیوند نظر کد است که بر اساس متون منبع کتابخانه های باز موجود تهیه شده است. کد متن منبع کامل توابع یا روش‌ها را پوشش می‌دهد و نظر اقدامات انجام شده توسط تابع را توصیف می‌کند (مستندات دقیق ارائه شده است). در حال حاضر مجموعه داده ها برای Python، JavaScript، Ruby، Go، Java و PHP آماده شده اند. نمونه هایی از استفاده از مجموعه داده های پیشنهادی برای آموزش انواع مختلف شبکه های عصبی از جمله ارائه شده است کیسه کلمات عصبی, RNN, توجه به خود (BERT) و ترکیبی 1D-CNN+ Self-Attention.

برای توسعه مکانیسم‌های جستجوی زبان طبیعی، مجموعه‌ای از چالش‌های CodeSearchNet نیز آماده شده است، از جمله
99 معمولی جستارهایی با حدود 4 هزار حاشیه نویسی متخصص که محتمل ترین پیوندهای کد را در مجموعه داده CodeSearchNet Corpus توصیف می کند و حدود 6 میلیون روش و عملکرد را پوشش می دهد (اندازه را تنظیم کنید حدود 20 گیگابایت). چالش CodeSearchNet می تواند به عنوان معیاری برای ارزیابی اثربخشی روش های خاص برای جستجوی کد زبان طبیعی باشد. با استفاده از ابزار KubeFlow آماده شده
مثال موتور جستجوی کد

منبع: opennet.ru

اضافه کردن نظر