CoolFace
Modelpublic

wikilangs/scn

sourceHugging Facemitupdated 9mo agoView on Hugging Face
0likes
README.md776 linesDownload Raw Back to root
1---2language: scn3language_name: Sicilian4language_family: romance_galloitalic5tags:6  - wikilangs7  - nlp8  - tokenizer9  - embeddings10  - n-gram11  - markov12  - wikipedia13  - feature-extraction14  - sentence-similarity15  - tokenization16  - n-grams17  - markov-chain18  - text-mining19  - fasttext20  - babelvec21  - vocabulous22  - vocabulary23  - monolingual24  - family-romance_galloitalic25license: mit26library_name: wikilangs27pipeline_tag: text-generation28datasets:29  - omarkamali/wikipedia-monthly30dataset_info:31  name: wikipedia-monthly32  description: Monthly snapshots of Wikipedia articles across 300+ languages33metrics:34  - name: best_compression_ratio35    type: compression36    value: 4.49137  - name: best_isotropy38    type: isotropy39    value: 0.855940  - name: vocabulary_size41    type: vocab42    value: 043generated: 2026-01-1044---45 46# Sicilian - Wikilangs Models47## Comprehensive Research Report & Full Ablation Study48 49This repository contains NLP models trained and evaluated by Wikilangs, specifically on **Sicilian** Wikipedia data.50We analyze tokenizers, n-gram models, Markov chains, vocabulary statistics, and word embeddings.51 52## 📋 Repository Contents53 54### Models & Assets55 56- Tokenizers (8k, 16k, 32k, 64k)57- N-gram models (2, 3, 4, 5-gram)58- Markov chains (context of 1, 2, 3, 4 and 5)59- Subword N-gram and Markov chains60- Embeddings in various sizes and dimensions (aligned and unaligned)61- Language Vocabulary62- Language Statistics63 64![Performance Dashboard](visualizations/performance_dashboard.png)65 66### Analysis and Evaluation67 68- [1. Tokenizer Evaluation](#1-tokenizer-evaluation)69- [2. N-gram Model Evaluation](#2-n-gram-model-evaluation)70- [3. Markov Chain Evaluation](#3-markov-chain-evaluation)71- [4. Vocabulary Analysis](#4-vocabulary-analysis)72- [5. Word Embeddings Evaluation](#5-word-embeddings-evaluation)73- [6. Morphological Analysis (Experimental)](#6--morphological-analysis-experimental)74- [7. Summary & Recommendations](#7-summary--recommendations)75- [Metrics Glossary](#appendix-metrics-glossary--interpretation-guide)76- [Visualizations Index](#visualizations-index)77 78---79## 1. Tokenizer Evaluation80 81![Tokenizer Compression](visualizations/tokenizer_compression.png)82 83![Tokenizer Fertility](visualizations/tokenizer_fertility.png)84 85![Tokenizer OOV](visualizations/tokenizer_oov.png)86 87![Total Tokens](visualizations/tokenizer_total_tokens.png)88 89### Results90 91| Vocab Size | Compression | Avg Token Len | UNK Rate | Total Tokens |92|------------|-------------|---------------|----------|--------------|93| **8k** | 3.628x | 3.63 | 0.0737% | 333,830 |94| **16k** | 3.960x | 3.96 | 0.0804% | 305,808 |95| **32k** | 4.255x | 4.26 | 0.0864% | 284,572 |96| **64k** | 4.491x 🏆 | 4.49 | 0.0912% | 269,653 |97 98### Tokenization Examples99 100Below are sample sentences tokenized with each vocabulary size:101 102**Sample 1:** `Samo è nu cumuni di 1.005 abbitanti dâ pruvincia di Riggiu Calabbria. dâ pruvinc...`103 104| Vocab | Tokens | Count |105|-------|--------|-------|106| 8k | `▁sa mo ▁è ▁nu ▁cumuni ▁di ▁ 1 . 0 ... (+15 more)` | 25 |107| 16k | `▁samo ▁è ▁nu ▁cumuni ▁di ▁ 1 . 0 0 ... (+14 more)` | 24 |108| 32k | `▁samo ▁è ▁nu ▁cumuni ▁di ▁ 1 . 0 0 ... (+14 more)` | 24 |109| 64k | `▁samo ▁è ▁nu ▁cumuni ▁di ▁ 1 . 0 0 ... (+14 more)` | 24 |110 111**Sample 2:** `è un cumuni talianu dâ pruvincia di Sondriu ntâ Lummardìa. dâ pruvincia di Sondr...`112 113| Vocab | Tokens | Count |114|-------|--------|-------|115| 8k | `▁è ▁un ▁cumuni ▁talianu ▁dâ ▁pruvincia ▁di ▁sondriu ▁ntâ ▁lummardìa ... (+5 more)` | 15 |116| 16k | `▁è ▁un ▁cumuni ▁talianu ▁dâ ▁pruvincia ▁di ▁sondriu ▁ntâ ▁lummardìa ... (+5 more)` | 15 |117| 32k | `▁è ▁un ▁cumuni ▁talianu ▁dâ ▁pruvincia ▁di ▁sondriu ▁ntâ ▁lummardìa ... (+5 more)` | 15 |118| 64k | `▁è ▁un ▁cumuni ▁talianu ▁dâ ▁pruvincia ▁di ▁sondriu ▁ntâ ▁lummardìa ... (+5 more)` | 15 |119 120**Sample 3:** `è un cumuni talianu dâ pruvincia di Cremona ntâ Lummardìa. dâ pruvincia di Cremo...`121 122| Vocab | Tokens | Count |123|-------|--------|-------|124| 8k | `▁è ▁un ▁cumuni ▁talianu ▁dâ ▁pruvincia ▁di ▁cremona ▁ntâ ▁lummardìa ... (+5 more)` | 15 |125| 16k | `▁è ▁un ▁cumuni ▁talianu ▁dâ ▁pruvincia ▁di ▁cremona ▁ntâ ▁lummardìa ... (+5 more)` | 15 |126| 32k | `▁è ▁un ▁cumuni ▁talianu ▁dâ ▁pruvincia ▁di ▁cremona ▁ntâ ▁lummardìa ... (+5 more)` | 15 |127| 64k | `▁è ▁un ▁cumuni ▁talianu ▁dâ ▁pruvincia ▁di ▁cremona ▁ntâ ▁lummardìa ... (+5 more)` | 15 |128 129 130### Key Findings131 132- **Best Compression:** 64k achieves 4.491x compression133- **Lowest UNK Rate:** 8k with 0.0737% unknown tokens134- **Trade-off:** Larger vocabularies improve compression but increase model size135- **Recommendation:** 32k vocabulary provides optimal balance for production use136 137---138## 2. N-gram Model Evaluation139 140![N-gram Perplexity](visualizations/ngram_perplexity.png)141 142![N-gram Unique](visualizations/ngram_unique.png)143 144![N-gram Coverage](visualizations/ngram_coverage.png)145 146### Results147 148| N-gram | Variant | Perplexity | Entropy | Unique N-grams | Top-100 Coverage | Top-1000 Coverage |149|--------|---------|------------|---------|----------------|------------------|-------------------|150| **2-gram** | Word | 16,384 | 14.00 | 58,233 | 15.6% | 34.5% |151| **2-gram** | Subword | 244 🏆 | 7.93 | 4,404 | 70.4% | 99.0% |152| **3-gram** | Word | 24,141 | 14.56 | 72,090 | 12.9% | 28.3% |153| **3-gram** | Subword | 2,050 | 11.00 | 34,045 | 29.2% | 74.5% |154| **4-gram** | Word | 36,264 | 15.15 | 109,633 | 12.4% | 28.1% |155| **4-gram** | Subword | 12,335 | 13.59 | 174,994 | 13.1% | 41.0% |156| **5-gram** | Word | 23,643 | 14.53 | 73,924 | 12.6% | 32.9% |157| **5-gram** | Subword | 48,581 | 15.57 | 458,275 | 7.8% | 23.9% |158 159### Top 5 N-grams by Size160 161**2-grams (Word):**162 163| Rank | N-gram | Count |164|------|--------|-------|165| 1 | `pruvincia di` | 15,198 |166| 2 | `dâ pruvincia` | 14,084 |167| 3 | `di l` | 11,236 |168| 4 | `è un` | 5,502 |169| 5 | `è nu` | 5,227 |170 171**3-grams (Word):**172 173| Rank | N-gram | Count |174|------|--------|-------|175| 1 | `dâ pruvincia di` | 13,755 |176| 2 | `è un cumuni` | 4,935 |177| 3 | `talianu dâ pruvincia` | 4,537 |178| 4 | `cumuni talianu dâ` | 4,533 |179| 5 | `un cumuni talianu` | 4,497 |180 181**4-grams (Word):**182 183| Rank | N-gram | Count |184|------|--------|-------|185| 1 | `cumuni talianu dâ pruvincia` | 4,533 |186| 2 | `è un cumuni talianu` | 4,497 |187| 3 | `un cumuni talianu dâ` | 4,420 |188| 4 | `talianu dâ pruvincia di` | 4,404 |189| 5 | `abbitanti dâ pruvincia di` | 1,920 |190 191**5-grams (Word):**192 193| Rank | N-gram | Count |194|------|--------|-------|195| 1 | `è un cumuni talianu dâ` | 4,420 |196| 2 | `un cumuni talianu dâ pruvincia` | 4,420 |197| 3 | `cumuni talianu dâ pruvincia di` | 4,400 |198| 4 | `ntâ lummardìa dâ pruvincia di` | 1,512 |199| 5 | `nu cumuni dâ pruvincia di` | 1,411 |200 201**2-grams (Subword):**202 203| Rank | N-gram | Count |204|------|--------|-------|205| 1 | `i _` | 648,749 |206| 2 | `a _` | 449,210 |207| 3 | `u _` | 428,360 |208| 4 | `_ d` | 299,061 |209| 5 | `_ c` | 245,777 |210 211**3-grams (Subword):**212 213| Rank | N-gram | Count |214|------|--------|-------|215| 1 | `_ d i` | 173,046 |216| 2 | `d i _` | 150,142 |217| 3 | `n i _` | 97,798 |218| 4 | `t i _` | 93,979 |219| 5 | `i _ d` | 89,842 |220 221**4-grams (Subword):**222 223| Rank | N-gram | Count |224|------|--------|-------|225| 1 | `_ d i _` | 140,256 |226| 2 | `i _ d i` | 52,971 |227| 3 | `_ l u _` | 51,883 |228| 4 | `a _ d i` | 47,082 |229| 5 | `_ l a _` | 44,178 |230 231**5-grams (Subword):**232 233| Rank | N-gram | Count |234|------|--------|-------|235| 1 | `i _ d i _` | 43,124 |236| 2 | `a _ d i _` | 41,391 |237| 3 | `u _ d i _` | 29,866 |238| 4 | `_ d i _ l` | 28,707 |239| 5 | `i o n i _` | 27,862 |240 241 242### Key Findings243 244- **Best Perplexity:** 2-gram (subword) with 244245- **Entropy Trend:** Decreases with larger n-grams (more predictable)246- **Coverage:** Top-1000 patterns cover ~24% of corpus247- **Recommendation:** 4-gram or 5-gram for best predictive performance248 249---250## 3. Markov Chain Evaluation251 252![Markov Entropy](visualizations/markov_entropy.png)253 254![Markov Contexts](visualizations/markov_contexts.png)255 256![Markov Branching](visualizations/markov_branching.png)257 258### Results259 260| Context | Variant | Avg Entropy | Perplexity | Branching Factor | Unique Contexts | Predictability |261|---------|---------|-------------|------------|------------------|-----------------|----------------|262| **1** | Word | 0.8233 | 1.769 | 5.57 | 202,619 | 17.7% |263| **1** | Subword | 1.0275 | 2.038 | 8.59 | 1,252 | 0.0% |264| **2** | Word | 0.2739 | 1.209 | 1.68 | 1,121,596 | 72.6% |265| **2** | Subword | 1.0284 | 2.040 | 6.37 | 10,748 | 0.0% |266| **3** | Word | 0.0907 | 1.065 | 1.15 | 1,872,306 | 90.9% |267| **3** | Subword | 0.8687 | 1.826 | 4.42 | 68,346 | 13.1% |268| **4** | Word | 0.0294 🏆 | 1.021 | 1.04 | 2,146,546 | 97.1% |269| **4** | Subword | 0.6923 | 1.616 | 3.02 | 301,807 | 30.8% |270 271### Generated Text Samples (Word-based)272 273Below are text samples generated from each word-based Markov chain model:274 275**Context Size 1:**276 2771. `di l utilizzu eni uguali n maduna surmuntatu spissu china occupies a spidercam telecamera e di`2782. `e in ebbica abbastanza nichi e riazzioni tinta tinta ntô 480 a parallassi dâ prima ranni`2793. `lu divintaru famusi macari li pupulazzioni di fora dû branu cu la situazzioni 1 cor damaya`280 281**Context Size 2:**282 2831. `pruvincia di salernu havi na pupulazzioni di 1 chistu pirmetti ô browser di mozilla firefox sunnu sc...`2842. `dâ pruvincia di frusinuni havi na vota ntô 147º e na storia assai àutru centru di lu`2853. `di l aquila havi na pupulazzioni di 1 a 29 annu e ô dramma sacru di la`286 287**Context Size 3:**288 2891. `dâ pruvincia di asti ntô piemunti dâ pruvincia di palermu la notti dû 22 di dicèmmiru fu nu`2902. `è un cumuni talianu dâ pruvincia di cremona ntâ lummardìa havi na pupulazzioni di 2 807 abbitanti dâ`2913. `talianu dâ pruvincia di sarausa puru si la vilucitati dâ luci sia isutropica ossia ca avi u stissu`292 293**Context Size 4:**294 2951. `cumuni talianu dâ pruvincia di carbonia iglesias ntâ sardigna dâ pruvincia di oristanu ntâ sardigna ...`2962. `è un cumuni talianu dâ pruvincia di nuvara ntô piemunti dâ pruvincia di cuneu ntô piemunti dâ pruvin...`2973. `un cumuni talianu dâ pruvincia di pavìa ntâ lummardìa dâ pruvincia di bèrgamu ntâ lummardìa dâ pruvi...`298 299 300### Generated Text Samples (Subword-based)301 302Below are text samples generated from each subword-based Markov chain model:303 304**Context Size 1:**305 3061. `_pìu_duvi_nta_dî`3072. `imprersio_ncidi_`3083. `a_di_le_antô_–_s`309 310**Context Size 2:**311 3121. `i_rinciriglia,_«c`3132. `a_a_acquersanuota`3143. `u_acquagnu_do'_va`315 316**Context Size 3:**317 3181. `_di_l'asempion:_th`3192. `di_mai_di_gueva_nz`3203. `ni_tantironali_a_j`321 322**Context Size 4:**323 3241. `_di_giugnu_'n_arban`3252. `i_di_cuntra_venneme`3263. `_lu_nùmmuru_nizo_ne`327 328 329### Key Findings330 331- **Best Predictability:** Context-4 (word) with 97.1% predictability332- **Branching Factor:** Decreases with context size (more deterministic)333- **Memory Trade-off:** Larger contexts require more storage (301,807 contexts)334- **Recommendation:** Context-3 or Context-4 for text generation335 336---337## 4. Vocabulary Analysis338 339![Zipf's Law](visualizations/zipf_law.png)340 341![Top Words](visualizations/top20_words.png)342 343![Coverage Curve](visualizations/vocab_coverage.png)344 345### Statistics346 347| Metric | Value |348|--------|-------|349| Vocabulary Size | 86,322 |350| Total Tokens | 2,462,744 |351| Mean Frequency | 28.53 |352| Median Frequency | 4 |353| Frequency Std Dev | 696.15 |354 355### Most Common Words356 357| Rank | Word | Frequency |358|------|------|-----------|359| 1 | di | 140,762 |360| 2 | e | 60,379 |361| 3 | lu | 55,075 |362| 4 | a | 51,553 |363| 5 | la | 47,116 |364| 6 | l | 39,892 |365| 7 | dâ | 32,478 |366| 8 | è | 31,791 |367| 9 | li | 30,388 |368| 10 | n | 24,459 |369 370### Least Common Words (from vocabulary)371 372| Rank | Word | Frequency |373|------|------|-----------|374| 1 | artificaili | 2 |375| 2 | degeneratu | 2 |376| 3 | impress | 2 |377| 4 | escaldes | 2 |378| 5 | engordany | 2 |379| 6 | sabigotho | 2 |380| 7 | reiter | 2 |381| 8 | homestuck | 2 |382| 9 | manganelli | 2 |383| 10 | emiciclu | 2 |384 385### Zipf's Law Analysis386 387| Metric | Value |388|--------|-------|389| Zipf Coefficient | 1.0191 |390| R² (Goodness of Fit) | 0.998927 |391| Adherence Quality | **excellent** |392 393### Coverage Analysis394 395| Top N Words | Coverage |396|-------------|----------|397| Top 100 | 41.6% |398| Top 1,000 | 63.1% |399| Top 5,000 | 78.3% |400| Top 10,000 | 84.5% |401 402### Key Findings403 404- **Zipf Compliance:** R²=0.9989 indicates excellent adherence to Zipf's law405- **High Frequency Dominance:** Top 100 words cover 41.6% of corpus406- **Long Tail:** 76,322 words needed for remaining 15.5% coverage407 408---409## 5. Word Embeddings Evaluation410 411![Embedding Isotropy](visualizations/embedding_isotropy.png)412 413![Similarity Matrix](visualizations/embedding_similarity.png)414 415![t-SNE Words](visualizations/tsne_words.png)416 417![t-SNE Sentences](visualizations/tsne_sentences.png)418 419 420### 5.1 Cross-Lingual Alignment421 422![Alignment Quality](visualizations/embedding_alignment_quality.png)423 424![Multilingual t-SNE](visualizations/embedding_tsne_multilingual.png)425 426 427### 5.2 Model Comparison428 429| Model | Dimension | Isotropy | Semantic Density | Alignment R@1 | Alignment R@10 |430|-------|-----------|----------|------------------|---------------|----------------|431| **mono_32d** | 32 | 0.8559 🏆 | 0.3184 | N/A | N/A |432| **mono_64d** | 64 | 0.8517 | 0.2317 | N/A | N/A |433| **mono_128d** | 128 | 0.7450 | 0.1848 | N/A | N/A |434| **aligned_32d** | 32 | 0.8559 | 0.3200 | 0.0900 | 0.3440 |435| **aligned_64d** | 64 | 0.8517 | 0.2295 | 0.1380 | 0.4440 |436| **aligned_128d** | 128 | 0.7450 | 0.1777 | 0.2000 | 0.5420 |437 438### Key Findings439 440- **Best Isotropy:** mono_32d with 0.8559 (more uniform distribution)441- **Semantic Density:** Average pairwise similarity of 0.2437. Lower values indicate better semantic separation.442- **Alignment Quality:** Aligned models achieve up to 20.0% R@1 in cross-lingual retrieval.443- **Recommendation:** 128d aligned for best cross-lingual performance444 445---446## 6.  Morphological Analysis (Experimental)447 448This section presents an automated morphological analysis derived from the statistical divergence between word-level and subword-level models. By analyzing where subword predictability spikes and where word-level coverage fails, we can infer linguistic structures without supervised data.449 450### 6.1 Productivity & Complexity451 452| Metric | Value | Interpretation | Recommendation |453|--------|-------|----------------|----------------|454| Productivity Index | **5.000** | High morphological productivity | Reliable analysis |455| Idiomaticity Gap | **0.381** | High formulaic/idiomatic content | - |456 457### 6.2 Affix Inventory (Productive Units)458 459These are the most productive prefixes and suffixes identified by sampling the vocabulary for global substitutability patterns. A unit is considered an affix if stripping it leaves a valid stem that appears in other contexts.460 461#### Productive Prefixes462| Prefix | Examples |463|--------|----------|464| `-s` | schianari, straputiri, spirimintàvanu |465| `-a` | aglabita, abbunata, azzurri |466| `-c` | chidja, calculatu, catenanuova |467| `-m` | mladic, medioevo, mintennu |468| `-p` | presu, puvuredda, puacu |469| `-ca` | calculatu, catenanuova, calabbra |470| `-n` | negroponte, nnustri, ntitulata |471| `-ma` | magistri, majistrìa, maladzečna |472 473#### Productive Suffixes474| Suffix | Examples |475|--------|----------|476| `-i` | schianari, liberi, itali |477| `-u` | calculatu, mintennu, presu |478| `-a` | chidja, aglabita, catenanuova |479| `-ti` | acuti, disignati, fimmati |480| `-ni` | moroni, littoni, valanzuni |481| `-ri` | schianari, liberi, azzurri |482| `-tu` | calculatu, scuraggiatu, nzignatu |483| `-nu` | mintennu, infantinu, spirimintàvanu |484 485### 6.3 Bound Stems (Lexical Roots)486 487Bound stems are high-frequency subword units that are semantically cohesive but rarely appear as standalone words. These often correspond to the 'core' of a word that requires inflection or derivation to be valid.488 489| Stem | Cohesion | Substitutability | Examples |490|------|----------|------------------|----------|491| `azzi` | 2.30x | 147 contexts | tazzi, yazzi, mazzi |492| `izzi` | 2.03x | 166 contexts | pizzi, rizzi, nizzi |493| `itat` | 2.12x | 103 contexts | citat, itati, vitatu |494| `zion` | 2.21x | 73 contexts | zione, zioni, azione |495| `zzio` | 2.32x | 44 contexts | zzioni, azziona, azzioni |496| `vinc` | 2.14x | 39 contexts | vinci, vincì, vince |497| `iggi` | 1.65x | 109 contexts | siggi, liggi, figgi |498| `nali` | 1.91x | 43 contexts | anali, linali, fanali |499| `ncia` | 1.61x | 80 contexts | uncia, ancia, lancia |500| `lian` | 1.58x | 70 contexts | julian, alianu, eliana |501| `inci` | 1.46x | 96 contexts | jinci, vinci, linci |502| `ilia` | 1.52x | 77 contexts | dilia, filia, iliadi |503 504### 6.4 Affix Compatibility (Co-occurrence)505 506This table shows which prefixes and suffixes most frequently co-occur on the same stems, revealing the 'stacking' rules of the language's morphology.507 508| Prefix | Suffix | Frequency | Examples |509|--------|--------|-----------|----------|510| `-c` | `-i` | 299 words | crudili, ciampi |511| `-a` | `-i` | 257 words | arrisbigghiari, avvrazzari |512| `-a` | `-u` | 247 words | albergu, arrinneru |513| `-c` | `-u` | 225 words | colledimenzu, chiu |514| `-c` | `-a` | 203 words | catilina, caldea |515| `-s` | `-u` | 201 words | sassòfunu, suffru |516| `-p` | `-i` | 200 words | pinitrari, picciriddi |517| `-s` | `-i` | 200 words | sumenzi, sanguinari |518| `-a` | `-a` | 157 words | adriatica, amatura |519| `-m` | `-i` | 153 words | mustri, matrici |520 521### 6.5 Recursive Morpheme Segmentation522 523Using **Recursive Hierarchical Substitutability**, we decompose complex words into their constituent morphemes. This approach handles nested affixes (e.g., `prefix-prefix-root-suffix`).524 525| Word | Suggested Split | Confidence | Stem |526|------|-----------------|------------|------|527| eremitaggiu | **`eremitagg-i-u`** | 7.5 | `i` |528| intellighentsia | **`intellighents-i-a`** | 7.5 | `i` |529| impiegati | **`impieg-a-ti`** | 7.5 | `a` |530| gghiùnciri | **`gghiùnc-i-ri`** | 7.5 | `i` |531| cunsidiratu | **`cunsidir-a-tu`** | 7.5 | `a` |532| melitensis | **`melitens-i-s`** | 7.5 | `i` |533| nfruinzatu | **`nfruinz-a-tu`** | 7.5 | `a` |534| fortificata | **`fortific-a-ta`** | 7.5 | `a` |535| agghìunciri | **`agghìunc-i-ri`** | 7.5 | `i` |536| madeleine | **`madele-i-ne`** | 7.5 | `i` |537| munarchii | **`munarch-i-i`** | 7.5 | `i` |538| baudelaire | **`baudela-i-re`** | 7.5 | `i` |539| ndividuari | **`ndividu-a-ri`** | 7.5 | `a` |540| ncintivati | **`ncintiv-a-ti`** | 7.5 | `a` |541| vintagghiu | **`vintaggh-i-u`** | 7.5 | `i` |542 543### 6.6 Linguistic Interpretation544 545> **Automated Insight:**546The language Sicilian shows high morphological productivity. The subword models are significantly more efficient than word models, suggesting a rich system of affixation or compounding.547 548> **Note on Idiomaticity:** The high Idiomaticity Gap suggests a large number of frequent multi-word expressions or formulaic sequences that are statistically distinct from their component parts.549 550---551## 7. Summary & Recommendations552 553![Performance Dashboard](visualizations/performance_dashboard.png)554 555### Production Recommendations556 557| Component | Recommended | Rationale |558|-----------|-------------|-----------|559| Tokenizer | **64k BPE** | Best compression (4.49x) |560| N-gram | **2-gram** | Lowest perplexity (244) |561| Markov | **Context-4** | Highest predictability (97.1%) |562| Embeddings | **100d** | Balanced semantic capture and isotropy |563 564 565---566## Appendix: Metrics Glossary & Interpretation Guide567 568This section provides definitions, intuitions, and guidance for interpreting the metrics used throughout this report.569 570### Tokenizer Metrics571 572**Compression Ratio**573> *Definition:* The ratio of characters to tokens (chars/token). Measures how efficiently the tokenizer represents text.574>575> *Intuition:* Higher compression means fewer tokens needed to represent the same text, reducing sequence lengths for downstream models. A 3x compression means ~3 characters per token on average.576>577> *What to seek:* Higher is generally better for efficiency, but extremely high compression may indicate overly aggressive merging that loses morphological information.578 579**Average Token Length (Fertility)**580> *Definition:* Mean number of characters per token produced by the tokenizer.581>582> *Intuition:* Reflects the granularity of tokenization. Longer tokens capture more context but may struggle with rare words; shorter tokens are more flexible but increase sequence length.583>584> *What to seek:* Balance between 2-5 characters for most languages. Arabic/morphologically-rich languages may benefit from slightly longer tokens.585 586**Unknown Token Rate (OOV Rate)**587> *Definition:* Percentage of tokens that map to the unknown/UNK token, indicating words the tokenizer cannot represent.588>589> *Intuition:* Lower OOV means better vocabulary coverage. High OOV indicates the tokenizer encounters many unseen character sequences.590>591> *What to seek:* Below 1% is excellent; below 5% is acceptable. BPE tokenizers typically achieve very low OOV due to subword fallback.592 593### N-gram Model Metrics594 595**Perplexity**596> *Definition:* Measures how "surprised" the model is by test data. Mathematically: 2^(cross-entropy). Lower values indicate better prediction.597>598> *Intuition:* If perplexity is 100, the model is as uncertain as if choosing uniformly among 100 options at each step. A perplexity of 10 means effectively choosing among 10 equally likely options.599>600> *What to seek:* Lower is better. Perplexity decreases with larger n-grams (more context). Values vary widely by language and corpus size.601 602**Entropy**603> *Definition:* Average information content (in bits) needed to encode the next token given the context. Related to perplexity: perplexity = 2^entropy.604>605> *Intuition:* High entropy means high uncertainty/randomness; low entropy means predictable patterns. Natural language typically has entropy between 1-4 bits per character.606>607> *What to seek:* Lower entropy indicates more predictable text patterns. Entropy should decrease as n-gram size increases.608 609**Coverage (Top-K)**610> *Definition:* Percentage of corpus occurrences explained by the top K most frequent n-grams.611>612> *Intuition:* High coverage with few patterns indicates repetitive/formulaic text; low coverage suggests diverse vocabulary usage.613>614> *What to seek:* Depends on use case. For language modeling, moderate coverage (40-60% with top-1000) is typical for natural text.615 616### Markov Chain Metrics617 618**Average Entropy**619> *Definition:* Mean entropy across all contexts, measuring average uncertainty in next-word prediction.620>621> *Intuition:* Lower entropy means the model is more confident about what comes next. Context-1 has high entropy (many possible next words); Context-4 has low entropy (few likely continuations).622>623> *What to seek:* Decreasing entropy with larger context sizes. Very low entropy (<0.1) indicates highly deterministic transitions.624 625**Branching Factor**626> *Definition:* Average number of unique next tokens observed for each context.627>628> *Intuition:* High branching = many possible continuations (flexible but uncertain); low branching = few options (predictable but potentially repetitive).629>630> *What to seek:* Branching factor should decrease with context size. Values near 1.0 indicate nearly deterministic chains.631 632**Predictability**633> *Definition:* Derived metric: (1 - normalized_entropy) × 100%. Indicates how deterministic the model's predictions are.634>635> *Intuition:* 100% predictability means the next word is always certain; 0% means completely random. Real text falls between these extremes.636>637> *What to seek:* Higher predictability for text generation quality, but too high (>98%) may produce repetitive output.638 639### Vocabulary & Zipf's Law Metrics640 641**Zipf's Coefficient**642> *Definition:* The slope of the log-log plot of word frequency vs. rank. Zipf's law predicts this should be approximately -1.643>644> *Intuition:* A coefficient near -1 indicates the corpus follows natural language patterns where a few words are very common and most words are rare.645>646> *What to seek:* Values between -0.8 and -1.2 indicate healthy natural language distribution. Deviations may suggest domain-specific or artificial text.647 648**R² (Coefficient of Determination)**649> *Definition:* Measures how well the linear fit explains the frequency-rank relationship. Ranges from 0 to 1.650>651> *Intuition:* R² near 1.0 means the data closely follows Zipf's law; lower values indicate deviation from expected word frequency patterns.652>653> *What to seek:* R² > 0.95 is excellent; > 0.99 indicates near-perfect Zipf adherence typical of large natural corpora.654 655**Vocabulary Coverage**656> *Definition:* Cumulative percentage of corpus tokens accounted for by the top N words.657>658> *Intuition:* Shows how concentrated word usage is. If top-100 words cover 50% of text, the corpus relies heavily on common words.659>660> *What to seek:* Top-100 covering 30-50% is typical. Higher coverage indicates more repetitive text; lower suggests richer vocabulary.661 662### Word Embedding Metrics663 664**Isotropy**665> *Definition:* Measures how uniformly distributed vectors are in the embedding space. Computed as the ratio of minimum to maximum singular values.666>667> *Intuition:* High isotropy (near 1.0) means vectors spread evenly in all directions; low isotropy means vectors cluster in certain directions, reducing expressiveness.668>669> *What to seek:* Higher isotropy generally indicates better-quality embeddings. Values > 0.1 are reasonable; > 0.3 is good. Lower-dimensional embeddings tend to have higher isotropy.670 671**Average Norm**672> *Definition:* Mean magnitude (L2 norm) of word vectors in the embedding space.673>674> *Intuition:* Indicates the typical "length" of vectors. Consistent norms suggest stable training; high variance may indicate some words are undertrained.675>676> *What to seek:* Relatively consistent norms across models. The absolute value matters less than consistency (low std deviation).677 678**Cosine Similarity**679> *Definition:* Measures angular similarity between vectors, ranging from -1 (opposite) to 1 (identical direction).680>681> *Intuition:* Words with similar meanings should have high cosine similarity. This is the standard metric for semantic relatedness in embeddings.682>683> *What to seek:* Semantically related words should score > 0.5; unrelated words should be near 0. Synonyms often score > 0.7.684 685**t-SNE Visualization**686> *Definition:* t-Distributed Stochastic Neighbor Embedding - a dimensionality reduction technique that preserves local structure for visualization.687>688> *Intuition:* Clusters in t-SNE plots indicate groups of semantically related words. Spread indicates vocabulary diversity; tight clusters suggest semantic coherence.689>690> *What to seek:* Meaningful clusters (e.g., numbers together, verbs together). Avoid over-interpreting distances - t-SNE preserves local, not global, structure.691 692### General Interpretation Guidelines693 6941. **Compare within model families:** Metrics are most meaningful when comparing models of the same type (e.g., 8k vs 64k tokenizer).6952. **Consider trade-offs:** Better performance on one metric often comes at the cost of another (e.g., compression vs. OOV rate).6963. **Context matters:** Optimal values depend on downstream tasks. Text generation may prioritize different metrics than classification.6974. **Corpus influence:** All metrics are influenced by corpus characteristics. Wikipedia text differs from social media or literature.6985. **Language-specific patterns:** Morphologically rich languages (like Arabic) may show different optimal ranges than analytic languages.699 700 701### Visualizations Index702 703| Visualization | Description |704|---------------|-------------|705| Tokenizer Compression | Compression ratios by vocabulary size |706| Tokenizer Fertility | Average token length by vocabulary |707| Tokenizer OOV | Unknown token rates |708| Tokenizer Total Tokens | Total tokens by vocabulary |709| N-gram Perplexity | Perplexity by n-gram size |710| N-gram Entropy | Entropy by n-gram size |711| N-gram Coverage | Top pattern coverage |712| N-gram Unique | Unique n-gram counts |713| Markov Entropy | Entropy by context size |714| Markov Branching | Branching factor by context |715| Markov Contexts | Unique context counts |716| Zipf's Law | Frequency-rank distribution with fit |717| Vocab Frequency | Word frequency distribution |718| Top 20 Words | Most frequent words |719| Vocab Coverage | Cumulative coverage curve |720| Embedding Isotropy | Vector space uniformity |721| Embedding Norms | Vector magnitude distribution |722| Embedding Similarity | Word similarity heatmap |723| Nearest Neighbors | Similar words for key terms |724| t-SNE Words | 2D word embedding visualization |725| t-SNE Sentences | 2D sentence embedding visualization |726| Position Encoding | Encoding method comparison |727| Model Sizes | Storage requirements |728| Performance Dashboard | Comprehensive performance overview |729 730---731## About This Project732 733### Data Source734 735Models trained on [wikipedia-monthly](https://huggingface.co/datasets/omarkamali/wikipedia-monthly) - a monthly snapshot of Wikipedia articles across 300+ languages.736 737### Project738 739A project by **[Wikilangs](https://wikilangs.org)** - Open-source NLP models for every Wikipedia language.740 741### Maintainer742 743[Omar Kamali](https://omarkamali.com) - [Omneity Labs](https://omneitylabs.com)744 745### Citation746 747If you use these models in your research, please cite:748 749```bibtex750@misc{wikilangs2025,751  author = {Kamali, Omar},752  title = {Wikilangs: Open NLP Models for Wikipedia Languages},753  year = {2025},754  doi = {10.5281/zenodo.18073153},755  publisher = {Zenodo},756  url = {https://huggingface.co/wikilangs}757  institution = {Omneity Labs}758}759```760 761### License762 763MIT License - Free for academic and commercial use.764 765### Links766 767- 🌐 Website: [wikilangs.org](https://wikilangs.org)768- 🤗 Models: [huggingface.co/wikilangs](https://huggingface.co/wikilangs)769- 📊 Data: [wikipedia-monthly](https://huggingface.co/datasets/omarkamali/wikipedia-monthly)770- 👤 Author: [Omar Kamali](https://huggingface.co/omarkamali)771- 🤝 Sponsor: [Featherless AI](https://featherless.ai)772---773*Generated by Wikilangs Models Pipeline*774 775*Report Date: 2026-01-10 19:53:23*776