Code Compass هو محرك بحث سياقي لحزم البرامج التي تم تطويرها في Nokia Bell Labs. إنه يعيد استخدام رمز الشحن من خلال التوصية بأفضل مكتبات البرامج الممكنة لمشروع البرنامج المحدد. انظر بنفسك:

يتوفر Code Compass كموقع ويب ، واجهة برمجة تطبيقات REST وكمكون إضافي لـ VSCODE.
نحن فهرسة الحزم المستضافة على NPM لجافا سكريبت ، PYPI لبيثون ومافن سنترال لجافا.
إذا كنت تبحث عن أداة فهم التعليمات البرمجية المسماة من Ericsson لاستكشاف قواعد الكود الكبيرة ، فابحث هنا. بصرف النظر عن الاسم ، لا توجد علاقة (رسمية أو غير رسمية) بين هذا المشروع وهذا واحد.
يتم تأسيس تطوير البرمجيات الحديثة على إعادة استخدام الكود من خلال مكتبات وأطر المصادر المفتوحة. يتم نشر هذه المكتبات في مستودعات حزم البرامج ، والتي تنمو بمعدل أسي. من خلال إنشاء أدوات بحث أفضل في برامج البحث ، نهدف إلى تحفيز المزيد من إعادة استخدام التعليمات البرمجية وجعل حزم البرامج في "Long Tail" أكثر قابلية للاكتشاف.
مقدمة لطيفة عن السبب ، وماذا وكيف يمكن العثور على بوصلة رمز في هذا المدونة التمهيدية.
Code Compass هو محرك بحث سياق لحزم البرامج.
تختلف Code Compass عن محركات البحث الأخرى في الحزم حيث يمكنك "بذرة" البحث بأسماء المكتبات التي تعرفها أو تستخدمها بالفعل. نسمي هذه "مكتبات السياق". ثم تستخدم Code Compass مكتبات السياق هذه "لترسيخ" البحث في مداخن التكنولوجيا هذه الأكثر صلة بالرمز الخاص بك.
عند استخدام تمديد رمز Visual Studio IDE ، لا توجد حاجة لإدخال مكتبات السياق يدويًا: ستقوم Code Compass تلقائيًا باستخراج تبعيات استيراد الملف المصدر النشط لترسيخ بحثه.
لاحظ أن Code Compass لن ترسل رمزك إلى الخادم أبدًا. يتم إرسال فقط أسماء وحدات الطرف الثالث المستوردة في الكود الخاص بك.
يستخدم Code Compass التعلم الآلي غير الخاضع للإشراف لمعرفة كيفية تجميع حزم برامج مماثلة من خلال سياق الاستخدام ، كما هو محدد من خلال كيفية استيراد المكتبات جنبًا إلى جنب مع المكتبات الأخرى في قواعد الكود المصدرية المفتوحة الكبيرة.
يتم تمثيل حزم البرامج كمتجهات نسميها "متجهات المكتبة" عن طريق القياس مع ناقلات Word. تمامًا مثل Word2Vec يحول الكلمات إلى متجهات من خلال تحليل كيفية مشاركة الكلمات في Corpora النصية الكبيرة ، يحول "Import2Vec" المكتبات إلى متجهات من خلال تحليل كيفية مشاركة بيانات الاستيراد في قواعد الكود الكبيرة.
يمكنك قراءة التفاصيل في ورقة MSR 2019 الخاصة بنا. تتوفر مواد تكميلية بما في ذلك تضمينات المكتبة المدربة لـ Java و JavaScript و Python على Zenodo.
على سبيل المثال ، بالنسبة إلى Java ، نظرنا إلى عدد كبير من المشاريع المفتوحة المصدر على Github والمكتبات في Maven Central ودرسوا كيفية استيراد المكتبات عبر هذه المشاريع. حددنا مجموعات كبيرة من المشاريع المتعلقة بأطر الويب والحوسبة السحابية وخدمات الشبكة وتحليلات البيانات الضخمة. تم تجميع المشاريع المعروفة مثل Apache Hadoop و Spark و Kafka في نفس المنطقة لأنها شائعة الاستخدام معًا لدعم تحليلات البيانات الكبيرة.
فيما يلي تصور ثلاثي الأبعاد (مؤامرة T-SNE) لمساحة المتجه المستفادة لجافا. تمثل كل نقطة مكتبة Java وتتوافق المجموعات الملونة المختلفة مع المناطق المتخصصة المختلفة التي تم اكتشافها في البيانات. أبرزنا أسماء مشاريع أباتشي.

docs/ : مستندات REST API لخدمة البحث في Code Compassplugins/vscode/ : تمديد رمز Visual Studio لدمج Code Compass في IDEscripts/ : البرامج النصية لاستخراج البيانات لإنشاء امتيازات المكتبة المشتركة من رمز المصدرnbs/ : دفاتر Jupyter مع نماذج TensorFlow لتدريب تضمينات المكتبة من بيانات الاستيراد المشتركتم تطوير Code Compass من قبل فريق بحث في منصات التطبيقات ومختبر أنظمة البرمجيات في Nokia Bell Labs.
انظر المساهمين للحصول على قائمة أبجدية من المساهمين في Code Compass.
إذا كنت ترغب في تدريب التضمينات على لغات أخرى ، فقم بإلقاء نظرة على البرامج النصية تحت import2vec للحصول على فكرة عن البيانات المطلوبة.
إذا كانت لديك اقتراحات للتحسين ، أو ملاحظات المستخدم أو ترغب في الإبلاغ عن خطأ ، فيرجى فتح مشكلة في هذا المستودع.
BSD3