Logo Lanfrica

acoli-repo/hammy

Domaine:

natural language processing
Créateur:
aco
Hôte:
HMM tagging for languages without training corpora # Hammy. HMM tagging for languages without training corpora Hammy has been created for didactic purposes and thus does not provide any optimizations as commonly found in real-world HMM implementations. If you nevertheless like to use it, please cite the following paper: Christian Chiarcos (2026), Towards the Morphological Annotation of North Markian (Low German), LREC-2026. The innovative idea is to use an unannotated corpus and to compare it with related languages to obtain transition probabilities - extrapolate emission probability from frequency - observe transition probabilities from related languages - optionally: refine emission probabilities with prefix- / suffix-matching - optionally: tag top k expressions manually We include data for an experiment on Middle High German, using ReM as gold standard and UD corpora as basis build data with $> make - `target/mhd/UD_split`: gold corpus, automatically mapped from original annotation, split: 80-10-10. note that we split by files, not by lines, so, the orthographies are different So far, we have a vanilla HMM implementation: training (over train split, UD version) $> python3 train.py rem_train.model target/mhd/UD_split/train.conllu tagging (and evaluation) $> python3 tag.py rem_train.model target/mhd/UD_split/test.conllu -e 3 To train and tag on full tags (incl. morphosyntactic features), specify the columns $> python3 train.py rem_train.xpos.model target/mhd/UD_split/train.conllu -c 4 $> python3 tag.py rem_train.xpos.model target/mhd/UD_split/test.conllu -e 4 Use `adopt.py` to port a trained model to another language: - input data should be pre-annotated against the same tagset, e.g., from a dictionary - input data can contain ambiguities, marked by |, then count both, weighted by current probabilities for UNKNOWN - input data can contain gaps - replace emission probabilities and word2freq - keep transition probabilities Use `merge.py` to merge two or more models: - average transition probabilities …