tinykavi's picture
Add writing_pattern_classifier package for live demo
5548ff6
"""
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"