--- language: grc license: gpl-3.0 datasets: - Macronizer/oga-macronized tags: - ancient-greek - vowel-length - macronization - token-classification - char-level --- # grc-macronizer-char: a small char-level model for Ancient Greek vowel-length annotation This model predicts the phonemic length (long/short/undetermined) of the three Ancient Greek "dichrona" -- alpha (α), iota (ι), and upsilon (υ) -- whose length is not disambiguated by the standard Greek script. It was trained on Ancient Greek text automatically macronized by the rule-based grc-macronizer, applied to the [Opera Graeca Adnotata](https://doi.org/10.5281/zenodo.14206061) corpus (Celano 2024), and is intended as a complementary, corpus-general alternative to that rule-based system. ## Architecture A small transformer encoder (~0.9M parameters) operating over three character-level "planes" per input position: - **plane 1 (letter)**: which of the 24 Greek letters (final/medial sigma folded together), or space, or "other" (punctuation/digits/foreign chars) - **plane 2 (diacritic)**: the combination of accent/breathing/diaeresis marks on that letter, if any (a small vocabulary fit from the training data) - **target (macron)**: none / short / long -- predicted only at positions that are genuine ambiguous dichrona (diphthong members and circumflexed vowels are excluded, matching the rule-based system's own definition) During training, the diacritic plane is randomly masked (accents stripped) for a fraction of characters, so the model also learns to macronize unaccented input. ## Usage ```python import sys sys.path.insert(0, "path/to/grc-macronizer/macron_model") # for predict.py from predict import MacronPredictor predictor = MacronPredictor("path/to/downloaded/checkpoint") macronized = predictor.macronize("ανθρωπος ανηρ") # -> "α^νθρωπος α_νηρ" ``` `MacronPredictor` expects the checkpoint directory (containing `config.json`/`model.safetensors`) plus a sibling or parent `diacritic_vocab.json` (see `predict.py` for the exact lookup logic). The `predict.py`/`tokenizer.py` source lives in [grc-macronizer/macron_model](https://anonymous.4open.science/r/grc-macronizer-68DC/macron_model/).