เครื่องมือสรุปซอร์สโค้ด Funcom - รีลีสสาธารณะ
ที่เก็บนี้มีรหัสเผยแพร่สาธารณะสำหรับ Funcom ซึ่งเป็นเครื่องมือสำหรับการสรุปซอร์สโค้ด การสรุปรหัสเป็นหน้าที่ของการสร้างคำอธิบายภาษาธรรมชาติโดยอัตโนมัติของซอร์สโค้ด
Leclair, A. , McMillan, C. , "คำแนะนำสำหรับชุดข้อมูลสำหรับการสรุปซอร์สโค้ด" ใน Proc ของการประชุมประจำปี 2019 บทที่อเมริกาเหนือของสมาคมเพื่อการคำนวณภาษาศาสตร์ (NAACL'19), ติดตามงานวิจัยสั้น ๆ , Minneapolis, USA, 2-7 มิถุนายน, 2019
Leclair, A. , Jiang, S. , McMillan, C. , "แบบจำลองระบบประสาทสำหรับการสร้างบทสรุปภาษาธรรมชาติของรูทีนย่อยโปรแกรม" ใน Proc จากการประชุมนานาชาติ Ace/IEEE ครั้งที่ 41 เกี่ยวกับวิศวกรรมซอฟต์แวร์ (ICSE'19), มอนทรีออล, QC, แคนาดา, 25-31 พฤษภาคม, 2019
https://arxiv.org/abs/1902.01954
ตัวอย่างตัวอย่างที่สุ่มจากโมเดล AST-ATTENDGRU เมื่อเทียบกับการอ้างอิงสรุปที่เขียนได้ดีมนุษย์:
ต้นแบบเอาท์พุท - การอ้างอิงของมนุษย์
ส่งคืนระยะเวลาของภาพยนตร์ - รับความยาวเต็มของภาพยนตร์เรื่องนี้ในไม่กี่วินาที
เขียนสตริงไปยังไคลเอนต์ - เขียนสตริงไปยังไคลเอนต์ที่เชื่อมต่อทั้งหมด
วิธีนี้ถูกเรียกให้ระบุหน้าถัดไปในหน้า - โทรไปยังหน้าถัดไปอย่างชัดเจนจากภายในการวาดเดียว
ส่งคืนรายการ ID ทั้งหมดที่ตรงกับยีนที่กำหนด - รับรายการของ superfamily ids สำหรับชื่อยีน
เปรียบเทียบสองโหนดโดย unk - เปรียบเทียบโหนด N1 และ N2 โดยรายการ DX ของพวกเขา
วิธีนี้จะอัปเดตแผงต้นไม้ - อัปเดตแผงต้นไม้ด้วยต้นไม้ใหม่
ส่งคืนจำนวนสารตกค้างในลำดับ - รับจำนวนการโต้ตอบตกค้างในโดเมน B
ส่งคืนจริงหากพบเครือข่าย - ส่งคืนจริงถ้าผ่านที่อยู่ 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 ไมล์สะสมของคุณอาจแตกต่างกันไปในระบบที่แตกต่างกัน
เราจัดเตรียมชุดข้อมูลของวิธี Java และความคิดเห็นวิธีการ 2.1M ทำความสะอาดและแยกออกเป็นชุดฝึกอบรม/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/outdir/models/
/scratch/funcom/data/outdir/histories/
/scratch/funcom/data/outdir/predictions/
you@server:~/dev/funcom $ time python3 train.py --model-type=attendgru --gpu=0
ประเภทของรุ่นถูกกำหนดใน model.py เวอร์ชัน ICSE'19 เป็น AST-AttendGru หากคุณกำลังพยายามที่จะทำซ้ำเพื่อเปรียบเทียบกับรุ่นของคุณเอง โปรดทราบว่าข้อมูลประวัติสำหรับแต่ละยุคถูกเก็บไว้ในไฟล์ PKL เช่น /scratch/funcom/data/outdir/histories/attendgru_hist_1551297717.pkl จำนวนเต็มในตอนท้ายของไฟล์คือช่วงเวลาที่การฝึกอบรมเริ่มต้นและใช้ในการเชื่อมต่อประวัติศาสตร์การกำหนดค่าโมเดลและข้อมูลการทำนาย ตัวอย่างเช่นการฝึกอบรมที่เข้าร่วมการศึกษาถึง 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
พื้นฐานที่ดีสำหรับการทำงานเริ่มต้นคือโมเดลที่เข้าร่วม ความคิดเห็นในไฟล์ (Models/Antergru.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/predictions/predict-attendgru_e05_1551297717.txt
โปรดทราบว่าการทำนาย CPU นั้นเป็นไปได้ในหลักการ แต่โดยค่าเริ่มต้นโมเดล ASTGRU และ AST-ATTENDGRU ใช้ CUDNNGRU แทน GRU มาตรฐานซึ่งจำเป็นต้องใช้ GPU ในระหว่างการทำนาย
you@server:~/dev/funcom $ time python3 bleu.py /scratch/funcom/data/outdir/predictions/predict-attendgru_E05_1551297717.txt
สิ่งนี้จะส่งออกคะแนน Bleu สำหรับไฟล์การทำนาย