File size: 1,227 Bytes
5548ff6 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 | """
Rule-based sentence-level dyslexic writing pattern inference.
This module implements dominance-aware, interpretable rules
for identifying dyslexic writing patterns from surface features.
"""
def infer_pattern(features: dict) -> str:
"""
Infer the dominant dyslexic writing pattern for a sentence
using surface-level error signals.
Parameters
----------
features : dict
Dictionary containing extracted surface features.
Returns
-------
str
One of the predefined dyslexic writing pattern labels.
"""
# Priority 1: Word boundary confusion
if features.get("has_spacing_issue"):
return "Word Boundary Confusion"
has_sub = features.get("has_substitution", False)
has_omit = features.get("has_omission", False)
has_diacritic = features.get("has_diacritic_loss", False)
# Priority 2: Mixed dyslexic pattern
if has_sub and has_omit:
return "Mixed Dyslexic Pattern"
# Priority 3: Phonetic confusion
if has_sub:
return "Phonetic Confusion"
# Priority 4: Orthographic instability
if has_omit or has_diacritic:
return "Orthographic Instability"
# Fallback
return "No Dominant Pattern"
|