Developer Evaluation

How metre guessing works here

We do not feed raw Tamil into a big neural net in the browser. We turn the poem into structure, pack that into 51 numbers, then small models vote among four metre families. Classical rule checks stay separate — they never secretly rewrite the model score.

Three parts that never mix scores

Like a machine with sensors and a separate safety checklist: the structure engine measures the poem; the models guess the metre; a light classical sketch can raise flags — but the sketch does not change the model’s number.

Tamil textinput
Structureparse
51 numbersfeatures
Model votesguess
Lab tabsyou
Light classical flagssit beside votes — never rewrite them
Structure first, model votes second, classical flags in parallel.

Structure engine

Text → syllables → words/feet → bonds → 51 numbers. Same poem, same structure for a given parser version.

Small models

Rule-ish hybrid path, dense logistic, and “looks like mean Venpaa” prototypes each cast a share (0–1).

Light classical flags

Optional soft warnings for the model’s top guess. Shown beside ML — never fused into one score.

What you see in the lab tab (plain words)

How mixed? (entropy)

Is the model sure, or torn between metres?

If almost all the weight sits on one family, the number is low (clear). If weight is spread across several families, it is high (unclear). This is about the shape of the guess — not a scholar’s grade.

Lead over #2 (confidence gap)

How far is first place ahead of second?

A big lead means one metre clearly wins among the model votes. A tiny lead means two look almost the same. Still not classical proof.

Model votes

Several small tools voting on the same poem

Each head shows a 0–1 share for its favourite family. Use them to compare tools. On poems from our training anthology, votes can look very strong because the models already saw similar rows — that is normal and honest to say out loud.

Strong signals (pattern features)

Which of the 51 numbers mattered for this poem?

A short list of dense slots that pushed the logistic vote. Useful for debugging — not the full research catalogue.

Classical flags (when present)

Anything odd for the model’s top label?

Soft structural notes only. They do not re-score the model. Research dual-compare tables (offline) can group cases like “model said X, flags raised” — still two truths, one table.

Live browser vs offline training

Offline

  1. Parse special_type anthology
  2. Fit heads & freeze metrics
  3. Write ADOPT reports

Live (browser)

  1. Your poem → parse in WASM
  2. Cached heads vote once warmed
  3. Show numbers in Developer Evaluation
WhereWhat happensWhy it matters
Live (this site)Parse in WASM → show votes for this poemFast feedback while you write
Offline trainingFit heads on special_type rows; freeze metricsHonest scores live in dated reports
Stress rowsvariation poemsWhere models fail — not the main grade

Easy mistakes

  • “0.99 means 99% right” — No; it is share among four options for that tool.
  • “Flags mean the metre is proven” — No; light sketch only.
  • Training only on hard variation rows — Muddies the main grade.
  • Expecting every research method in the UI — Most stay offline; the lab shows the product surface.

Fields and methods we researched (and ship or keep offline). Names match the portfolio: control systems, machine learning, information theory, and data mining — mapped onto this poem parser.

Control systems & dynamical systems

Separation of plant and observer

Field / ideaIn this projectOnline UI?Offline research?
PlantParse stages: units → syllables → feet → bondsYes (structure)Yes
Sensorsdense[51], linkage histogramsYes (numbers)Yes
State4-way metre beliefYes (votes)Yes
ObserverHybrid / logistic / prototype headsYesYes
FeedbackLive re-parse debounce (UX rate limit)YesN/A
ReferenceGold parent_metre (special_type)IndirectYes (metrics)
NoiseShort poems, variation stress rowsSeen liveYes (robustness)
Separation principleML ⟂ classical flags (never fuse scores)Yes (policy)Yes
IdentificationWeight fit, PCA, prototypes after schema pinCached headsYes
Sensitivity∂score/∂dense_j, ablation, counterfactual flipsPattern list (light)Yes (A10–A11)
StabilitySchema + weight pins; ledger fingerprintPinned WASMYes (S03)

Machine learning (sklearn-map path)

Small N, engineered features first

MethodTierRoleOnline UI?Offline?
Multinomial / hybrid logisticAShipped ranking + dense baselineYesYes
Dense logistic (cached)ASoft class shares on z-scored denseYes (head)Yes
Class prototypes / k-NN massA“Looks like mean Venpaa”Yes (head)Yes
Linear SVMASecond linear ceilingNoYes
Calibration (Platt / isotonic)AHonest probability talkPartialYes
PCA / SVD, LDAADirections in dense spaceNoYes
Random Forest / GBDTBImportances → distill rulesNoYes
Kernel SVM, GMM, clusteringBNonlinear / structure discoveryNoYes
HMM / CRF on Ner–NiraiBSequence / structured labelsNoYes
1D CNN / small TransformerCOnly after dense baselinesNoResearch

Information theory & statistics

Honesty about uncertainty

FieldMeaning hereOnline UI?Offline?
Entropy (bits)How mixed the 4-way vote isYesYes
Epistemic margin / confidence gapTop1 − top2 massYesYes
Soft mass (0–1)Relative share per head — not calibrated %YesYes
Top-1, MRR, correct@2Primary ranking metricsNoYes (ADOPT)
Bootstrap / LOO / stratified CVTiny-N uncertaintyNoYes
ECE / reliability diagramsCalibration qualityNoYes
Mutual information dense_j ↔ metreWhich slots inform labelsNoYes (A06)
χ² / Fisher on linkage × metreDiscrete bond associationNoYes
Head A/B tableCompare estimators fairlyNoYes (A13)

Data mining & knowledge discovery

Human-readable patterns

MethodRoleOnline UI?Offline?
Association rules (Apriori-style)Itemsets ⇒ metreNoYes (A08)
Frequent Ner/Nirai motifsSequence vocabulary for later classicalNoYes (A09)
Contrast / emerging patternsVenpaa vs Aciriyappaa differentiatorsNoYes
Error subgroup discoveryWhy ML failsNoYes
Pattern cards (A12 freeze)Per-metre top dense signalsFreeze date shownYes
Disagreement miningML vs classical dual-compare bucketsPolicy onlyYes (D03)
Anomaly / isolation ideasSuspect gold or parseNoYes (B)

Product wire fields you can see

From parse_poem_wasm → metre_ml

JSON / UI fieldPlain meaningLive?
metre_typeBest guess after hybrid/heuristic pathYes
metre_entropy_bitsHow mixed? (entropy)Yes
metre_epistemic_marginLead over #2Yes
top_k_metre_hypothesesRanked families with soft massYes (Structure)
parse_features.dense[51]Numeric summary of structureAdapted
metre_ml.head_votes[]Per-head favourite + soft massYes
metre_ml.pattern_features[]Top dense slots for this poemYes
metre_ml.dual_truth.*ML label ∥ classical flags + policyYes
metre_ml.a12_freeze_datePattern freeze eraYes if present
metre_ml.honesty_label / uncertainty_blurbShort honesty copyYes
ml_only_classical_flags (reports)Dual-compare bucket offlineNo (reports)

Ontology

Poem parts & bonds

Semantics

What each number means

Anthology

special_type gold

ML map

linear first

Control

measure ⟂ flags

51 numbers + multi-head product surface

Fixed schema · special_type fit · dual-truth wire

How we train (and what we do not claim)

  1. Pin meaning first (SOA S00–S03) — ontology of poem parts, exact meaning of each dense slot, anthology split (special_type gold vs variation stress), ledger fingerprint.
  2. Freeze a baseline (A00) — dated top-1 / MRR on special_type. That freeze is ADOPT evidence, not the browser UI.
  3. Fit small heads — dense logistic and prototypes on special_type (cached in WASM for live). Hybrid path can re-rank with shipped weights.
  4. Discover, then freeze patterns (A05–A12) — before soft classical sketches ship as product.
  5. Classical stays orthogonal (D) — flags and dual-compare reports never overwrite hybrid scores.
  1. S

    Foundations

    meaning pinned

  2. A0

    Baseline freeze

    ADOPT grade

  3. A2

    Dual-truth wire

    no score fusion

  4. A3–4

    Logistic + prototypes

    live heads

  5. A12

    Pattern freeze

    before classical

  6. D

    Classical dual path

    flags only

Online vs offline surfaces

Online (browser WASM)

parse_poem_wasm → dense + head votes + entropy/margin + dual_truth. Product UI: Live, Structure, Developer Evaluation. Offline crates can be compiled out of product WASM.

Offline (cargo examples / reports)

Freeze metrics, PCA/MI/association, pattern cards, head A/B, dual-compare (e.g. ml_only_classical_flags), mismatch tables. Truth for ADOPT lives under data/training/reports.

Repo documents (source of truth)

← Back to Prosody Lab