An automated grading system inspired by ExASAG (BEA 2023) and PMC12171532. Grades student answers using a two-stage pipeline β rule-based floor + NLP similarity scoring β then explains exactly which sentences and concepts drove the grade.
Transparent by design β every point is traceable to a specific text comparison.
Calculates a guaranteed minimum score based on literal technical term coverage. Students cannot score below what they explicitly mentioned.
Applies the PMC12171532 equations using NLP metrics and Semantic Similarity to award points for meaning and conceptual understanding.
The system combines the floor and semantic scores, capping the result at the maximum marks while generating explainable feedback.
Exact weights from PMC12171532 β every number is from the published paper.
Cnlp = min(max(0, 0.15Β·Sj + 0.05Β·Se
+ 0.15Β·Sc + 0.15Β·Sw), 1)
C = min(max(0, 0.5Β·Stf + 0.5Β·Cnlp),
1)
F = 0 if Stf<0.2 | 1 if
Stfβ₯0.9 & Swβ₯0.85 | C
otherwise
Stage2 = F Γ MaxMarks Final = min(MaxMarks, Stage1 + Stage2)
All computation runs in your browser. Zero data is sent to any server.
Upload a CSV β get scores for every row in seconds, entirely in-browser.
question desired_answer (or
reference_answer / ideal_answer)
student_answer (or response) β matches the
Mohler dataset format directly.
Supports the Mohler dataset format out-of-the-box.
Upload your Google Meet Transcript (.docx) and Student Summaries (.xlsx). The system will automatically refine the transcript into a reference answer and grade each student.
Provide the Google Meet transcript (.docx)
Must contain columns: emailAddress, name, summary (.xlsx)
Use the browser instantly, or run locally for heavier workloads and better semantic accuracy.
No install required. All computation runs in your browser.
.csv with columns
question, desired_answer,
student_answer β results appear instantly.
.docx and
student summaries .xlsx β click
Run Evaluation.
Uses real sentence-transformers (all-MiniLM-L6-v2) for semantic similarity.
git clone https://github.com/ManikeshK1/Explainable_Summary_Score.git cd Explainable_Summary_Score
# Windows python -m venv venv venv\Scripts\activate # macOS / Linux python3 -m venv venv source venv/bin/activate # Install all dependencies pip install -r requirements.txt
python local_grader.py \ --docx "path/to/transcript.docx" \ --xlsx "path/to/summaries.xlsx" \ --max-score 5Results are saved to
grading_results.csv in the
same folder.
emailAddress Β·
name Β· summary
ExplainGrade is an automated short-answer grading (ASAG) system built on two published research works and the Mohler Short Answer Grading Dataset β a benchmark of 2,273 student responses to Computer Science questions, graded 0β5 by human annotators.
The system addresses the twin problems present in ASAG: length-bias noise (longer answers get artificially inflated scores) and black-box scoring (students receive no actionable feedback). By anchoring every grade to specific, measurable NLP comparisons, every point is traceable.
The explanation layer is directly inspired by ExASAG (Filighera et al., BEA 2023), which introduces sentence-level attributions (SLA) β rating individual sentences in the student's response for their contribution to the final grade, giving students precise, actionable feedback.
| Symbol | Metric | Weight | What It Measures |
|---|---|---|---|
Stf
|
Semantic Similarity | 50% | TF cosine of full answer vectors β proxy for Universal Sentence Encoder contextual meaning |
Sj
|
Jaccard Similarity | 15% | Token-set intersection/union β rewards correct domain vocabulary and key terms |
Sc
|
Cosine Similarity | 15% | Word-frequency vector angle β captures synonym use and varied phrasing |
Sw
|
Norm. Word Count | 15% | ref keywords Γ· student keywords β prevents length inflation bias |
Se
|
Edit Similarity | 5% | Normalised Levenshtein β character-level phrasing similarity for typo tolerance |
Get instant answers about student performance, statistics, and system explanations using natural language.