omarkamali commited on
Commit
8c45e31
·
verified ·
1 Parent(s): 95b76b9

Upload all models and assets for ay (latest)

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. .gitattributes +1 -0
  2. README.md +339 -141
  3. models/embeddings/aligned/ay_128d.bin +3 -0
  4. models/embeddings/aligned/ay_128d.meta.json +1 -0
  5. models/embeddings/aligned/ay_128d.projection.npy +3 -0
  6. models/embeddings/aligned/ay_128d_metadata.json +8 -0
  7. models/embeddings/aligned/ay_32d.bin +3 -0
  8. models/embeddings/aligned/ay_32d.meta.json +1 -0
  9. models/embeddings/aligned/ay_32d.projection.npy +3 -0
  10. models/embeddings/aligned/ay_32d_metadata.json +8 -0
  11. models/embeddings/aligned/ay_64d.bin +3 -0
  12. models/embeddings/aligned/ay_64d.meta.json +1 -0
  13. models/embeddings/aligned/ay_64d.projection.npy +3 -0
  14. models/embeddings/aligned/ay_64d_metadata.json +8 -0
  15. models/embeddings/monolingual/ay_128d.bin +2 -2
  16. models/embeddings/monolingual/ay_128d_metadata.json +5 -3
  17. models/embeddings/monolingual/ay_32d.bin +2 -2
  18. models/embeddings/monolingual/ay_32d_metadata.json +5 -3
  19. models/embeddings/monolingual/ay_64d.bin +2 -2
  20. models/embeddings/monolingual/ay_64d_metadata.json +5 -3
  21. models/subword_markov/ay_markov_ctx1_subword.parquet +2 -2
  22. models/subword_markov/ay_markov_ctx1_subword_metadata.json +1 -1
  23. models/subword_markov/ay_markov_ctx2_subword.parquet +2 -2
  24. models/subword_markov/ay_markov_ctx2_subword_metadata.json +2 -2
  25. models/subword_markov/ay_markov_ctx3_subword.parquet +2 -2
  26. models/subword_markov/ay_markov_ctx3_subword_metadata.json +2 -2
  27. models/subword_markov/ay_markov_ctx4_subword.parquet +2 -2
  28. models/subword_markov/ay_markov_ctx4_subword_metadata.json +2 -2
  29. models/subword_ngram/ay_2gram_subword.parquet +2 -2
  30. models/subword_ngram/ay_2gram_subword_metadata.json +2 -2
  31. models/subword_ngram/ay_3gram_subword.parquet +2 -2
  32. models/subword_ngram/ay_3gram_subword_metadata.json +2 -2
  33. models/subword_ngram/ay_4gram_subword.parquet +2 -2
  34. models/subword_ngram/ay_4gram_subword_metadata.json +2 -2
  35. models/subword_ngram/ay_5gram_subword.parquet +3 -0
  36. models/subword_ngram/ay_5gram_subword_metadata.json +7 -0
  37. models/tokenizer/ay_tokenizer_16k.model +2 -2
  38. models/tokenizer/ay_tokenizer_16k.vocab +0 -0
  39. models/tokenizer/ay_tokenizer_32k.model +2 -2
  40. models/tokenizer/ay_tokenizer_32k.vocab +0 -0
  41. models/tokenizer/ay_tokenizer_64k.model +2 -2
  42. models/tokenizer/ay_tokenizer_64k.vocab +0 -0
  43. models/tokenizer/ay_tokenizer_8k.model +2 -2
  44. models/tokenizer/ay_tokenizer_8k.vocab +0 -0
  45. models/vocabulary/ay_vocabulary.parquet +2 -2
  46. models/vocabulary/ay_vocabulary_metadata.json +10 -9
  47. models/word_markov/ay_markov_ctx1_word.parquet +2 -2
  48. models/word_markov/ay_markov_ctx1_word_metadata.json +2 -2
  49. models/word_markov/ay_markov_ctx2_word.parquet +2 -2
  50. models/word_markov/ay_markov_ctx2_word_metadata.json +2 -2
.gitattributes CHANGED
@@ -39,3 +39,4 @@ visualizations/position_encoding_comparison.png filter=lfs diff=lfs merge=lfs -t
39
  visualizations/tsne_sentences.png filter=lfs diff=lfs merge=lfs -text
40
  visualizations/tsne_words.png filter=lfs diff=lfs merge=lfs -text
41
  visualizations/zipf_law.png filter=lfs diff=lfs merge=lfs -text
 
 
39
  visualizations/tsne_sentences.png filter=lfs diff=lfs merge=lfs -text
40
  visualizations/tsne_words.png filter=lfs diff=lfs merge=lfs -text
41
  visualizations/zipf_law.png filter=lfs diff=lfs merge=lfs -text
42
+ visualizations/embedding_tsne_multilingual.png filter=lfs diff=lfs merge=lfs -text
README.md CHANGED
@@ -1,6 +1,6 @@
1
  ---
2
  language: ay
3
- language_name: AY
4
  language_family: american_aymara
5
  tags:
6
  - wikilangs
@@ -10,11 +10,21 @@ tags:
10
  - n-gram
11
  - markov
12
  - wikipedia
 
 
 
 
 
 
 
 
 
 
13
  - monolingual
14
  - family-american_aymara
15
  license: mit
16
  library_name: wikilangs
17
- pipeline_tag: feature-extraction
18
  datasets:
19
  - omarkamali/wikipedia-monthly
20
  dataset_info:
@@ -23,20 +33,20 @@ dataset_info:
23
  metrics:
24
  - name: best_compression_ratio
25
  type: compression
26
- value: 4.018
27
  - name: best_isotropy
28
  type: isotropy
29
- value: 0.7731
30
  - name: vocabulary_size
31
  type: vocab
32
- value: 25329
33
- generated: 2025-12-27
34
  ---
35
 
36
- # AY - Wikilangs Models
37
  ## Comprehensive Research Report & Full Ablation Study
38
 
39
- This repository contains NLP models trained and evaluated by Wikilangs, specifically on **AY** Wikipedia data.
40
  We analyze tokenizers, n-gram models, Markov chains, vocabulary statistics, and word embeddings.
41
 
42
  ## 📋 Repository Contents
@@ -44,12 +54,13 @@ We analyze tokenizers, n-gram models, Markov chains, vocabulary statistics, and
44
  ### Models & Assets
45
 
46
  - Tokenizers (8k, 16k, 32k, 64k)
47
- - N-gram models (2, 3, 4-gram)
48
- - Markov chains (context of 1, 2, 3 and 4)
49
  - Subword N-gram and Markov chains
50
- - Embeddings in various sizes and dimensions
51
  - Language Vocabulary
52
  - Language Statistics
 
53
  ![Performance Dashboard](visualizations/performance_dashboard.png)
54
 
55
  ### Analysis and Evaluation
@@ -59,7 +70,8 @@ We analyze tokenizers, n-gram models, Markov chains, vocabulary statistics, and
59
  - [3. Markov Chain Evaluation](#3-markov-chain-evaluation)
60
  - [4. Vocabulary Analysis](#4-vocabulary-analysis)
61
  - [5. Word Embeddings Evaluation](#5-word-embeddings-evaluation)
62
- - [6. Summary & Recommendations](#6-summary--recommendations)
 
63
  - [Metrics Glossary](#appendix-metrics-glossary--interpretation-guide)
64
  - [Visualizations Index](#visualizations-index)
65
 
@@ -68,62 +80,57 @@ We analyze tokenizers, n-gram models, Markov chains, vocabulary statistics, and
68
 
69
  ![Tokenizer Compression](visualizations/tokenizer_compression.png)
70
 
 
 
 
 
 
 
71
  ### Results
72
 
73
  | Vocab Size | Compression | Avg Token Len | UNK Rate | Total Tokens |
74
  |------------|-------------|---------------|----------|--------------|
75
- | **8k** | 3.240x | 3.13 | 0.2414% | 169,821 |
76
- | **16k** | 3.519x | 3.40 | 0.2623% | 156,332 |
77
- | **32k** | 3.774x | 3.65 | 0.2812% | 145,778 |
78
- | **64k** | 4.018x 🏆 | 3.88 | 0.2994% | 136,918 |
79
 
80
  ### Tokenization Examples
81
 
82
  Below are sample sentences tokenized with each vocabulary size:
83
 
84
- **Sample 1:** `Phuyu (), jamach'inakana janchipa imxatiriquña yänaka. Lulina phuyupaxa k'acha q...`
85
 
86
  | Vocab | Tokens | Count |
87
  |-------|--------|-------|
88
- | 8k | `▁phuyu ▁(), ▁jamach ' i nakanajanchipa ▁im x atiri ... (+22 more)` | 32 |
89
- | 16k | `▁phuyu ▁(), ▁jamach ' i nakana janchipaim x atiri ... (+22 more)` | 32 |
90
- | 32k | `▁phuyu ▁(), ▁jamach ' inakana janchipaim x atiri quña ... (+18 more)` | 28 |
91
- | 64k | `▁phuyu ▁(), ▁jamach ' inakana janchipaim x atiri quña ... (+16 more)` | 26 |
92
-
93
- **Sample 2:** `1920 - mara.
94
-
95
- Yuriña
96
- Toshiro Mifune.
97
-
98
- Jiwaña
99
 
100
- Uruyaña
101
- Categoría:Maranaka`
102
 
103
  | Vocab | Tokens | Count |
104
  |-------|--------|-------|
105
- | 8k | `▁ 1 9 2 0 ▁- ▁mara . ▁yuriña ▁tos ... (+11 more)` | 21 |
106
- | 16k | `▁ 1 9 2 0 ▁- ▁mara . ▁yuriña ▁tos ... (+8 more)` | 18 |
107
- | 32k | `▁ 1 9 2 0 ▁- ▁mara . ▁yuriña ▁toshiro ... (+7 more)` | 17 |
108
- | 64k | `▁ 1 9 2 0 ▁- ▁mara . ▁yuriña ▁toshiro ... (+7 more)` | 17 |
109
 
110
- **Sample 3:** `Oaxaca (), marka istadu Mïxiku.
111
- Oaxaca nayriri marka: Oaxaca de Juárez.
112
-
113
- Catego...`
114
 
115
  | Vocab | Tokens | Count |
116
  |-------|--------|-------|
117
- | 8k | `▁o axa ca ▁(), ▁marka ▁istadu ▁mïxiku .o axa ... (+13 more)` | 23 |
118
- | 16k | `▁oaxaca ▁(), ▁marka ▁istadu ▁mïxiku .oaxaca ▁nayriri ▁marka : ... (+7 more)` | 17 |
119
- | 32k | `▁oaxaca ▁(), ▁marka ▁istadumïxiku . ▁oaxaca ▁nayriri ▁marka : ... (+7 more)` | 17 |
120
- | 64k | `▁oaxaca ▁(), ▁marka ▁istadumïxiku . ▁oaxacanayririmarka : ... (+7 more)` | 17 |
121
 
122
 
123
  ### Key Findings
124
 
125
- - **Best Compression:** 64k achieves 4.018x compression
126
- - **Lowest UNK Rate:** 8k with 0.2414% unknown tokens
127
  - **Trade-off:** Larger vocabularies improve compression but increase model size
128
  - **Recommendation:** 32k vocabulary provides optimal balance for production use
129
 
@@ -132,57 +139,111 @@ Catego...`
132
 
133
  ![N-gram Perplexity](visualizations/ngram_perplexity.png)
134
 
 
 
135
  ![N-gram Coverage](visualizations/ngram_coverage.png)
136
 
137
  ### Results
138
 
139
- | N-gram | Perplexity | Entropy | Unique N-grams | Top-100 Coverage | Top-1000 Coverage |
140
- |--------|------------|---------|----------------|------------------|-------------------|
141
- | **2-gram** | 1,629 🏆 | 10.67 | 14,390 | 42.1% | 70.8% |
142
- | **2-gram** | 335 🏆 | 8.39 | 3,058 | 62.7% | 98.6% |
143
- | **3-gram** | 2,436 | 11.25 | 23,975 | 39.1% | 65.6% |
144
- | **3-gram** | 2,346 | 11.20 | 22,295 | 28.7% | 70.7% |
145
- | **4-gram** | 4,646 | 12.18 | 47,728 | 34.2% | 57.4% |
146
- | **4-gram** | 9,050 | 13.14 | 97,814 | 19.6% | 48.1% |
 
 
147
 
148
  ### Top 5 N-grams by Size
149
 
150
- **2-grams:**
151
 
152
  | Rank | N-gram | Count |
153
  |------|--------|-------|
154
- | 1 | `' a` | 22,172 |
155
- | 2 | `jisk '` | 16,424 |
156
- | 3 | `categoría :` | 12,913 |
157
- | 4 | `t '` | 11,645 |
158
- | 5 | `' aqa` | 10,721 |
159
 
160
- **3-grams:**
161
 
162
  | Rank | N-gram | Count |
163
  |------|--------|-------|
164
- | 1 | `jisk ' a` | 16,399 |
165
- | 2 | `t ' aqa` | 10,718 |
166
- | 3 | `a t '` | 10,632 |
167
- | 4 | `' a t` | 10,632 |
168
- | 5 | `' aqa suyu` | 8,509 |
169
 
170
- **4-grams:**
171
 
172
  | Rank | N-gram | Count |
173
  |------|--------|-------|
174
- | 1 | `' a t '` | 10,632 |
175
- | 2 | `a t ' aqa` | 10,628 |
176
- | 3 | `jisk ' a t` | 10,616 |
177
- | 4 | `t ' aqa suyu` | 8,508 |
178
- | 5 | `: jisk ' a` | 4,073 |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
179
 
180
 
181
  ### Key Findings
182
 
183
- - **Best Perplexity:** 2-gram with 335
184
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
185
- - **Coverage:** Top-1000 patterns cover ~48% of corpus
186
  - **Recommendation:** 4-gram or 5-gram for best predictive performance
187
 
188
  ---
@@ -190,55 +251,86 @@ Catego...`
190
 
191
  ![Markov Entropy](visualizations/markov_entropy.png)
192
 
 
 
193
  ![Markov Branching](visualizations/markov_branching.png)
194
 
195
  ### Results
196
 
197
- | Context | Avg Entropy | Perplexity | Branching Factor | Unique Contexts | Predictability |
198
- |---------|-------------|------------|------------------|-----------------|----------------|
199
- | **1** | 0.6043 | 1.520 | 3.69 | 65,172 | 39.6% |
200
- | **1** | 0.9793 | 1.971 | 7.56 | 953 | 2.1% |
201
- | **2** | 0.2085 | 1.155 | 1.54 | 239,858 | 79.2% |
202
- | **2** | 1.0055 | 2.008 | 6.09 | 7,201 | 0.0% |
203
- | **3** | 0.0898 | 1.064 | 1.20 | 369,469 | 91.0% |
204
- | **3** | 0.8336 | 1.782 | 3.92 | 43,833 | 16.6% |
205
- | **4** | 0.0469 🏆 | 1.033 | 1.11 | 443,066 | 95.3% |
206
- | **4** | 0.6060 🏆 | 1.522 | 2.52 | 171,955 | 39.4% |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
207
 
208
- ### Generated Text Samples
209
 
210
- Below are text samples generated from each Markov chain model:
 
 
211
 
212
  **Context Size 1:**
213
 
214
- 1. `' a t ' aqa suyu kantarawi kantarawi tarata , punu jach ' a t '`
215
- 2. `. wali alwat tukuñkamaw yuntampi wayt asitapjaniw . caritatis studium , bibliaxa mä jisk ' aq`
216
- 3. `: freistaat thüringen suyu ( mendoza , ukax kunas manq ' a suyu asu 1889 mara`
217
 
218
  **Context Size 2:**
219
 
220
- 1. `' a t ' aqa suyu ( piruw ) categoría : warmi categoría : warmi : consuelo`
221
- 2. `jisk ' a t ' aqa suyu asu jaqinaka kurakanaka 2011 - 2014 : bernabé martí .`
222
- 3. `categoría : warmi categoría : jiwäwi 1890 categoría : jisk ' a suyu nayriri marka ) ,`
223
 
224
  **Context Size 3:**
225
 
226
- 1. `jisk ' a t ' aqa suyu asu jaqinaka kurakanaka 2011 - 2014 : wilfredo felimón vargas cotrado`
227
- 2. `t ' aqa suyuxa ( kastilla aru : distrito de carabayllo ) nisqaqa huk jisk ' a t`
228
- 3. `a t ' aqa suyu ( piruw ) categoría : jisk ' a t ' aqa suyu ;`
229
 
230
  **Context Size 4:**
231
 
232
- 1. `' a t ' aqa suyuwa , amarujawira jach ' a suyu . nayra sarnaqawi kamasqa chichu phaxsi 29`
233
- 2. `a t ' aqa suyuwa , 22px | la libertad la libertad jach ' a suyu , wankayu jisk`
234
- 3. `jisk ' a t ' aqa suyu ( piruw ) categoría : jisk ' a suyu munisipyu web (`
235
 
236
 
237
  ### Key Findings
238
 
239
- - **Best Predictability:** Context-4 with 95.3% predictability
240
  - **Branching Factor:** Decreases with context size (more deterministic)
241
- - **Memory Trade-off:** Larger contexts require more storage (171,955 contexts)
242
  - **Recommendation:** Context-3 or Context-4 for text generation
243
 
244
  ---
@@ -254,37 +346,37 @@ Below are text samples generated from each Markov chain model:
254
 
255
  | Metric | Value |
256
  |--------|-------|
257
- | Vocabulary Size | 25,329 |
258
- | Total Tokens | 596,604 |
259
- | Mean Frequency | 23.55 |
260
- | Median Frequency | 4 |
261
- | Frequency Std Dev | 287.74 |
262
 
263
  ### Most Common Words
264
 
265
  | Rank | Word | Frequency |
266
  |------|------|-----------|
267
- | 1 | a | 23,874 |
268
- | 2 | jisk | 16,567 |
269
- | 3 | suyu | 14,640 |
270
- | 4 | categoría | 12,921 |
271
- | 5 | t | 11,916 |
272
- | 6 | de | 11,655 |
273
- | 7 | aqa | 10,725 |
274
- | 8 | jach | 7,168 |
275
- | 9 | piruw | 5,369 |
276
- | 10 | jaqinaka | 5,120 |
277
 
278
  ### Least Common Words (from vocabulary)
279
 
280
  | Rank | Word | Frequency |
281
  |------|------|-----------|
282
- | 1 | wirnisa | 2 |
283
  | 2 | sawaru | 2 |
284
  | 3 | tuminku | 2 |
285
  | 4 | urupawa | 2 |
286
  | 5 | capitalapawa | 2 |
287
- | 6 | halloween | 2 |
288
  | 7 | uttar | 2 |
289
  | 8 | pradesh | 2 |
290
  | 9 | quqanakampi | 2 |
@@ -294,24 +386,24 @@ Below are text samples generated from each Markov chain model:
294
 
295
  | Metric | Value |
296
  |--------|-------|
297
- | Zipf Coefficient | 1.1050 |
298
- | R² (Goodness of Fit) | 0.997739 |
299
  | Adherence Quality | **excellent** |
300
 
301
  ### Coverage Analysis
302
 
303
  | Top N Words | Coverage |
304
  |-------------|----------|
305
- | Top 100 | 46.7% |
306
- | Top 1,000 | 73.4% |
307
- | Top 5,000 | 87.8% |
308
- | Top 10,000 | 93.3% |
309
 
310
  ### Key Findings
311
 
312
- - **Zipf Compliance:** R²=0.9977 indicates excellent adherence to Zipf's law
313
- - **High Frequency Dominance:** Top 100 words cover 46.7% of corpus
314
- - **Long Tail:** 15,329 words needed for remaining 6.7% coverage
315
 
316
  ---
317
  ## 5. Word Embeddings Evaluation
@@ -324,24 +416,127 @@ Below are text samples generated from each Markov chain model:
324
 
325
  ![t-SNE Sentences](visualizations/tsne_sentences.png)
326
 
327
- ### Model Comparison
328
 
329
- | Model | Vocab Size | Dimension | Avg Norm | Std Norm | Isotropy |
330
- |-------|------------|-----------|----------|----------|----------|
331
- | **mono_32d** | 10,362 | 32 | 4.255 | 0.785 | 0.7731 🏆 |
332
- | **mono_64d** | 10,362 | 64 | 4.432 | 0.729 | 0.4752 |
333
- | **mono_128d** | 10,362 | 128 | 4.521 | 0.731 | 0.1287 |
334
- | **embeddings_enhanced** | 0 | 0 | 0.000 | 0.000 | 0.0000 |
 
 
 
 
 
 
 
 
 
 
 
335
 
336
  ### Key Findings
337
 
338
- - **Best Isotropy:** mono_32d with 0.7731 (more uniform distribution)
339
- - **Dimension Trade-off:** Higher dimensions capture more semantics but reduce isotropy
340
- - **Vocabulary Coverage:** All models cover 10,362 words
341
- - **Recommendation:** 100d for balanced semantic capture and efficiency
342
 
343
  ---
344
- ## 6. Summary & Recommendations
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
345
 
346
  ![Performance Dashboard](visualizations/performance_dashboard.png)
347
 
@@ -349,11 +544,12 @@ Below are text samples generated from each Markov chain model:
349
 
350
  | Component | Recommended | Rationale |
351
  |-----------|-------------|-----------|
352
- | Tokenizer | **32k BPE** | Best compression (4.02x) with low UNK rate |
353
- | N-gram | **5-gram** | Lowest perplexity (335) |
354
- | Markov | **Context-4** | Highest predictability (95.3%) |
355
  | Embeddings | **100d** | Balanced semantic capture and isotropy |
356
 
 
357
  ---
358
  ## Appendix: Metrics Glossary & Interpretation Guide
359
 
@@ -543,7 +739,8 @@ If you use these models in your research, please cite:
543
  author = {Kamali, Omar},
544
  title = {Wikilangs: Open NLP Models for Wikipedia Languages},
545
  year = {2025},
546
- publisher = {HuggingFace},
 
547
  url = {https://huggingface.co/wikilangs}
548
  institution = {Omneity Labs}
549
  }
@@ -559,7 +756,8 @@ MIT License - Free for academic and commercial use.
559
  - 🤗 Models: [huggingface.co/wikilangs](https://huggingface.co/wikilangs)
560
  - 📊 Data: [wikipedia-monthly](https://huggingface.co/datasets/omarkamali/wikipedia-monthly)
561
  - 👤 Author: [Omar Kamali](https://huggingface.co/omarkamali)
 
562
  ---
563
  *Generated by Wikilangs Models Pipeline*
564
 
565
- *Report Date: 2025-12-27 20:48:58*
 
1
  ---
2
  language: ay
3
+ language_name: Aymara
4
  language_family: american_aymara
5
  tags:
6
  - wikilangs
 
10
  - n-gram
11
  - markov
12
  - wikipedia
13
+ - feature-extraction
14
+ - sentence-similarity
15
+ - tokenization
16
+ - n-grams
17
+ - markov-chain
18
+ - text-mining
19
+ - fasttext
20
+ - babelvec
21
+ - vocabulous
22
+ - vocabulary
23
  - monolingual
24
  - family-american_aymara
25
  license: mit
26
  library_name: wikilangs
27
+ pipeline_tag: text-generation
28
  datasets:
29
  - omarkamali/wikipedia-monthly
30
  dataset_info:
 
33
  metrics:
34
  - name: best_compression_ratio
35
  type: compression
36
+ value: 4.252
37
  - name: best_isotropy
38
  type: isotropy
39
+ value: 0.7572
40
  - name: vocabulary_size
41
  type: vocab
42
+ value: 0
43
+ generated: 2026-01-03
44
  ---
45
 
46
+ # Aymara - Wikilangs Models
47
  ## Comprehensive Research Report & Full Ablation Study
48
 
49
+ This repository contains NLP models trained and evaluated by Wikilangs, specifically on **Aymara** Wikipedia data.
50
  We analyze tokenizers, n-gram models, Markov chains, vocabulary statistics, and word embeddings.
51
 
52
  ## 📋 Repository Contents
 
54
  ### Models & Assets
55
 
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 chains
60
+ - Embeddings in various sizes and dimensions (aligned and unaligned)
61
  - Language Vocabulary
62
  - Language Statistics
63
+
64
  ![Performance Dashboard](visualizations/performance_dashboard.png)
65
 
66
  ### Analysis and 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
 
 
80
 
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
  ### Results
90
 
91
  | Vocab Size | Compression | Avg Token Len | UNK Rate | Total Tokens |
92
  |------------|-------------|---------------|----------|--------------|
93
+ | **8k** | 3.398x | 3.40 | 0.2746% | 168,272 |
94
+ | **16k** | 3.708x | 3.72 | 0.2996% | 154,209 |
95
+ | **32k** | 3.989x | 4.00 | 0.3223% | 143,366 |
96
+ | **64k** | 4.252x 🏆 | 4.26 | 0.3435% | 134,499 |
97
 
98
  ### Tokenization Examples
99
 
100
  Below are sample sentences tokenized with each vocabulary size:
101
 
102
+ **Sample 1:** `Dublin (), nayriri marka Irlandiya Jisk'a t'aqa suyunaka Irpirinaka Wali uñt'at ...`
103
 
104
  | Vocab | Tokens | Count |
105
  |-------|--------|-------|
106
+ | 8k | `▁du blin ▁(), ▁nayriri ▁marka ▁ir landiyajisk ' a ... (+14 more)` | 24 |
107
+ | 16k | `▁dublin ▁(), ▁nayriri ▁marka ▁irlandiyajisk ' a t ' ... (+11 more)` | 21 |
108
+ | 32k | `▁dublin ▁(), ▁nayriri ▁markairlandiyajisk ' a ▁t ' ... (+11 more)` | 21 |
109
+ | 64k | `▁dublin ▁(), ▁nayriri ▁markairlandiyajisk ' a ▁t ' ... (+11 more)` | 21 |
 
 
 
 
 
 
 
110
 
111
+ **Sample 2:** `- mara. Yuriña Jiwaña Uruyaña Payïr Jachʼa Chʼaxwäwi tukuyxäna.`
 
112
 
113
  | Vocab | Tokens | Count |
114
  |-------|--------|-------|
115
+ | 8k | `▁- ▁mara . ▁yuriña ▁jiwaña ▁uruyaña ▁payïr ▁jach ʼ a ... (+8 more)` | 18 |
116
+ | 16k | `▁- ▁mara . ▁yuriña ▁jiwaña ▁uruyaña ▁payïr ▁jach ʼ a ... (+6 more)` | 16 |
117
+ | 32k | `▁- ▁mara . ▁yuriña ▁jiwaña ▁uruyaña ▁payïr ▁jach ʼ a ... (+6 more)` | 16 |
118
+ | 64k | `▁- ▁mara . ▁yuriña ▁jiwaña ▁uruyaña ▁payïr ▁jach ʼ a ... (+6 more)` | 16 |
119
 
120
+ **Sample 3:** `Chika uru (), qharatatata ch’amakthapkama uruna taypipa.`
 
 
 
121
 
122
  | Vocab | Tokens | Count |
123
  |-------|--------|-------|
124
+ | 8k | `▁chika ▁uru ▁(), ▁qh ara tata tach ama ... (+9 more)` | 19 |
125
+ | 16k | `▁chikauru ▁(), ▁qh ara tata tach ama ... (+8 more)` | 18 |
126
+ | 32k | `▁chikauru ▁(), ▁qhara tatatach amak thap kama ... (+5 more)` | 15 |
127
+ | 64k | `▁chikauru ▁(), ▁qhara tatatach amakthapkamaurunataypipa ... (+1 more)` | 11 |
128
 
129
 
130
  ### Key Findings
131
 
132
+ - **Best Compression:** 64k achieves 4.252x compression
133
+ - **Lowest UNK Rate:** 8k with 0.2746% unknown tokens
134
  - **Trade-off:** Larger vocabularies improve compression but increase model size
135
  - **Recommendation:** 32k vocabulary provides optimal balance for production use
136
 
 
139
 
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
  ### Results
147
 
148
+ | N-gram | Variant | Perplexity | Entropy | Unique N-grams | Top-100 Coverage | Top-1000 Coverage |
149
+ |--------|---------|------------|---------|----------------|------------------|-------------------|
150
+ | **2-gram** | Word | 1,093 | 10.09 | 8,159 | 47.5% | 75.3% |
151
+ | **2-gram** | Subword | 282 🏆 | 8.14 | 2,432 | 66.7% | 99.2% |
152
+ | **3-gram** | Word | 1,711 | 10.74 | 12,666 | 42.2% | 69.1% |
153
+ | **3-gram** | Subword | 2,030 | 10.99 | 18,023 | 29.5% | 73.5% |
154
+ | **4-gram** | Word | 4,113 | 12.01 | 28,447 | 33.5% | 56.4% |
155
+ | **4-gram** | Subword | 8,227 | 13.01 | 79,517 | 19.1% | 48.7% |
156
+ | **5-gram** | Word | 4,963 | 12.28 | 27,121 | 30.7% | 52.7% |
157
+ | **5-gram** | Subword | 18,419 | 14.17 | 172,494 | 15.5% | 41.0% |
158
 
159
  ### Top 5 N-grams by Size
160
 
161
+ **2-grams (Word):**
162
 
163
  | Rank | N-gram | Count |
164
  |------|--------|-------|
165
+ | 1 | `jisk a` | 12,410 |
166
+ | 2 | `t aqa` | 10,719 |
167
+ | 3 | `aqa suyu` | 8,507 |
168
+ | 4 | `a t` | 6,972 |
169
+ | 5 | `a suyu` | 5,247 |
170
 
171
+ **3-grams (Word):**
172
 
173
  | Rank | N-gram | Count |
174
  |------|--------|-------|
175
+ | 1 | `t aqa suyu` | 8,506 |
176
+ | 2 | `a t aqa` | 6,963 |
177
+ | 3 | `jisk a t` | 6,951 |
178
+ | 4 | `jisk a suyu` | 3,603 |
179
+ | 5 | `piruw t aqa` | 2,712 |
180
 
181
+ **4-grams (Word):**
182
 
183
  | Rank | N-gram | Count |
184
  |------|--------|-------|
185
+ | 1 | `jisk a t aqa` | 6,950 |
186
+ | 2 | `a t aqa suyu` | 4,765 |
187
+ | 3 | `piruw t aqa suyu` | 2,712 |
188
+ | 4 | `t aqa suyu asu` | 1,947 |
189
+ | 5 | `aqa suyu asu jaqinaka` | 1,947 |
190
+
191
+ **5-grams (Word):**
192
+
193
+ | Rank | N-gram | Count |
194
+ |------|--------|-------|
195
+ | 1 | `jisk a t aqa suyu` | 4,757 |
196
+ | 2 | `t aqa suyu asu jaqinaka` | 1,947 |
197
+ | 3 | `a t aqa suyu asu` | 1,947 |
198
+ | 4 | `suyu piruw t aqa suyu` | 1,830 |
199
+ | 5 | `t aqa suyu piruw t` | 1,830 |
200
+
201
+ **2-grams (Subword):**
202
+
203
+ | Rank | N-gram | Count |
204
+ |------|--------|-------|
205
+ | 1 | `a _` | 131,245 |
206
+ | 2 | `k a` | 69,413 |
207
+ | 3 | `n a` | 64,712 |
208
+ | 4 | `a n` | 60,547 |
209
+ | 5 | `a r` | 59,718 |
210
+
211
+ **3-grams (Subword):**
212
+
213
+ | Rank | N-gram | Count |
214
+ |------|--------|-------|
215
+ | 1 | `a k a` | 37,061 |
216
+ | 2 | `n a k` | 33,828 |
217
+ | 3 | `a _ s` | 26,955 |
218
+ | 4 | `_ m a` | 24,357 |
219
+ | 5 | `_ j a` | 23,674 |
220
+
221
+ **4-grams (Subword):**
222
+
223
+ | Rank | N-gram | Count |
224
+ |------|--------|-------|
225
+ | 1 | `n a k a` | 32,697 |
226
+ | 2 | `s u y u` | 19,816 |
227
+ | 3 | `_ s u y` | 19,711 |
228
+ | 4 | `a _ s u` | 19,361 |
229
+ | 5 | `_ m a r` | 19,102 |
230
+
231
+ **5-grams (Subword):**
232
+
233
+ | Rank | N-gram | Count |
234
+ |------|--------|-------|
235
+ | 1 | `_ s u y u` | 19,654 |
236
+ | 2 | `a _ s u y` | 18,833 |
237
+ | 3 | `n a k a _` | 16,761 |
238
+ | 4 | `a n a k a` | 16,081 |
239
+ | 5 | `_ j i s k` | 12,416 |
240
 
241
 
242
  ### Key Findings
243
 
244
+ - **Best Perplexity:** 2-gram (subword) with 282
245
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
246
+ - **Coverage:** Top-1000 patterns cover ~41% of corpus
247
  - **Recommendation:** 4-gram or 5-gram for best predictive performance
248
 
249
  ---
 
251
 
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
  ### Results
259
 
260
+ | Context | Variant | Avg Entropy | Perplexity | Branching Factor | Unique Contexts | Predictability |
261
+ |---------|---------|-------------|------------|------------------|-----------------|----------------|
262
+ | **1** | Word | 0.6845 | 1.607 | 3.61 | 60,169 | 31.6% |
263
+ | **1** | Subword | 0.8600 | 1.815 | 6.42 | 953 | 14.0% |
264
+ | **2** | Word | 0.1508 | 1.110 | 1.33 | 216,093 | 84.9% |
265
+ | **2** | Subword | 0.9055 | 1.873 | 5.55 | 6,117 | 9.5% |
266
+ | **3** | Word | 0.0575 | 1.041 | 1.13 | 286,627 | 94.3% |
267
+ | **3** | Subword | 0.8121 | 1.756 | 3.93 | 33,906 | 18.8% |
268
+ | **4** | Word | 0.0351 🏆 | 1.025 | 1.08 | 322,229 | 96.5% |
269
+ | **4** | Subword | 0.6399 | 1.558 | 2.64 | 133,072 | 36.0% |
270
+
271
+ ### Generated Text Samples (Word-based)
272
+
273
+ Below are text samples generated from each word-based Markov chain model:
274
+
275
+ **Context Size 1:**
276
+
277
+ 1. `a crespo madrid mara fernando belaúnde umalliq uraqipa san huwan bosco giuseppe verdi nabucco italiy...`
278
+ 2. `suyu asu jaqinaka kurakanaka mario hinostroza ppc carlos milla batres lima jisk a suyupi piruw porta...`
279
+ 3. `jisk a t aqa suyu wankawillka mons karu puriy sulli phutti charqui kanka champhayna plato paceño`
280
+
281
+ **Context Size 2:**
282
+
283
+ 1. `jisk a suyuxa wuliwya nayriri marka sport fa šiauliai fc gintra fc šiauliai lituaña marka sport fk`
284
+ 2. `t aqa suyu piruw t aqa suyu kastilla arupi distrito de chambara na mä jisk a suyu`
285
+ 3. `aqa suyu bongara jisk a suyu nayra sarnaqawi santa rusa yachay tarpuy yachaychiy asu utanaka huch uy`
286
+
287
+ **Context Size 3:**
288
+
289
+ 1. `t aqa suyu kurunku jisk a suyu suyu piruw suyu piwra jach a suyu jisk a suyunaka aruskipäwi`
290
+ 2. `a t aqa suyu asu jaqinaka kurakanaka amílcar gerardo ramos collachagua bloque popular junín jne auto...`
291
+ 3. `jisk a t aqa suyuxa kastilla aru distrito de bambamarca na mä jisk a t aqa suyu nayriri`
292
+
293
+ **Context Size 4:**
294
+
295
+ 1. `jisk a t aqa suyu kastilla arupi distrito de pucyura nisqaqa huk jisk a t aqa suyu pallasqa jisk`
296
+ 2. `a t aqa suyu nayriri marka shanao 270 msnm qullunaka jawiranaka qutanaka qullqinchäwi jaqinaka 9 104...`
297
+ 3. `piruw t aqa suyu ariqipa jisk a suyupi ariqipa jach a suyupi piruw jach a markapi nayra sarnaqawi qu...`
298
 
 
299
 
300
+ ### Generated Text Samples (Subword-based)
301
+
302
+ Below are text samples generated from each subword-based Markov chain model:
303
 
304
  **Context Size 1:**
305
 
306
+ 1. `arererulu_jax_yu`
307
+ 2. `_ma_uycho_smtera`
308
+ 3. `i_lorma_-_si_lel`
309
 
310
  **Context Size 2:**
311
 
312
+ 1. `a_mujisqa_34_300_`
313
+ 2. `ka_jisk'aqäwiru)_`
314
+ 3. `nayrin_jisychérro`
315
 
316
  **Context Size 3:**
317
 
318
+ 1. `aka_nayriri_irpiru`
319
+ 2. `nakapi._maraka_-_l`
320
+ 3. `a_sasa_uywa_baldi_`
321
 
322
  **Context Size 4:**
323
 
324
+ 1. `naka:_musampïmwa._j`
325
+ 2. `suyu;_(kasti_wat'ay`
326
+ 3. `_suyuwa,_209,12_km2`
327
 
328
 
329
  ### Key Findings
330
 
331
+ - **Best Predictability:** Context-4 (word) with 96.5% predictability
332
  - **Branching Factor:** Decreases with context size (more deterministic)
333
+ - **Memory Trade-off:** Larger contexts require more storage (133,072 contexts)
334
  - **Recommendation:** Context-3 or Context-4 for text generation
335
 
336
  ---
 
346
 
347
  | Metric | Value |
348
  |--------|-------|
349
+ | Vocabulary Size | 24,208 |
350
+ | Total Tokens | 520,495 |
351
+ | Mean Frequency | 21.50 |
352
+ | Median Frequency | 3 |
353
+ | Frequency Std Dev | 253.66 |
354
 
355
  ### Most Common Words
356
 
357
  | Rank | Word | Frequency |
358
  |------|------|-----------|
359
+ | 1 | a | 19,357 |
360
+ | 2 | suyu | 14,560 |
361
+ | 3 | jisk | 12,473 |
362
+ | 4 | t | 11,844 |
363
+ | 5 | de | 11,521 |
364
+ | 6 | aqa | 10,723 |
365
+ | 7 | jach | 6,951 |
366
+ | 8 | jaqinaka | 5,107 |
367
+ | 9 | piruw | 5,076 |
368
+ | 10 | la | 4,233 |
369
 
370
  ### Least Common Words (from vocabulary)
371
 
372
  | Rank | Word | Frequency |
373
  |------|------|-----------|
374
+ | 1 | lunisa | 2 |
375
  | 2 | sawaru | 2 |
376
  | 3 | tuminku | 2 |
377
  | 4 | urupawa | 2 |
378
  | 5 | capitalapawa | 2 |
379
+ | 6 | kurunawirus | 2 |
380
  | 7 | uttar | 2 |
381
  | 8 | pradesh | 2 |
382
  | 9 | quqanakampi | 2 |
 
386
 
387
  | Metric | Value |
388
  |--------|-------|
389
+ | Zipf Coefficient | 1.0705 |
390
+ | R² (Goodness of Fit) | 0.996948 |
391
  | Adherence Quality | **excellent** |
392
 
393
  ### Coverage Analysis
394
 
395
  | Top N Words | Coverage |
396
  |-------------|----------|
397
+ | Top 100 | 47.7% |
398
+ | Top 1,000 | 73.0% |
399
+ | Top 5,000 | 87.2% |
400
+ | Top 10,000 | 93.0% |
401
 
402
  ### Key Findings
403
 
404
+ - **Zipf Compliance:** R²=0.9969 indicates excellent adherence to Zipf's law
405
+ - **High Frequency Dominance:** Top 100 words cover 47.7% of corpus
406
+ - **Long Tail:** 14,208 words needed for remaining 7.0% coverage
407
 
408
  ---
409
  ## 5. Word Embeddings Evaluation
 
416
 
417
  ![t-SNE Sentences](visualizations/tsne_sentences.png)
418
 
 
419
 
420
+ ### 5.1 Cross-Lingual Alignment
421
+
422
+ ![Alignment Quality](visualizations/embedding_alignment_quality.png)
423
+
424
+ ![Multilingual t-SNE](visualizations/embedding_tsne_multilingual.png)
425
+
426
+
427
+ ### 5.2 Model Comparison
428
+
429
+ | Model | Dimension | Isotropy | Semantic Density | Alignment R@1 | Alignment R@10 |
430
+ |-------|-----------|----------|------------------|---------------|----------------|
431
+ | **mono_32d** | 32 | 0.7572 🏆 | 0.3779 | N/A | N/A |
432
+ | **mono_64d** | 64 | 0.4924 | 0.3361 | N/A | N/A |
433
+ | **mono_128d** | 128 | 0.1272 | 0.3426 | N/A | N/A |
434
+ | **aligned_32d** | 32 | 0.7572 | 0.3748 | 0.0400 | 0.2060 |
435
+ | **aligned_64d** | 64 | 0.4924 | 0.3390 | 0.0480 | 0.2520 |
436
+ | **aligned_128d** | 128 | 0.1272 | 0.3283 | 0.0740 | 0.3280 |
437
 
438
  ### Key Findings
439
 
440
+ - **Best Isotropy:** mono_32d with 0.7572 (more uniform distribution)
441
+ - **Semantic Density:** Average pairwise similarity of 0.3498. Lower values indicate better semantic separation.
442
+ - **Alignment Quality:** Aligned models achieve up to 7.4% R@1 in cross-lingual retrieval.
443
+ - **Recommendation:** 128d aligned for best cross-lingual performance
444
 
445
  ---
446
+ ## 6. Morphological Analysis (Experimental)
447
+
448
+ This 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 & Complexity
451
+
452
+ | Metric | Value | Interpretation | Recommendation |
453
+ |--------|-------|----------------|----------------|
454
+ | Productivity Index | **5.000** | High morphological productivity | Reliable analysis |
455
+ | Idiomaticity Gap | **0.285** | High formulaic/idiomatic content | - |
456
+
457
+ ### 6.2 Affix Inventory (Productive Units)
458
+
459
+ These 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 Prefixes
462
+ | Prefix | Examples |
463
+ |--------|----------|
464
+ | `-ma` | mayura, manon, marcona |
465
+ | `-pa` | pallasqa, palestina, pachakutiq |
466
+
467
+ #### Productive Suffixes
468
+ | Suffix | Examples |
469
+ |--------|----------|
470
+ | `-a` | horadnia, enlacenaka, pukllaykuna |
471
+ | `-as` | cotabambas, caritas, chinapas |
472
+ | `-na` | pukllaykuna, pukyukuna, amasuna |
473
+ | `-es` | desapariciones, regiones, crueles |
474
+
475
+ ### 6.3 Bound Stems (Lexical Roots)
476
+
477
+ Bound 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.
478
+
479
+ | Stem | Cohesion | Substitutability | Examples |
480
+ |------|----------|------------------|----------|
481
+ | `kana` | 2.06x | 39 contexts | ukana, kanal, akana |
482
+ | `arka` | 2.00x | 39 contexts | arkañ, marka, markaq |
483
+ | `qull` | 1.97x | 27 contexts | qulla, qullu, qullq |
484
+ | `raqi` | 2.19x | 19 contexts | uraqi, uraqiw, saraqi |
485
+ | `hach` | 1.91x | 29 contexts | hacha, qhach, chacha |
486
+ | `hana` | 1.93x | 25 contexts | chana, hanaq, ghana |
487
+ | `tana` | 1.88x | 26 contexts | utana, utanak, patana |
488
+ | `aqin` | 2.00x | 19 contexts | taqin, jaqin, jaqinx |
489
+ | `rkan` | 2.10x | 15 contexts | hirkan, markan, markani |
490
+ | `ista` | 1.57x | 31 contexts | vista, lista, wista |
491
+ | `irin` | 1.96x | 14 contexts | irina, irinak, irineo |
492
+ | `arus` | 1.90x | 15 contexts | arusa, larus, arust |
493
+
494
+ ### 6.4 Affix Compatibility (Co-occurrence)
495
+
496
+ This table shows which prefixes and suffixes most frequently co-occur on the same stems, revealing the 'stacking' rules of the language's morphology.
497
+
498
+ | Prefix | Suffix | Frequency | Examples |
499
+ |--------|--------|-----------|----------|
500
+ | `-ma` | `-a` | 66 words | maceda, marakama |
501
+ | `-pa` | `-a` | 52 words | patunka, paulina |
502
+ | `-ma` | `-na` | 11 words | maradona, martina |
503
+ | `-pa` | `-na` | 9 words | paulina, pagina |
504
+ | `-pa` | `-es` | 8 words | patrones, pacajes |
505
+ | `-ma` | `-as` | 5 words | matorras, maravillas |
506
+ | `-ma` | `-es` | 4 words | marques, mayores |
507
+ | `-pa` | `-as` | 2 words | palabras, pachas |
508
+
509
+ ### 6.5 Recursive Morpheme Segmentation
510
+
511
+ Using **Recursive Hierarchical Substitutability**, we decompose complex words into their constituent morphemes. This approach handles nested affixes (e.g., `prefix-prefix-root-suffix`).
512
+
513
+ | Word | Suggested Split | Confidence | Stem |
514
+ |------|-----------------|------------|------|
515
+ | populares | **`popular-es`** | 4.5 | `popular` |
516
+ | ceremoniales | **`ceremonial-es`** | 4.5 | `ceremonial` |
517
+ | apóstoles | **`apóstol-es`** | 4.5 | `apóstol` |
518
+ | uywanakana | **`uywanaka-na`** | 4.5 | `uywanaka` |
519
+ | funerales | **`funeral-es`** | 4.5 | `funeral` |
520
+ | christies | **`christi-es`** | 4.5 | `christi` |
521
+ | regulares | **`regular-es`** | 4.5 | `regular` |
522
+ | familiares | **`familiar-es`** | 4.5 | `familiar` |
523
+ | wawanakana | **`wawanaka-na`** | 4.5 | `wawanaka` |
524
+ | australiana | **`australia-na`** | 4.5 | `australia` |
525
+ | magisteriales | **`ma-gisterial-es`** | 3.0 | `gisterial` |
526
+ | pacoricona | **`pa-corico-na`** | 3.0 | `corico` |
527
+ | maranakana | **`ma-ranaka-na`** | 3.0 | `ranaka` |
528
+ | partituras | **`pa-rtitur-as`** | 3.0 | `rtitur` |
529
+ | pallaytas | **`pa-llayt-as`** | 3.0 | `llayt` |
530
+
531
+ ### 6.6 Linguistic Interpretation
532
+
533
+ > **Automated Insight:**
534
+ The language Aymara shows high morphological productivity. The subword models are significantly more efficient than word models, suggesting a rich system of affixation or compounding.
535
+
536
+ > **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.
537
+
538
+ ---
539
+ ## 7. Summary & Recommendations
540
 
541
  ![Performance Dashboard](visualizations/performance_dashboard.png)
542
 
 
544
 
545
  | Component | Recommended | Rationale |
546
  |-----------|-------------|-----------|
547
+ | Tokenizer | **64k BPE** | Best compression (4.25x) |
548
+ | N-gram | **2-gram** | Lowest perplexity (282) |
549
+ | Markov | **Context-4** | Highest predictability (96.5%) |
550
  | Embeddings | **100d** | Balanced semantic capture and isotropy |
551
 
552
+
553
  ---
554
  ## Appendix: Metrics Glossary & Interpretation Guide
555
 
 
739
  author = {Kamali, Omar},
740
  title = {Wikilangs: Open NLP Models for Wikipedia Languages},
741
  year = {2025},
742
+ doi = {10.5281/zenodo.18073153},
743
+ publisher = {Zenodo},
744
  url = {https://huggingface.co/wikilangs}
745
  institution = {Omneity Labs}
746
  }
 
756
  - 🤗 Models: [huggingface.co/wikilangs](https://huggingface.co/wikilangs)
757
  - 📊 Data: [wikipedia-monthly](https://huggingface.co/datasets/omarkamali/wikipedia-monthly)
758
  - 👤 Author: [Omar Kamali](https://huggingface.co/omarkamali)
759
+ - 🤝 Sponsor: [Featherless AI](https://featherless.ai)
760
  ---
761
  *Generated by Wikilangs Models Pipeline*
762
 
763
+ *Report Date: 2026-01-03 18:29:39*
models/embeddings/aligned/ay_128d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:75d888891253a1aa92de8ddd80df98c7db29b4648e540064983fb281a81a46b9
3
+ size 1033669280
models/embeddings/aligned/ay_128d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "ay", "dim": 128, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/ay_128d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e1a78f4b80b51986269486d859a4ec88792de8afc75d5bdd9ed8953d6a1015ed
3
+ size 65664
models/embeddings/aligned/ay_128d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "ay",
3
+ "dimension": 128,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 5455,
7
+ "vocab_size": 9294
8
+ }
models/embeddings/aligned/ay_32d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fff45db79d8ee2218013d4417e66c2e2ac670f5f02f8cdf69f450bf46ef79529
3
+ size 258531488
models/embeddings/aligned/ay_32d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "ay", "dim": 32, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/ay_32d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:98d6d9d23db529e1ac02363a32ffe259502e4f09e2698ab8e12658ca422ae72c
3
+ size 4224
models/embeddings/aligned/ay_32d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "ay",
3
+ "dimension": 32,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 5455,
7
+ "vocab_size": 9294
8
+ }
models/embeddings/aligned/ay_64d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:773718fb46417e3a4eacea82a8b66c181ebf71989859ce733616e8890622e928
3
+ size 516910752
models/embeddings/aligned/ay_64d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "ay", "dim": 64, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/ay_64d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d9255d50061c7fc8c3ef059fcdd7c027c81541f541931be94e5a16bd6668b9e1
3
+ size 16512
models/embeddings/aligned/ay_64d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "ay",
3
+ "dimension": 64,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 5455,
7
+ "vocab_size": 9294
8
+ }
models/embeddings/monolingual/ay_128d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:593d231b5c862c91d99a298b35d7a8a92af5889f7195a1096550a6cf493db26c
3
- size 1034781490
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:75d888891253a1aa92de8ddd80df98c7db29b4648e540064983fb281a81a46b9
3
+ size 1033669280
models/embeddings/monolingual/ay_128d_metadata.json CHANGED
@@ -3,11 +3,13 @@
3
  "dimension": 128,
4
  "version": "monolingual",
5
  "training_params": {
6
- "dim": 128,
7
  "min_count": 5,
8
  "window": 5,
9
  "negative": 5,
10
- "epochs": 5
 
 
11
  },
12
- "vocab_size": 10362
13
  }
 
3
  "dimension": 128,
4
  "version": "monolingual",
5
  "training_params": {
6
+ "algorithm": "skipgram",
7
  "min_count": 5,
8
  "window": 5,
9
  "negative": 5,
10
+ "epochs": 5,
11
+ "encoding_method": "rope",
12
+ "dim": 128
13
  },
14
+ "vocab_size": 9294
15
  }
models/embeddings/monolingual/ay_32d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:1148550baa373f84d4bcb57f3b890769155df89eb33f5ca94e031220a6178d22
3
- size 258823474
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fff45db79d8ee2218013d4417e66c2e2ac670f5f02f8cdf69f450bf46ef79529
3
+ size 258531488
models/embeddings/monolingual/ay_32d_metadata.json CHANGED
@@ -3,11 +3,13 @@
3
  "dimension": 32,
4
  "version": "monolingual",
5
  "training_params": {
6
- "dim": 32,
7
  "min_count": 5,
8
  "window": 5,
9
  "negative": 5,
10
- "epochs": 5
 
 
11
  },
12
- "vocab_size": 10362
13
  }
 
3
  "dimension": 32,
4
  "version": "monolingual",
5
  "training_params": {
6
+ "algorithm": "skipgram",
7
  "min_count": 5,
8
  "window": 5,
9
  "negative": 5,
10
+ "epochs": 5,
11
+ "encoding_method": "rope",
12
+ "dim": 32
13
  },
14
+ "vocab_size": 9294
15
  }
models/embeddings/monolingual/ay_64d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:11f64944a6949f805320a9a0366bed7ddb5434a527e1796dc32cbf647cb04617
3
- size 517476146
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:773718fb46417e3a4eacea82a8b66c181ebf71989859ce733616e8890622e928
3
+ size 516910752
models/embeddings/monolingual/ay_64d_metadata.json CHANGED
@@ -3,11 +3,13 @@
3
  "dimension": 64,
4
  "version": "monolingual",
5
  "training_params": {
6
- "dim": 64,
7
  "min_count": 5,
8
  "window": 5,
9
  "negative": 5,
10
- "epochs": 5
 
 
11
  },
12
- "vocab_size": 10362
13
  }
 
3
  "dimension": 64,
4
  "version": "monolingual",
5
  "training_params": {
6
+ "algorithm": "skipgram",
7
  "min_count": 5,
8
  "window": 5,
9
  "negative": 5,
10
+ "epochs": 5,
11
+ "encoding_method": "rope",
12
+ "dim": 64
13
  },
14
+ "vocab_size": 9294
15
  }
models/subword_markov/ay_markov_ctx1_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:a501564aa7bab749452432f4296ba393aa4888e0600291301c8acb9b46087910
3
- size 60606
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2f654f9a1af166ba7100d504c0a42b9c28d1153746d67b7f513b89cced108560
3
+ size 53963
models/subword_markov/ay_markov_ctx1_subword_metadata.json CHANGED
@@ -3,5 +3,5 @@
3
  "variant": "subword",
4
  "language": "ay",
5
  "unique_contexts": 953,
6
- "total_transitions": 4432265
7
  }
 
3
  "variant": "subword",
4
  "language": "ay",
5
  "unique_contexts": 953,
6
+ "total_transitions": 3713215
7
  }
models/subword_markov/ay_markov_ctx2_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:66f2745ff633512b340bdf8201dd98192e37615cc9042243528ef27b8cf231bb
3
- size 339502
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3498f52b616acab68c6d811d03502a2e2c453365e62690eacde2f61f3013b0b3
3
+ size 279369
models/subword_markov/ay_markov_ctx2_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "ay",
5
- "unique_contexts": 7201,
6
- "total_transitions": 4426837
7
  }
 
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "ay",
5
+ "unique_contexts": 6117,
6
+ "total_transitions": 3707986
7
  }
models/subword_markov/ay_markov_ctx3_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:fa6ef1a990648f3d87315c9fbfaba1abc08319ae83afd78f5259b68a6e9622fd
3
- size 1261852
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:95e497c1994158f6b7131bbb16a2806fd1970f63daa68c89d1aaec498a96fb9e
3
+ size 1014554
models/subword_markov/ay_markov_ctx3_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "ay",
5
- "unique_contexts": 43833,
6
- "total_transitions": 4421409
7
  }
 
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "ay",
5
+ "unique_contexts": 33906,
6
+ "total_transitions": 3702757
7
  }
models/subword_markov/ay_markov_ctx4_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:a65fd0941e7426fe960b1fee56ea748a94605c4412ad68c9094e3ae9643915cc
3
- size 3425718
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:228f396f37e804f0c24770ca609187f92bcca3d3b4e4ecb74df73086171c3807
3
+ size 2704254
models/subword_markov/ay_markov_ctx4_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "ay",
5
- "unique_contexts": 171955,
6
- "total_transitions": 4415981
7
  }
 
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "ay",
5
+ "unique_contexts": 133072,
6
+ "total_transitions": 3697528
7
  }
models/subword_ngram/ay_2gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:7b4e4597fceea0d7c8119438b61b0b4477dd0e8b8fde6f7f68febdb690bf5333
3
- size 41037
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aaf8602bddd857d99fc6ee56ddafe1df2adeceac60fc6026e61cff247852b46a
3
+ size 33850
models/subword_ngram/ay_2gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "ay",
5
- "unique_ngrams": 3058,
6
- "total_ngrams": 4432265
7
  }
 
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "ay",
5
+ "unique_ngrams": 2432,
6
+ "total_ngrams": 3713215
7
  }
models/subword_ngram/ay_3gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:00b41467becbb77b0b605997b7fefc5dfb74440266d63b49cbe7a413cc01e080
3
- size 270869
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a957cd69c5e6f74077658fcc5090387010c39f492ec195f8a2b7af6c68c1f33a
3
+ size 219992
models/subword_ngram/ay_3gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "ay",
5
- "unique_ngrams": 22295,
6
- "total_ngrams": 4426837
7
  }
 
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "ay",
5
+ "unique_ngrams": 18023,
6
+ "total_ngrams": 3707986
7
  }
models/subword_ngram/ay_4gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:47d09c14900c8b9ae9a7d8df02df50e5b5485695a6fc0b931bef0d14df9ce8b1
3
- size 1123557
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f9ef9413d4a89505e3f91ccd040c9ace37f81b42675324390c4ced638def69df
3
+ size 922265
models/subword_ngram/ay_4gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "ay",
5
- "unique_ngrams": 97814,
6
- "total_ngrams": 4421409
7
  }
 
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "ay",
5
+ "unique_ngrams": 79517,
6
+ "total_ngrams": 3702757
7
  }
models/subword_ngram/ay_5gram_subword.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:803216eeaa51e93098ac61273d0da7e7bc6132dea2fb7a682860709e829438f9
3
+ size 1968450
models/subword_ngram/ay_5gram_subword_metadata.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "n": 5,
3
+ "variant": "subword",
4
+ "language": "ay",
5
+ "unique_ngrams": 172494,
6
+ "total_ngrams": 3697528
7
+ }
models/tokenizer/ay_tokenizer_16k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:bacd6b6b67eecb376d4d6587a319913a3beba867c2d3084857448cfac3757e48
3
- size 503226
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:0adbcb26da0a585d5342e5e812427af91bee2f91b636980dd3e95f0b4a1c1196
3
+ size 505737
models/tokenizer/ay_tokenizer_16k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/ay_tokenizer_32k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:ff707a0d80083da5281395b809fd5fa3d8f96da2ef90f415d80f52d3eef2121a
3
- size 777476
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a389e8657895e37f80c387c1c012d6587ba2c6873de28392f63b10239696e1aa
3
+ size 775069
models/tokenizer/ay_tokenizer_32k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/ay_tokenizer_64k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:2e56a192de4ae4f2d2a0ff3ab901c71c57726cc607781da09d9ccbcc07365fc0
3
- size 1370860
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:52c41ca6fce3fc21331e55bad07971d936bae44bee2a2da570c6c24a802646be
3
+ size 1367039
models/tokenizer/ay_tokenizer_64k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/ay_tokenizer_8k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:06a75da91da908126d1fafd3569251faaa4952976ef9181f20ec4f333bf6005d
3
- size 371206
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2e40fb62f5c7d884cf77e55e5a5e857f6acb519b28d3093b7f6c0c61798bc063
3
+ size 371955
models/tokenizer/ay_tokenizer_8k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/vocabulary/ay_vocabulary.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:de3094a5549fa43e268c332bf5eb6ff19a145b1edf8b5ccfbb2e2d399a2272e4
3
- size 427486
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:96a6d04850ad9f727fbc2e68b852da29a3b2e054174228817863e3cd55eff52b
3
+ size 406214
models/vocabulary/ay_vocabulary_metadata.json CHANGED
@@ -1,16 +1,17 @@
1
  {
2
  "language": "ay",
3
- "vocabulary_size": 25329,
 
4
  "statistics": {
5
- "type_token_ratio": 0.10227701301150292,
6
  "coverage": {
7
- "top_100": 0.43783393047960273,
8
- "top_1000": 0.6883022188698221,
9
- "top_5000": 0.8231488465648376,
10
- "top_10000": 0.8748287133069332
11
  },
12
- "hapax_count": 39756,
13
- "hapax_ratio": 0.6108319889375432,
14
- "total_documents": 5428
15
  }
16
  }
 
1
  {
2
  "language": "ay",
3
+ "vocabulary_size": 24208,
4
+ "variant": "full",
5
  "statistics": {
6
+ "type_token_ratio": 0.10855027401615537,
7
  "coverage": {
8
+ "top_100": 0.44600956676528014,
9
+ "top_1000": 0.6823514196569544,
10
+ "top_5000": 0.8155496758687956,
11
+ "top_10000": 0.869902051124535
12
  },
13
+ "hapax_count": 36224,
14
+ "hapax_ratio": 0.5994175271379402,
15
+ "total_documents": 5229
16
  }
17
  }
models/word_markov/ay_markov_ctx1_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:9235d44170713caeb8fc80b3dba5782d1f796ed803992b0531ceb65661a19aa4
3
- size 2137508
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b3f3d0e7e728161dbcc80a73ac28997f5e0feb79512426474650a8a566101fc6
3
+ size 1954702
models/word_markov/ay_markov_ctx1_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "ay",
5
- "unique_contexts": 65172,
6
- "total_transitions": 888867
7
  }
 
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "ay",
5
+ "unique_contexts": 60169,
6
+ "total_transitions": 551490
7
  }
models/word_markov/ay_markov_ctx2_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:56c569c3d809da2135b500827e40c8db0797fbcb18c0c4e781c6af0595edd8c7
3
- size 4305196
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a79438f48542e0b474e7e91879950895c9f265f99669a75acc68549273f2b2a6
3
+ size 3803866
models/word_markov/ay_markov_ctx2_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "ay",
5
- "unique_contexts": 239858,
6
- "total_transitions": 883439
7
  }
 
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "ay",
5
+ "unique_contexts": 216093,
6
+ "total_transitions": 546261
7
  }