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"