Skip to main content
The benchmark suite evaluates mySpellChecker’s end-to-end accuracy (detection recall, suggestion quality, false positive rate, and latency) across 1,138 hand-annotated Myanmar sentences organized into difficulty tiers and 6 domains.

Current Results

Tested with mySpellChecker_production.db (565 MB, 601K words, full POS + enrichment tables) on macOS Apple Silicon, validation level word.
The dictionary database and semantic model (v2.3) used in these benchmarks are not included in the library. They were built from our own proprietary corpus using the data pipeline and training pipeline respectively. Your results will vary depending on the dictionary database you build and the semantic model you train. See Building Dictionaries and Training Models to create your own.

Overall Metrics (no semantic)

Overall Metrics (with semantic v2.3)

Per-Tier Breakdown (no semantic)

Benchmark Dataset

Sentence Distribution

The benchmark is defined in benchmarks/myspellchecker_benchmark.yaml (1,138 sentences, 564 error spans) covering 6 domains: conversational, academic, technical, news, religious, and literary.

Composite Score Formula

Where latency_normalized = min(p95 / 500ms, 1.0).

Running Benchmarks

Basic Run

Key Flags

Ablation Runs

Disable targeted rule groups to measure their impact:

Utility Scripts

Run Comparison

Compare two benchmark run artifacts to track regressions:

Rule Auditing

Audit targeted rerank rules from telemetry data:

Ablation Matrix

Run full ablation study (default + each group off + all off):

Semantic Model Evaluation

Head-to-head model comparison (confusable discrimination, logit analysis, perplexity):

DB Query Profiling

Instrument SQLiteProvider to count and time every database call per sentence:

Known Limitations

  1. 10 residual FPs: false positives on edge-case constructions, documented and accepted.
  2. 25 FNs without semantic: context-dependent errors requiring MLM; semantic model rescues 23 of 25.
  3. Suggestion quality plateau: remaining rank>1 cases are inherent morpheme/compound ambiguity where the same error pattern has conflicting gold corrections.

See Also