Sistem ini merupakan API berbasis Flask yang digunakan untuk menilai kemiripan kode Python siswa terhadap kode referensi. Sistem ini terinspirasi dari CodeBLEU namun dibuat lebih ringan dan dapat di-deploy secara mandiri, sehingga cocok untuk digunakan di berbagai platform (Windows/Linux/Mac).
✅ N-gram Match Score (BLEU)
Mengukur kemiripan token antara kode referensi dan kode siswa menggunakan tokenisasi Python standar.
✅ Weighted N-gram Match Score
Sama seperti BLEU, namun dengan bobot tambahan pada kata kunci Python (keyword) agar sistem dapat menilai penggunaan sintaks yang tepat.
✅ Syntax Match Score (AST)
Mengukur kemiripan struktur sintaks (AST) antara kode referensi dan kode siswa menggunakan AST Python. Variabel dan literal dinormalisasi agar lebih adil dalam penilaian.
✅ Dataflow Match Score
Mengukur kesamaan alur data antar variabel menggunakan analisis AST Python. Sistem akan menangkap assignment dan juga pseudo-edge pada function call agar lebih mendekati metode CodeBLEU asli.
✅ Total Score
Gabungan dari keempat skor di atas dengan bobot:
. ├── app.py # API utama (Flask) ├── bleu.py # N-gram matching (BLEU) ├── weighted_ngram_match.py # Weighted BLEU ├── syntax_match.py # Syntax AST matching ├── dataflow_match.py # Dataflow matching ├── requirements.txt # Dependensi
POST /evaluate{
"reference_code": "def greet(name):\n print('Hello', name)",
"hypothesis_code": "def greet(username):\n print('Hi', username)"
}
{
"ngram_match_score": 0.85,
"weighted_ngram_match_score": 0.88,
"syntax_match_score": 0.75,
"dataflow_match_score": 1.0,
"total_score": 0.85
}
Mari berdiskusi lebih lanjut tentang bagaimana saya bisa membantu project Anda
Hubungi Saya