أداة تلخيص رمز المصدر Funcom - الإصدار العام
يحتوي هذا المستودع على رمز الإصدار العام لـ Funcom ، وهي أداة لتلخيص رمز المصدر. تلخيص الكود هو مهمة توليد أوصاف اللغة الطبيعية تلقائيًا.
Leclair ، A. ، McMillan ، C. ، "توصيات لمجموعات البيانات لتلخيص رمز المصدر" ، في بروك. من المؤتمر السنوي لعام 2019 للفصل في أمريكا الشمالية للجمعية اللغوية الحسابية (NAACL'19) ، مسار ورقة بحث قصيرة ، مينيابوليس ، الولايات المتحدة الأمريكية ، 2-7 يونيو 2019.
Leclair ، A. ، Jiang ، S. ، McMillan ، C. من المؤتمر الدولي 41 ACE/IEEE حول هندسة البرمجيات (ICSE'19) ، مونتريال ، مراقبة الجودة ، كندا ، 25-31 مايو ، 2019.
https://arxiv.org/abs/1902.01954
إخراج مثال تم أخذ عينات منه عشوائيًا من نموذج AST-Contendgru مقارنةً بالملخصات الجيدة المكتوب على الإنسان:
ناتج النموذج الأولي - المرجع البشري
إرجاع مدة الفيلم - احصل على الطول الكامل لهذا الفيلم بالثواني
اكتب سلسلة إلى العميل - اكتب سلسلة لجميع العملاء المتصلين
تم استدعاء هذه الطريقة للإشارة إلى الصفحة التالية في الصفحة - استدعاء للانتقال بشكل صريح إلى الصفحة التالية من داخل رسم واحد
إرجاع قائمة بجميع المعرفات التي تتطابق مع الجين المعطى - احصل على قائمة بمعرفات الفئة الفائقة لاسم الجين
يقارن العقدتين من خلال unk - قارن العقد N1 و N2 عن طريق إدخال DX الخاص بهم
تقوم هذه الطريقة بتحديث لوحة الشجرة - يقوم بتحديث لوحة الشجرة بشجرة جديدة
إرجاع عدد المخلفات في التسلسل - احصل على عدد من المخلفات المتفاعلة في المجال ب
إرجاع صحيح إذا تم العثور على الشبكة - إرجاع صحيح إذا تم تمرير عنوان inet تطابق شبكة تم استخدامها
رسالة حالة السجل - سجل حالة الرسالة الحالية كمعلومات
هذا المستودع هو أرشيف لورقة ICSE'19 المذكورة أعلاه. إنه مكان جيد للبدء ، لكنك قد ترغب أيضًا في إلقاء نظرة على مشاريعنا الأحدث:
https://github.com/aakashba/callcon-public
https://github.com/attn-to-fc/attn-to-fc
https://github.com/acleclair/icpc2020_gnn
نفترض Ubuntu 18.04 ، Python 3.6 ، Keras 2.2.4 ، Tensorflow 1.12. قد تختلف Milage الخاص بك على أنظمة مختلفة.
نحن نقدم مجموعة بيانات تبلغ 2.1 متر من طرق Java وتعليقات الطريقة ، تم تنظيفها بالفعل وفصلها إلى مجموعات التدريب/Val/اختبار:
https://s3.us-east-2.amazonaws.com/icse2018/index.html
(ملاحظة: أصبحت هذه الورقة الآن عدة سنوات. يرجى الاطلاع على تحديث للبيانات هنا: https://github.com/aakashba/callcon-public)
استخراج مجموعة البيانات إلى دليل (/ scratch/ هو الافتراضي المفترض) بحيث يكون لديك بنية دليل:
/scratch/funcom/data/standard/dataset.pkl
إلخ. وفقًا للملفات الموضحة في الموقع أعلاه.
لتكون متسقة مع الافتراضات ، قم بإنشاء الدلائل التالية:
/scratch/funcom/data/outfir/models/
/scratch/funcom/data/outfir/تاريخ/
/scratch/funcom/data/outfir/تنبؤات/
you@server:~/dev/funcom $ time python3 train.py --model-type=attendgru --gpu=0
يتم تعريف أنواع النماذج في model.py. إصدار ICSE'19 هو AST-ANDENDGRU ، إذا كنت تسعى لإعادة إنتاجه للمقارنة مع النماذج الخاصة بك. لاحظ أن معلومات السجل لكل عصر يتم تخزينها في ملف PKL على سبيل المثال/scratch/funcom/data/outdir/histories/attendgru_hist_1551297717.pkl. يوجد عدد صحيح في نهاية الملف هو الوقت الذي بدأ فيه التدريب ، ويستخدم لتوصيل بيانات السجل والتكوين والنموذج والتنبؤ. على سبيل المثال ، سوف ينتج التدريب في Greatgru إلى Epoch 5:
/scratch/funcom/data/outdir/histories/attendgru_conf_1551297717.pkl
/scratch/funcom/data/outdir/histories/attendgru_hist_1551297717.pkl
/scratch/funcom/data/outdir/models/attendgru_e01_1551297717.h5
/scratch/funcom/data/outdir/models/attendgru_e02_1551297717.h5
/scratch/funcom/data/outdir/models/attendgru_e03_1551297717.h5
/scratch/funcom/data/outdir/models/attendgru_e04_1551297717.h5
/scratch/funcom/data/outdir/models/attendgru_e05_1551297717.h5
خط أساس جيد للعمل الأولي هو نموذج الحضور. توضح التعليقات في الملف (النماذج/الحضور Gru.py) سلوكه بالتفصيل ، وهو يدرب بسرعة نسبية: حوالي 45 دقيقة لكل فترة باستخدام حجم الدُفعة 200 على Quadro P5000 ، مع أقصى أداء على التحقق من الصحة في Epoch 5.
you@server:~/dev/funcom $ time python3 predict.py /scratch/funcom/data/outdir/models/attendgru_E05_1551297717.h5 --gpu=0
المدخلات الضرورية الوحيدة للتنبؤ .py على سطر الأوامر هي ملف النموذج ، ولكن تتم قراءة معلومات التكوين من ملفات PKL المذكورة أعلاه. سيتم كتابة تنبؤات الإخراج إلى ملف على سبيل المثال:
/scratch/funcom/data/outdir/predutions/predict-attendgru_e05_1551297717.txt
لاحظ أن تنبؤات وحدة المعالجة المركزية ممكن من حيث المبدأ ، ولكن بشكل افتراضي ، تستخدم نماذج الحضور و AST-ANDENDGRU CUDNNGRU بدلاً من GRU القياسية ، والتي تستلزم استخدام وحدة معالجة الرسومات أثناء التنبؤ.
you@server:~/dev/funcom $ time python3 bleu.py /scratch/funcom/data/outdir/predictions/predict-attendgru_E05_1551297717.txt
سيؤدي ذلك إلى إخراج درجة Bleu لملف التنبؤ.