--- language: tr license: apache-2.0 tags: - tokenizer - morphel - morphology-aware - turkish - xnli - nlp-research - low-resource - ablation-random-baseline datasets: - facebook/xnli --- # NIRVLab — MorpheL Tokenizer for Turkish XNLI — ABLATION: Random-segmentation null baseline **This is NOT the real MorpheL algorithm.** Every algorithmic component is disabled: no MI scoring (Eq.1-4), no vowel-consonant plausible-boundary pre-filter, no TopK candidate ranking (Eq.5), no Gumbel sampling (Eq.6-9). Boundary count/position come from a plain uniform RNG. Exists purely as a worst-case sanity control for MorpheL's own pipeline (Proposal: *MorpheL: Morphology-Aware Tokenizer Adaptation for Pretrained Models in Low-Resource Languages*) — if the real MI+Gumbel pipeline doesn't clearly beat this, the added complexity isn't earning its keep. Trained on the Turkish (`tr`) subset of [facebook/xnli](https://huggingface.co/datasets/facebook/xnli) — all splits. ## Algorithm (ablated) Words are segmented by drawing a uniform-random number of cuts (0-2) and uniform-random cut positions — no MI, no vowel filter, no Gumbel, no learned signal of any kind. Segmentation is cached at induction time with a fixed seed for reproducibility, but carries no linguistic information. **Vocab induction also differs from the real MorpheL pipeline here**: the shared span-recombination step (counting every contiguous merge of a word's pieces, e.g. [a,b,c] -> a,b,c,ab,bc,abc) was REMOVED for this ablation. That step lets a frequent whole word win a vocab slot regardless of how it was cut (the full-span "abc" always carries the word's true corpus frequency), which would silently undo the random segmentation and make this not a true know-nothing floor. Only the literal pieces produced by random cutting are counted here. ## Training Config | Parameter | Value | |---|---| | Algorithm | RANDOM (ablation — MI+Gumbel+vowel-filter all OFF) | | Vocabulary size | 32,054 | | random_max_cuts | 2 | | seed | 42 | | min_frequency | 2 | | Special tokens | `, , , , ` | | Corpus | `facebook/xnli/tr` — all splits (800,404 sentences) | | Vowel set | N/A — no plausible-boundary filter in this ablation | ## Evaluation Metrics (vs Baselines, vocab_size=32000, same corpus) | Metric | BPE | WordPiece | Unigram | MorpheL (full) | **Random (this ablation)** | |---|---|---|---|---| | Fertility ↓ | — | — | — | — | **1.7110** | | Tokens/char ↓ | — | — | — | — | **0.2284** | | Avg seq len ↓ | — | — | — | — | **19.84** | | Vocab coverage ↑ | — | — | — | — | **1.0000** | | OOV rate ↓ | — | — | — | — | **0.0000** | *Fill baseline columns after running baseline notebooks.* ## Usage ```python from transformers import AutoTokenizer tokenizer = AutoTokenizer.from_pretrained("NIRVLab/xnli-morphel-tr-32k-ablation-random-baseline") ``` > **Note**: this checkpoint uses RANDOM segmentation (ablation control) — do > not use it for actual MorpheL comparisons other than as the worst-case > sanity baseline. No temperature / Gumbel parameter applies here.