omarkamali commited on
Commit
252cc7a
·
verified ·
1 Parent(s): e1730cc

Upload all models and assets for af (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 +216 -181
  3. models/embeddings/aligned/af_128d.bin +3 -0
  4. models/embeddings/aligned/af_128d.meta.json +1 -0
  5. models/embeddings/aligned/af_128d.projection.npy +3 -0
  6. models/embeddings/aligned/af_128d_metadata.json +8 -0
  7. models/embeddings/aligned/af_32d.bin +3 -0
  8. models/embeddings/aligned/af_32d.meta.json +1 -0
  9. models/embeddings/aligned/af_32d.projection.npy +3 -0
  10. models/embeddings/aligned/af_32d_metadata.json +8 -0
  11. models/embeddings/aligned/af_64d.bin +3 -0
  12. models/embeddings/aligned/af_64d.meta.json +1 -0
  13. models/embeddings/aligned/af_64d.projection.npy +3 -0
  14. models/embeddings/aligned/af_64d_metadata.json +8 -0
  15. models/embeddings/monolingual/af_128d.bin +2 -2
  16. models/embeddings/monolingual/af_128d_metadata.json +1 -1
  17. models/embeddings/monolingual/af_32d.bin +2 -2
  18. models/embeddings/monolingual/af_32d_metadata.json +1 -1
  19. models/embeddings/monolingual/af_64d.bin +2 -2
  20. models/embeddings/monolingual/af_64d_metadata.json +1 -1
  21. models/subword_markov/af_markov_ctx1_subword.parquet +2 -2
  22. models/subword_markov/af_markov_ctx1_subword_metadata.json +2 -2
  23. models/subword_markov/af_markov_ctx2_subword.parquet +2 -2
  24. models/subword_markov/af_markov_ctx2_subword_metadata.json +2 -2
  25. models/subword_markov/af_markov_ctx3_subword.parquet +2 -2
  26. models/subword_markov/af_markov_ctx3_subword_metadata.json +2 -2
  27. models/subword_markov/af_markov_ctx4_subword.parquet +2 -2
  28. models/subword_markov/af_markov_ctx4_subword_metadata.json +2 -2
  29. models/subword_ngram/af_2gram_subword.parquet +2 -2
  30. models/subword_ngram/af_2gram_subword_metadata.json +2 -2
  31. models/subword_ngram/af_3gram_subword.parquet +2 -2
  32. models/subword_ngram/af_3gram_subword_metadata.json +2 -2
  33. models/subword_ngram/af_4gram_subword.parquet +2 -2
  34. models/subword_ngram/af_4gram_subword_metadata.json +2 -2
  35. models/subword_ngram/af_5gram_subword.parquet +3 -0
  36. models/subword_ngram/af_5gram_subword_metadata.json +7 -0
  37. models/tokenizer/af_tokenizer_16k.model +2 -2
  38. models/tokenizer/af_tokenizer_16k.vocab +0 -0
  39. models/tokenizer/af_tokenizer_32k.model +2 -2
  40. models/tokenizer/af_tokenizer_32k.vocab +0 -0
  41. models/tokenizer/af_tokenizer_64k.model +2 -2
  42. models/tokenizer/af_tokenizer_64k.vocab +0 -0
  43. models/tokenizer/af_tokenizer_8k.model +2 -2
  44. models/tokenizer/af_tokenizer_8k.vocab +0 -0
  45. models/vocabulary/af_vocabulary.parquet +2 -2
  46. models/vocabulary/af_vocabulary_metadata.json +9 -9
  47. models/word_markov/af_markov_ctx1_word.parquet +2 -2
  48. models/word_markov/af_markov_ctx1_word_metadata.json +2 -2
  49. models/word_markov/af_markov_ctx2_word.parquet +2 -2
  50. models/word_markov/af_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: af
3
- language_name: AF
4
  language_family: germanic_west_anglofrisian
5
  tags:
6
  - wikilangs
@@ -10,11 +10,21 @@ tags:
10
  - n-gram
11
  - markov
12
  - wikipedia
 
 
 
 
 
 
 
 
 
 
13
  - monolingual
14
  - family-germanic_west_anglofrisian
15
  license: mit
16
  library_name: wikilangs
17
- pipeline_tag: feature-extraction
18
  datasets:
19
  - omarkamali/wikipedia-monthly
20
  dataset_info:
@@ -26,17 +36,17 @@ metrics:
26
  value: 4.620
27
  - name: best_isotropy
28
  type: isotropy
29
- value: 0.6959
30
  - name: vocabulary_size
31
  type: vocab
32
  value: 0
33
  generated: 2026-01-03
34
  ---
35
 
36
- # AF - Wikilangs Models
37
  ## Comprehensive Research Report & Full Ablation Study
38
 
39
- This repository contains NLP models trained and evaluated by Wikilangs, specifically on **AF** Wikipedia data.
40
  We analyze tokenizers, n-gram models, Markov chains, vocabulary statistics, and word embeddings.
41
 
42
  ## 📋 Repository Contents
@@ -60,7 +70,7 @@ We analyze tokenizers, n-gram models, Markov chains, vocabulary statistics, and
60
  - [3. Markov Chain Evaluation](#3-markov-chain-evaluation)
61
  - [4. Vocabulary Analysis](#4-vocabulary-analysis)
62
  - [5. Word Embeddings Evaluation](#5-word-embeddings-evaluation)
63
- - [6. Morphological Analysis (Experimental)](#6-morphological-analysis)
64
  - [7. Summary & Recommendations](#7-summary--recommendations)
65
  - [Metrics Glossary](#appendix-metrics-glossary--interpretation-guide)
66
  - [Visualizations Index](#visualizations-index)
@@ -80,41 +90,41 @@ We analyze tokenizers, n-gram models, Markov chains, vocabulary statistics, and
80
 
81
  | Vocab Size | Compression | Avg Token Len | UNK Rate | Total Tokens |
82
  |------------|-------------|---------------|----------|--------------|
83
- | **8k** | 3.747x | 3.75 | 0.0650% | 1,240,279 |
84
- | **16k** | 4.108x | 4.11 | 0.0712% | 1,131,351 |
85
- | **32k** | 4.402x | 4.40 | 0.0763% | 1,055,895 |
86
- | **64k** | 4.620x 🏆 | 4.62 | 0.0801% | 1,006,125 |
87
 
88
  ### Tokenization Examples
89
 
90
  Below are sample sentences tokenized with each vocabulary size:
91
 
92
- **Sample 1:** `Neede is n dorp in die munisipaliteit Berkelland in die provinsie Gelderland in...`
93
 
94
  | Vocab | Tokens | Count |
95
  |-------|--------|-------|
96
- | 8k | `▁ne e de ▁is ▁’ n ▁dorpindiemunisipaliteit ... (+14 more)` | 24 |
97
- | 16k | `▁ne ede ▁is ▁’ n ▁dorpindiemunisipaliteit ▁berk ... (+13 more)` | 23 |
98
- | 32k | `▁ne ede ▁is ▁’ n ▁dorpindiemunisipaliteit ▁berk ... (+13 more)` | 23 |
99
- | 64k | `▁ne ede ▁is ▁’ n ▁dorpindiemunisipaliteitberkelland ... (+12 more)` | 22 |
100
 
101
- **Sample 2:** `Japan Nasionale Roete 210 is 'n nasionale snelweg in Japan. Verwysings paaie in ...`
102
 
103
  | Vocab | Tokens | Count |
104
  |-------|--------|-------|
105
- | 8k | `▁japannasionaleroete 2 1 0 ▁is ▁' n ... (+9 more)` | 19 |
106
- | 16k | `▁japannasionaleroete2 1 0is' n ... (+9 more)` | 19 |
107
- | 32k | `▁japannasionaleroete2 1 0is' n ... (+9 more)` | 19 |
108
- | 64k | `▁japannasionaleroete2 1 0is' n ... (+9 more)` | 19 |
109
 
110
- **Sample 3:** `Ja'Net DuBois (gebore 5 Augustus 17 Februarie was 'n Amerikaanse aktrise. Ekst...`
111
 
112
  | Vocab | Tokens | Count |
113
  |-------|--------|-------|
114
- | 8k | `▁ja ' netdub ois ▁( gebore5 augustus ... (+30 more)` | 40 |
115
- | 16k | `▁ja ' netdub ois ▁( gebore5 augustus ... (+30 more)` | 40 |
116
- | 32k | `▁ja ' netdub ois ▁( gebore5 augustus ... (+30 more)` | 40 |
117
- | 64k | `▁ja ' net dubois( gebore 5augustus ▁– ... (+29 more)` | 39 |
118
 
119
 
120
  ### Key Findings
@@ -137,12 +147,14 @@ Below are sample sentences tokenized with each vocabulary size:
137
 
138
  | N-gram | Variant | Perplexity | Entropy | Unique N-grams | Top-100 Coverage | Top-1000 Coverage |
139
  |--------|---------|------------|---------|----------------|------------------|-------------------|
140
- | **2-gram** | Word | 67,018 | 16.03 | 738,183 | 13.7% | 29.1% |
141
- | **2-gram** | Subword | 253 🏆 | 7.98 | 13,576 | 69.5% | 99.3% |
142
- | **3-gram** | Word | 293,932 | 18.17 | 1,499,483 | 5.8% | 16.9% |
143
- | **3-gram** | Subword | 2,161 | 11.08 | 96,263 | 28.5% | 71.9% |
144
- | **4-gram** | Word | 555,388 | 19.08 | 2,510,434 | 6.5% | 16.6% |
145
- | **4-gram** | Subword | 12,658 | 13.63 | 531,540 | 15.0% | 40.0% |
 
 
146
 
147
  ### Top 5 N-grams by Size
148
 
@@ -150,68 +162,88 @@ Below are sample sentences tokenized with each vocabulary size:
150
 
151
  | Rank | N-gram | Count |
152
  |------|--------|-------|
153
- | 1 | `van die` | 509,583 |
154
- | 2 | `in die` | 342,810 |
155
- | 3 | `is n` | 114,159 |
156
- | 4 | `en die` | 109,201 |
157
- | 5 | `is die` | 91,083 |
158
 
159
  **3-grams (Word):**
160
 
161
  | Rank | N-gram | Count |
162
  |------|--------|-------|
163
- | 1 | `van suid afrika` | 26,860 |
164
- | 2 | `rolle in die` | 25,216 |
165
- | 3 | `die 20ste eeu` | 24,460 |
166
- | 4 | `van die 20ste` | 23,487 |
167
- | 5 | `eksterne skakels in` | 22,326 |
168
 
169
  **4-grams (Word):**
170
 
171
  | Rank | N-gram | Count |
172
  |------|--------|-------|
173
- | 1 | `van die 20ste eeu` | 23,423 |
174
- | 2 | `manlike akteurs van die` | 20,397 |
175
  | 3 | `rolle in die rolprente` | 19,639 |
176
- | 4 | `van die 21ste eeu` | 15,799 |
177
- | 5 | `plants of the world` | 13,996 |
 
 
 
 
 
 
 
 
 
 
178
 
179
  **2-grams (Subword):**
180
 
181
  | Rank | N-gram | Count |
182
  |------|--------|-------|
183
- | 1 | `e _` | 8,883,972 |
184
- | 2 | `n _` | 5,845,355 |
185
- | 3 | `i e` | 5,296,532 |
186
- | 4 | `e r` | 4,795,609 |
187
- | 5 | `_ d` | 4,496,380 |
188
 
189
  **3-grams (Subword):**
190
 
191
  | Rank | N-gram | Count |
192
  |------|--------|-------|
193
- | 1 | `i e _` | 3,582,000 |
194
- | 2 | `_ d i` | 3,169,450 |
195
- | 3 | `d i e` | 3,046,581 |
196
- | 4 | `a n _` | 1,886,278 |
197
- | 5 | `e n _` | 1,538,281 |
198
 
199
  **4-grams (Subword):**
200
 
201
  | Rank | N-gram | Count |
202
  |------|--------|-------|
203
- | 1 | `d i e _` | 2,916,346 |
204
- | 2 | `_ d i e` | 2,836,188 |
205
- | 3 | `_ v a n` | 1,357,382 |
206
- | 4 | `v a n _` | 1,341,795 |
207
- | 5 | `n _ d i` | 1,169,352 |
 
 
 
 
 
 
 
 
 
 
208
 
209
 
210
  ### Key Findings
211
 
212
  - **Best Perplexity:** 2-gram (subword) with 253
213
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
214
- - **Coverage:** Top-1000 patterns cover ~40% of corpus
215
  - **Recommendation:** 4-gram or 5-gram for best predictive performance
216
 
217
  ---
@@ -227,14 +259,14 @@ Below are sample sentences tokenized with each vocabulary size:
227
 
228
  | Context | Variant | Avg Entropy | Perplexity | Branching Factor | Unique Contexts | Predictability |
229
  |---------|---------|-------------|------------|------------------|-----------------|----------------|
230
- | **1** | Word | 0.9426 | 1.922 | 9.97 | 884,548 | 5.7% |
231
- | **1** | Subword | 1.0721 | 2.102 | 6.58 | 7,654 | 0.0% |
232
- | **2** | Word | 0.3842 | 1.305 | 2.33 | 8,810,967 | 61.6% |
233
- | **2** | Subword | 0.7311 | 1.660 | 4.61 | 50,359 | 26.9% |
234
- | **3** | Word | 0.1707 | 1.126 | 1.40 | 20,525,798 | 82.9% |
235
- | **3** | Subword | 0.7061 | 1.631 | 4.02 | 231,918 | 29.4% |
236
- | **4** | Word | 0.0704 🏆 | 1.050 | 1.13 | 28,628,609 | 93.0% |
237
- | **4** | Subword | 0.6911 | 1.615 | 3.50 | 931,942 | 30.9% |
238
 
239
  ### Generated Text Samples (Word-based)
240
 
@@ -242,27 +274,27 @@ Below are text samples generated from each word-based Markov chain model:
242
 
243
  **Context Size 1:**
244
 
245
- 1. `die burger 13 augustus se fsa nommer vier soldate die uitkoms vir letterkunde in n klein`
246
- 2. `van soest r amphoriscus cylindrus is in paradise careful he du mont dolent teen 5 6`
247
- 3. `in die rigting van die twee broers en met die ou teeroete die liberte het die`
248
 
249
  **Context Size 2:**
250
 
251
- 1. `van die spons behoort tot die genus geodia en tot die genus leucadendron behoort en is deur`
252
- 2. `in die stille oseaan wat tot 4 uur later onder westerse intellektuele invloede gekom frankryk hertog...`
253
- 3. `is n nuwe telling van 83 etse wat spesiaal vir hierdie liedjie is in die rolprente innerspace`
254
 
255
  **Context Size 3:**
256
 
257
- 1. `rolle in die rolprente the squaw man resurrección kongo the broken wing roaring rails en devils dice...`
258
- 2. `van die 20ste eeu aktrises van die 21ste eeu mense aktrises van die 21ste eeu aktrises van die`
259
- 3. `eksterne skakels in manlike akteurs van die 20ste eeu in n stormwind deur pieter kluyver wind is die`
260
 
261
  **Context Size 4:**
262
 
263
- 1. `manlike akteurs van die 20ste eeu aktrises van die 20ste eeu rolprentvervaardigers in mense van die ...`
264
- 2. `rolle in die rolprente tomorrow when the war began the weekend shift high life tidelands eksterne sk...`
265
- 3. `plants of the world online van suid afrika plante van suid afrika gramineum`
266
 
267
 
268
  ### Generated Text Samples (Subword-based)
@@ -271,34 +303,34 @@ Below are text samples generated from each subword-based Markov chain model:
271
 
272
  **Context Size 1:**
273
 
274
- 1. `_ho_evise_j._wom`
275
- 2. `enstein_n_nkt_he`
276
- 3. `igeked_dig_linid`
277
 
278
  **Context Size 2:**
279
 
280
- 1. `e_nin:_sy_offie_l`
281
- 2. `n_die_nivir_nbom_`
282
- 3. `ie_uikaide_ver_ro`
283
 
284
  **Context Size 3:**
285
 
286
- 1. `ie_van_die_bespelt`
287
- 2. `_die_wassen_paropo`
288
- 3. `die_van_spel_andar`
289
 
290
  **Context Size 4:**
291
 
292
- 1. `die_vonnikeksadige_`
293
- 2. `_die_branse_levisie`
294
- 3. `_van_waar_toest,_r.`
295
 
296
 
297
  ### Key Findings
298
 
299
- - **Best Predictability:** Context-4 (word) with 93.0% predictability
300
  - **Branching Factor:** Decreases with context size (more deterministic)
301
- - **Memory Trade-off:** Larger contexts require more storage (931,942 contexts)
302
  - **Recommendation:** Context-3 or Context-4 for text generation
303
 
304
  ---
@@ -314,48 +346,48 @@ Below are text samples generated from each subword-based Markov chain model:
314
 
315
  | Metric | Value |
316
  |--------|-------|
317
- | Vocabulary Size | 403,515 |
318
- | Total Tokens | 38,429,571 |
319
- | Mean Frequency | 95.24 |
320
  | Median Frequency | 4 |
321
- | Frequency Std Dev | 6117.62 |
322
 
323
  ### Most Common Words
324
 
325
  | Rank | Word | Frequency |
326
  |------|------|-----------|
327
- | 1 | die | 2,828,931 |
328
- | 2 | van | 1,318,980 |
329
- | 3 | in | 1,109,973 |
330
- | 4 | en | 1,045,922 |
331
- | 5 | n | 802,080 |
332
- | 6 | is | 763,111 |
333
- | 7 | het | 641,876 |
334
- | 8 | wat | 341,748 |
335
- | 9 | the | 292,778 |
336
- | 10 | op | 289,154 |
337
 
338
  ### Least Common Words (from vocabulary)
339
 
340
  | Rank | Word | Frequency |
341
  |------|------|-----------|
342
- | 1 | williamsville | 2 |
343
- | 2 | 1kd | 2 |
344
- | 3 | argiefkopie | 2 |
345
- | 4 | liuzhi | 2 |
346
- | 5 | microsat | 2 |
347
- | 6 | orbex | 2 |
348
- | 7 | afrikanertoekoms | 2 |
349
- | 8 | wêreldkennis | 2 |
350
- | 9 | gastebydraes | 2 |
351
- | 10 | sandkweek | 2 |
352
 
353
  ### Zipf's Law Analysis
354
 
355
  | Metric | Value |
356
  |--------|-------|
357
  | Zipf Coefficient | 1.0518 |
358
- | R² (Goodness of Fit) | 0.996010 |
359
  | Adherence Quality | **excellent** |
360
 
361
  ### Coverage Analysis
@@ -371,7 +403,7 @@ Below are text samples generated from each subword-based Markov chain model:
371
 
372
  - **Zipf Compliance:** R²=0.9960 indicates excellent adherence to Zipf's law
373
  - **High Frequency Dominance:** Top 100 words cover 43.7% of corpus
374
- - **Long Tail:** 393,515 words needed for remaining 15.0% coverage
375
 
376
  ---
377
  ## 5. Word Embeddings Evaluation
@@ -387,37 +419,40 @@ Below are text samples generated from each subword-based Markov chain model:
387
 
388
  ### 5.1 Cross-Lingual Alignment
389
 
390
- > *Note: Multilingual alignment visualization not available for this language.*
 
 
391
 
392
 
393
  ### 5.2 Model Comparison
394
 
395
  | Model | Dimension | Isotropy | Semantic Density | Alignment R@1 | Alignment R@10 |
396
  |-------|-----------|----------|------------------|---------------|----------------|
397
- | **mono_32d** | 32 | 0.6926 | 0.3664 | N/A | N/A |
398
- | **mono_64d** | 64 | 0.6959 🏆 | 0.3037 | N/A | N/A |
399
- | **mono_128d** | 128 | 0.6723 | 0.2366 | N/A | N/A |
 
 
 
400
 
401
  ### Key Findings
402
 
403
- - **Best Isotropy:** mono_64d with 0.6959 (more uniform distribution)
404
- - **Semantic Density:** Average pairwise similarity of 0.3023. Lower values indicate better semantic separation.
405
- - **Alignment Quality:** No aligned models evaluated in this run.
406
  - **Recommendation:** 128d aligned for best cross-lingual performance
407
 
408
  ---
409
  ## 6. Morphological Analysis (Experimental)
410
 
411
- > ⚠️ **Warning:** This language shows low morphological productivity. The statistical signals used for this analysis may be noisy or less reliable than for morphologically rich languages.
412
-
413
  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.
414
 
415
  ### 6.1 Productivity & Complexity
416
 
417
  | Metric | Value | Interpretation | Recommendation |
418
  |--------|-------|----------------|----------------|
419
- | Productivity Index | **0.000** | Low morphological productivity | ⚠️ Likely unreliable |
420
- | Idiomaticity Gap | **-1.000** | Low formulaic content | - |
421
 
422
  ### 6.2 Affix Inventory (Productive Units)
423
 
@@ -426,19 +461,19 @@ These are the most productive prefixes and suffixes identified by sampling the v
426
  #### Productive Prefixes
427
  | Prefix | Examples |
428
  |--------|----------|
429
- | `-ge` | gewandel, gefloreer, getrouheidseed |
430
 
431
  #### Productive Suffixes
432
  | Suffix | Examples |
433
  |--------|----------|
434
- | `-e` | kurasse, kortikosteroïde, maatskappyname |
435
- | `-s` | tuttles, stakings, kenens |
436
- | `-er` | gefloreer, umbilorivier, koorsanger |
437
- | `-es` | tuttles, spectres, kladmetodes |
438
- | `-ng` | kruiskleding, saambring, swangerskapvergiftiging |
439
- | `-ie` | patagonie, photographie, kriminologie |
440
- | `-ing` | kruiskleding, saambring, swangerskapvergiftiging |
441
- | `-te` | monofisiete, skrikwekkendste, curriebekerpunte |
442
 
443
  ### 6.3 Bound Stems (Lexical Roots)
444
 
@@ -446,18 +481,18 @@ Bound stems are high-frequency subword units that are semantically cohesive but
446
 
447
  | Stem | Cohesion | Substitutability | Examples |
448
  |------|----------|------------------|----------|
449
- | `pren` | 2.37x | 29 contexts | prent, prens, prend |
450
- | `staa` | 1.71x | 98 contexts | staat, staal, staan |
451
- | `ings` | 1.53x | 145 contexts | wings, rings, hings |
452
- | `brui` | 1.99x | 44 contexts | bruis, bruid, bruik |
453
- | `kend` | 1.65x | 95 contexts | kende, kendo, skend |
454
- | `ebru` | 2.08x | 32 contexts | gebru, hebrus, gebruk |
455
- | `ersk` | 1.54x | 107 contexts | perske, koersk, perski |
456
- | `erdi` | 1.61x | 84 contexts | verdi, ferdi, gerdi |
457
- | `rste` | 1.42x | 150 contexts | erste, eerste, fyrste |
458
- | `rdie` | 1.73x | 51 contexts | ardie, gordie, jordie |
459
- | `kste` | 1.54x | 71 contexts | ekster, tekste, dikste |
460
- | `eken` | 1.34x | 123 contexts | weken, deken, oeken |
461
 
462
  ### 6.4 Affix Compatibility (Co-occurrence)
463
 
@@ -465,16 +500,16 @@ This table shows which prefixes and suffixes most frequently co-occur on the sam
465
 
466
  | Prefix | Suffix | Frequency | Examples |
467
  |--------|--------|-----------|----------|
468
- | `-ge` | `-e` | 63 words | geenlokusse, gebruikskode |
469
- | `-ge` | `-de` | 28 words | gebruikskode, geeboniseerde |
470
- | `-ge` | `-er` | 27 words | geigenspieler, getelegrafeer |
471
- | `-ge` | `-s` | 11 words | gemeentesusters, geles |
472
- | `-ge` | `-en` | 9 words | gefahren, gelegen |
473
- | `-ge` | `-te` | 6 words | geskenkte, geweldigste |
474
- | `-ge` | `-ie` | 5 words | getalteorie, geelglasogie |
475
- | `-ge` | `-es` | 4 words | geles, geowetenskaplikes |
476
- | `-ge` | `-ng` | 2 words | geeking, gesondheidsbevordering |
477
- | `-ge` | `-ing` | 1 words | geeking, gesondheidsbevordering |
478
 
479
  ### 6.5 Recursive Morpheme Segmentation
480
 
@@ -482,26 +517,26 @@ Using **Recursive Hierarchical Substitutability**, we decompose complex words in
482
 
483
  | Word | Suggested Split | Confidence | Stem |
484
  |------|-----------------|------------|------|
485
- | gemonteerde | **`ge-monte-er-de`** | 7.5 | `monte` |
486
- | bevredigende | **`bevredig-en-de`** | 6.0 | `bevredig` |
487
- | ouditering | **`oudit-er-ing`** | 6.0 | `oudit` |
488
- | kruiningen | **`kruin-ing-en`** | 6.0 | `kruin` |
489
- | verlorener | **`verlor-en-er`** | 6.0 | `verlor` |
490
- | verhardende | **`verhard-en-de`** | 6.0 | `verhard` |
491
- | bestuifde | **`bestuif-de`** | 4.5 | `bestuif` |
492
- | behoeften | **`behoeft-en`** | 4.5 | `behoeft` |
493
- | verminkte | **`vermink-te`** | 4.5 | `vermink` |
494
- | onreëlmatiger | **`onreëlmatig-er`** | 4.5 | `onreëlmatig` |
495
- | kollageen | **`kollage-en`** | 4.5 | `kollage` |
496
- | gekrummel | **`ge-krummel`** | 4.5 | `krummel` |
497
- | repeterende | **`repet-er-en-de`** | 4.5 | `repet` |
498
- | gehoorvermoë | **`ge-hoorvermoë`** | 4.5 | `hoorvermoë` |
499
- | eksoskelette | **`eksoskelet-te`** | 4.5 | `eksoskelet` |
500
 
501
  ### 6.6 Linguistic Interpretation
502
 
503
  > **Automated Insight:**
504
- The language AF appears to be more isolating or has a highly fixed vocabulary. Word-level models perform nearly as well as subword models, indicating fewer productive morphological processes.
505
 
506
  ---
507
  ## 7. Summary & Recommendations
@@ -514,7 +549,7 @@ The language AF appears to be more isolating or has a highly fixed vocabulary. W
514
  |-----------|-------------|-----------|
515
  | Tokenizer | **64k BPE** | Best compression (4.62x) |
516
  | N-gram | **2-gram** | Lowest perplexity (253) |
517
- | Markov | **Context-4** | Highest predictability (93.0%) |
518
  | Embeddings | **100d** | Balanced semantic capture and isotropy |
519
 
520
 
@@ -728,4 +763,4 @@ MIT License - Free for academic and commercial use.
728
  ---
729
  *Generated by Wikilangs Models Pipeline*
730
 
731
- *Report Date: 2026-01-03 07:17:29*
 
1
  ---
2
  language: af
3
+ language_name: Afrikaans
4
  language_family: germanic_west_anglofrisian
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-germanic_west_anglofrisian
25
  license: mit
26
  library_name: wikilangs
27
+ pipeline_tag: text-generation
28
  datasets:
29
  - omarkamali/wikipedia-monthly
30
  dataset_info:
 
36
  value: 4.620
37
  - name: best_isotropy
38
  type: isotropy
39
+ value: 0.6974
40
  - name: vocabulary_size
41
  type: vocab
42
  value: 0
43
  generated: 2026-01-03
44
  ---
45
 
46
+ # Afrikaans - Wikilangs Models
47
  ## Comprehensive Research Report & Full Ablation Study
48
 
49
+ This repository contains NLP models trained and evaluated by Wikilangs, specifically on **Afrikaans** Wikipedia data.
50
  We analyze tokenizers, n-gram models, Markov chains, vocabulary statistics, and word embeddings.
51
 
52
  ## 📋 Repository Contents
 
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)
 
90
 
91
  | Vocab Size | Compression | Avg Token Len | UNK Rate | Total Tokens |
92
  |------------|-------------|---------------|----------|--------------|
93
+ | **8k** | 3.748x | 3.75 | 0.0650% | 1,240,703 |
94
+ | **16k** | 4.108x | 4.11 | 0.0712% | 1,132,029 |
95
+ | **32k** | 4.402x | 4.40 | 0.0763% | 1,056,512 |
96
+ | **64k** | 4.620x 🏆 | 4.62 | 0.0801% | 1,006,543 |
97
 
98
  ### Tokenization Examples
99
 
100
  Below are sample sentences tokenized with each vocabulary size:
101
 
102
+ **Sample 1:** `Electron is 'n industriële gebied in Johannesburg, Suid-Afrika. Verwysings van J...`
103
 
104
  | Vocab | Tokens | Count |
105
  |-------|--------|-------|
106
+ | 8k | `▁electr on ▁is ▁' n ▁industr iële gebiedinjohannesburg ... (+8 more)` | 18 |
107
+ | 16k | `▁electr on ▁is ▁' n ▁industriëlegebiedinjohannesburg , ... (+7 more)` | 17 |
108
+ | 32k | `▁electr on ▁is ▁' n ▁industriëlegebiedinjohannesburg , ... (+7 more)` | 17 |
109
+ | 64k | `▁electron ▁is ▁' n ▁industriëlegebiedinjohannesburg , suid ... (+6 more)` | 16 |
110
 
111
+ **Sample 2:** `Fig Tree Creek is 'n takrivier van die Kaaprivier in Mpumalanga in Suid-Afrika. ...`
112
 
113
  | Vocab | Tokens | Count |
114
  |-------|--------|-------|
115
+ | 8k | `▁figtreec reek ▁is ▁' n ▁tak rivier ▁van ... (+22 more)` | 32 |
116
+ | 16k | `▁figtreecreekis ▁' n ▁tak rivier vandie ... (+20 more)` | 30 |
117
+ | 32k | `▁figtreecreekis ▁' n ▁takriviervandie ▁kaap ... (+19 more)` | 29 |
118
+ | 64k | `▁figtreecreekis ▁' n ▁takriviervandie ▁kaap ... (+19 more)` | 29 |
119
 
120
+ **Sample 3:** `Japan Nasionale Roete 390 is 'n nasionale snelweg in Japan. Verwysings paaie in ...`
121
 
122
  | Vocab | Tokens | Count |
123
  |-------|--------|-------|
124
+ | 8k | `▁japan ▁nasionale ▁roete3 9 0is' n ... (+9 more)` | 19 |
125
+ | 16k | `▁japan ▁nasionale ▁roete3 9 0is' n ... (+9 more)` | 19 |
126
+ | 32k | `▁japan ▁nasionale ▁roete3 9 0is' n ... (+9 more)` | 19 |
127
+ | 64k | `▁japan ▁nasionaleroete3 9 0is ▁' n ... (+9 more)` | 19 |
128
 
129
 
130
  ### Key Findings
 
147
 
148
  | N-gram | Variant | Perplexity | Entropy | Unique N-grams | Top-100 Coverage | Top-1000 Coverage |
149
  |--------|---------|------------|---------|----------------|------------------|-------------------|
150
+ | **2-gram** | Word | 67,167 | 16.04 | 741,646 | 13.7% | 29.1% |
151
+ | **2-gram** | Subword | 253 🏆 | 7.98 | 13,611 | 69.5% | 99.3% |
152
+ | **3-gram** | Word | 295,297 | 18.17 | 1,507,746 | 5.8% | 16.9% |
153
+ | **3-gram** | Subword | 2,160 | 11.08 | 96,463 | 28.5% | 71.9% |
154
+ | **4-gram** | Word | 559,011 | 19.09 | 2,524,344 | 6.5% | 16.5% |
155
+ | **4-gram** | Subword | 12,656 | 13.63 | 532,733 | 15.0% | 40.0% |
156
+ | **5-gram** | Word | 326,109 | 18.31 | 1,744,378 | 9.4% | 21.4% |
157
+ | **5-gram** | Subword | 52,200 | 15.67 | 1,835,021 | 9.1% | 25.1% |
158
 
159
  ### Top 5 N-grams by Size
160
 
 
162
 
163
  | Rank | N-gram | Count |
164
  |------|--------|-------|
165
+ | 1 | `van die` | 511,917 |
166
+ | 2 | `in die` | 344,470 |
167
+ | 3 | `is n` | 115,009 |
168
+ | 4 | `en die` | 109,902 |
169
+ | 5 | `is die` | 91,555 |
170
 
171
  **3-grams (Word):**
172
 
173
  | Rank | N-gram | Count |
174
  |------|--------|-------|
175
+ | 1 | `van suid afrika` | 27,044 |
176
+ | 2 | `rolle in die` | 25,215 |
177
+ | 3 | `die 20ste eeu` | 24,473 |
178
+ | 4 | `van die 20ste` | 23,498 |
179
+ | 5 | `eksterne skakels in` | 22,336 |
180
 
181
  **4-grams (Word):**
182
 
183
  | Rank | N-gram | Count |
184
  |------|--------|-------|
185
+ | 1 | `van die 20ste eeu` | 23,435 |
186
+ | 2 | `manlike akteurs van die` | 20,400 |
187
  | 3 | `rolle in die rolprente` | 19,639 |
188
+ | 4 | `van die 21ste eeu` | 15,805 |
189
+ | 5 | `plants of the world` | 14,447 |
190
+
191
+ **5-grams (Word):**
192
+
193
+ | Rank | N-gram | Count |
194
+ |------|--------|-------|
195
+ | 1 | `bekend vir sy rolle in` | 13,780 |
196
+ | 2 | `vir sy rolle in die` | 13,771 |
197
+ | 3 | `akteurs van die 20ste eeu` | 12,560 |
198
+ | 4 | `manlike akteurs van die 20ste` | 12,536 |
199
+ | 5 | `plants of the world online` | 11,731 |
200
 
201
  **2-grams (Subword):**
202
 
203
  | Rank | N-gram | Count |
204
  |------|--------|-------|
205
+ | 1 | `e _` | 8,931,762 |
206
+ | 2 | `n _` | 5,874,572 |
207
+ | 3 | `i e` | 5,325,847 |
208
+ | 4 | `e r` | 4,823,982 |
209
+ | 5 | `_ d` | 4,520,196 |
210
 
211
  **3-grams (Subword):**
212
 
213
  | Rank | N-gram | Count |
214
  |------|--------|-------|
215
+ | 1 | `i e _` | 3,601,485 |
216
+ | 2 | `_ d i` | 3,186,521 |
217
+ | 3 | `d i e` | 3,062,960 |
218
+ | 4 | `a n _` | 1,896,257 |
219
+ | 5 | `e n _` | 1,548,169 |
220
 
221
  **4-grams (Subword):**
222
 
223
  | Rank | N-gram | Count |
224
  |------|--------|-------|
225
+ | 1 | `d i e _` | 2,931,996 |
226
+ | 2 | `_ d i e` | 2,851,512 |
227
+ | 3 | `_ v a n` | 1,364,018 |
228
+ | 4 | `v a n _` | 1,348,393 |
229
+ | 5 | `n _ d i` | 1,174,871 |
230
+
231
+ **5-grams (Subword):**
232
+
233
+ | Rank | N-gram | Count |
234
+ |------|--------|-------|
235
+ | 1 | `_ d i e _` | 2,794,095 |
236
+ | 2 | `_ v a n _` | 1,320,773 |
237
+ | 3 | `n _ d i e` | 1,131,268 |
238
+ | 4 | `a n _ d i` | 628,822 |
239
+ | 5 | `v a n _ d` | 564,996 |
240
 
241
 
242
  ### Key Findings
243
 
244
  - **Best Perplexity:** 2-gram (subword) with 253
245
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
246
+ - **Coverage:** Top-1000 patterns cover ~25% of corpus
247
  - **Recommendation:** 4-gram or 5-gram for best predictive performance
248
 
249
  ---
 
259
 
260
  | Context | Variant | Avg Entropy | Perplexity | Branching Factor | Unique Contexts | Predictability |
261
  |---------|---------|-------------|------------|------------------|-----------------|----------------|
262
+ | **1** | Word | 0.9424 | 1.922 | 9.98 | 888,057 | 5.8% |
263
+ | **1** | Subword | 1.0749 | 2.107 | 6.60 | 7,659 | 0.0% |
264
+ | **2** | Word | 0.3845 | 1.305 | 2.33 | 8,849,236 | 61.6% |
265
+ | **2** | Subword | 0.7312 | 1.660 | 4.61 | 50,492 | 26.9% |
266
+ | **3** | Word | 0.1708 | 1.126 | 1.40 | 20,626,048 | 82.9% |
267
+ | **3** | Subword | 0.7057 | 1.631 | 4.02 | 232,520 | 29.4% |
268
+ | **4** | Word | 0.0705 🏆 | 1.050 | 1.13 | 28,778,158 | 92.9% |
269
+ | **4** | Subword | 0.6912 | 1.615 | 3.50 | 934,149 | 30.9% |
270
 
271
  ### Generated Text Samples (Word-based)
272
 
 
274
 
275
  **Context Size 1:**
276
 
277
+ 1. `die dr g mineur d ilse dié samewerking met 46 155 173 minute met ywer`
278
+ 2. `van president trump het hierdie maniak nie voortsetting van die verbranding maak in die spesie is`
279
+ 3. `in te veel van kaiserstuhl gebied rondom die farao self deur die nasionalistiese en geofiet wat`
280
 
281
  **Context Size 2:**
282
 
283
+ 1. `van die eufraat te gaan om die lewe geroep om n nuwe uitgawe cambridge university press princeton`
284
+ 2. `in die swartberge en die patrone diagonaal 2 4 brown bl 101 in suidoos asië panthera p`
285
+ 3. `is n blouwit ster dit is egter vas gekant teen die middel van toenemende afvalligheid te volhard`
286
 
287
  **Context Size 3:**
288
 
289
+ 1. `rolle in die rolprente kitty foyle missile to the moon tour aangekondig n amptelike konserttoer met ...`
290
+ 2. `van die 20ste eeu manlike akteurs van die 21ste eeu aktrises van die 21ste eeu manlike akteurs van`
291
+ 3. `eksterne skakels in in manlike akteurs van die 20ste eeu manlike akteurs van die 20ste eeu aktrises ...`
292
 
293
  **Context Size 4:**
294
 
295
+ 1. `manlike akteurs van die 21ste eeu manlike akteurs van die 20ste eeu byna uitgeroei is die oorspronkl...`
296
+ 2. `rolle in die rolprente batman the movie scream evelyn scream televisiereekse playhouse 90 frontier d...`
297
+ 3. `plants of the world online van namibië van suid afrika van die tweede vryheidsoorlog die eerste is b...`
298
 
299
 
300
  ### Generated Text Samples (Subword-based)
 
303
 
304
  **Context Size 1:**
305
 
306
+ 1. `_&_ligesagetiebe`
307
+ 2. `e_n_dnore_drs_va`
308
+ 3. `ie_wogerct_wache`
309
 
310
  **Context Size 2:**
311
 
312
+ 1. `e_van_gesede_wasc`
313
+ 2. `n_baiensomenaar,_`
314
+ 3. `ierk_ing_maaktors`
315
 
316
  **Context Size 3:**
317
 
318
+ 1. `ie_te_sies_die_in_`
319
+ 2. `_die_redig_gebruit`
320
+ 3. `die_alber_ds._hy_w`
321
 
322
  **Context Size 4:**
323
 
324
+ 1. `die_rolle_wêreld_en`
325
+ 2. `_die_se_limitiek_di`
326
+ 3. `_van_'n_albei_dat_h`
327
 
328
 
329
  ### Key Findings
330
 
331
+ - **Best Predictability:** Context-4 (word) with 92.9% predictability
332
  - **Branching Factor:** Decreases with context size (more deterministic)
333
+ - **Memory Trade-off:** Larger contexts require more storage (934,149 contexts)
334
  - **Recommendation:** Context-3 or Context-4 for text generation
335
 
336
  ---
 
346
 
347
  | Metric | Value |
348
  |--------|-------|
349
+ | Vocabulary Size | 404,957 |
350
+ | Total Tokens | 38,641,442 |
351
+ | Mean Frequency | 95.42 |
352
  | Median Frequency | 4 |
353
+ | Frequency Std Dev | 6141.00 |
354
 
355
  ### Most Common Words
356
 
357
  | Rank | Word | Frequency |
358
  |------|------|-----------|
359
+ | 1 | die | 2,844,119 |
360
+ | 2 | van | 1,325,435 |
361
+ | 3 | in | 1,115,990 |
362
+ | 4 | en | 1,052,538 |
363
+ | 5 | n | 806,584 |
364
+ | 6 | is | 768,312 |
365
+ | 7 | het | 648,164 |
366
+ | 8 | wat | 343,988 |
367
+ | 9 | the | 293,953 |
368
+ | 10 | op | 290,589 |
369
 
370
  ### Least Common Words (from vocabulary)
371
 
372
  | Rank | Word | Frequency |
373
  |------|------|-----------|
374
+ | 1 | bajnokság | 2 |
375
+ | 2 | zalaegerszegi | 2 |
376
+ | 3 | akteurskategorieë | 2 |
377
+ | 4 | mullens | 2 |
378
+ | 5 | grafiekstruktuur | 2 |
379
+ | 6 | roostergrafieke | 2 |
380
+ | 7 | sokkerbekertitels | 2 |
381
+ | 8 | chalobah | 2 |
382
+ | 9 | sentrumverdediger | 2 |
383
+ | 10 | guðjohnsen | 2 |
384
 
385
  ### Zipf's Law Analysis
386
 
387
  | Metric | Value |
388
  |--------|-------|
389
  | Zipf Coefficient | 1.0518 |
390
+ | R² (Goodness of Fit) | 0.995983 |
391
  | Adherence Quality | **excellent** |
392
 
393
  ### Coverage Analysis
 
403
 
404
  - **Zipf Compliance:** R²=0.9960 indicates excellent adherence to Zipf's law
405
  - **High Frequency Dominance:** Top 100 words cover 43.7% of corpus
406
+ - **Long Tail:** 394,957 words needed for remaining 15.0% coverage
407
 
408
  ---
409
  ## 5. Word Embeddings Evaluation
 
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.6861 | 0.3709 | N/A | N/A |
432
+ | **mono_64d** | 64 | 0.6974 | 0.2860 | N/A | N/A |
433
+ | **mono_128d** | 128 | 0.6739 | 0.2351 | N/A | N/A |
434
+ | **aligned_32d** | 32 | 0.6861 | 0.3805 | 0.3500 | 0.6860 |
435
+ | **aligned_64d** | 64 | 0.6974 🏆 | 0.2901 | 0.5440 | 0.8400 |
436
+ | **aligned_128d** | 128 | 0.6739 | 0.2381 | 0.6160 | 0.8900 |
437
 
438
  ### Key Findings
439
 
440
+ - **Best Isotropy:** aligned_64d with 0.6974 (more uniform distribution)
441
+ - **Semantic Density:** Average pairwise similarity of 0.3001. Lower values indicate better semantic separation.
442
+ - **Alignment Quality:** Aligned models achieve up to 61.6% 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.147** | Low formulaic content | - |
456
 
457
  ### 6.2 Affix Inventory (Productive Units)
458
 
 
461
  #### Productive Prefixes
462
  | Prefix | Examples |
463
  |--------|----------|
464
+ | `-ma` | maanteorieë, markomgewing, mataiva |
465
 
466
  #### Productive Suffixes
467
  | Suffix | Examples |
468
  |--------|----------|
469
+ | `-e` | squeeze, summerside, tirolse |
470
+ | `-s` | repsyfers, sangkunstenaars, kananaskis |
471
+ | `-er` | shaffer, ondier, skilpadkewer |
472
+ | `-es` | langafstandroetes, treasuries, ferrities |
473
+ | `-ng` | enkelstring, markomgewing, erlösung |
474
+ | `-ing` | enkelstring, markomgewing, navorsingsbelangstelling |
475
+ | `-te` | sudete, heroute, afleweringsdienste |
476
+ | `-de` | summerside, geünieerde, uitgetrede |
477
 
478
  ### 6.3 Bound Stems (Lexical Roots)
479
 
 
481
 
482
  | Stem | Cohesion | Substitutability | Examples |
483
  |------|----------|------------------|----------|
484
+ | `pren` | 2.42x | 29 contexts | prens, prent, prend |
485
+ | `staa` | 1.70x | 98 contexts | staak, staas, staab |
486
+ | `ings` | 1.49x | 146 contexts | lings, wings, hings |
487
+ | `kend` | 1.58x | 95 contexts | kendo, kenda, kende |
488
+ | `eken` | 1.48x | 124 contexts | teken, deken, reken |
489
+ | `ebru` | 2.04x | 32 contexts | gebru, hebrus, cebrus |
490
+ | `erdi` | 1.58x | 85 contexts | ferdi, serdi, verdi |
491
+ | `brui` | 1.78x | 44 contexts | bruin, bruit, bruis |
492
+ | `elik` | 1.53x | 82 contexts | melik, elika, lelik |
493
+ | `aans` | 1.44x | 88 contexts | aansê, faans, maans |
494
+ | `ersk` | 1.32x | 109 contexts | koersk, perski, perske |
495
+ | `kste` | 1.42x | 71 contexts | ekster, dikste, rykste |
496
 
497
  ### 6.4 Affix Compatibility (Co-occurrence)
498
 
 
500
 
501
  | Prefix | Suffix | Frequency | Examples |
502
  |--------|--------|-----------|----------|
503
+ | `-ma` | `-e` | 32 words | mapogsgrotte, malte |
504
+ | `-ma` | `-s` | 24 words | magnesiumlegerings, maatskappybestuurders |
505
+ | `-ma` | `-er` | 11 words | marineer, mansspeler |
506
+ | `-ma` | `-ng` | 5 words | maksimalisering, magsdeling |
507
+ | `-ma` | `-en` | 5 words | marten, maurren |
508
+ | `-ma` | `-te` | 4 words | mapogsgrotte, malte |
509
+ | `-ma` | `-se` | 4 words | majestueuse, manneristiese |
510
+ | `-ma` | `-es` | 4 words | maccabees, maykersfees |
511
+ | `-ma` | `-ing` | 3 words | maksimalisering, magsdeling |
512
+ | `-ma` | `-de` | 2 words | malahide, mansonbendelede |
513
 
514
  ### 6.5 Recursive Morpheme Segmentation
515
 
 
517
 
518
  | Word | Suggested Split | Confidence | Stem |
519
  |------|-----------------|------------|------|
520
+ | durangense | **`dura-ng-en-se`** | 7.5 | `dura` |
521
+ | bessinger | **`bess-ing-er`** | 6.0 | `bess` |
522
+ | selflaaiende | **`selflaai-en-de`** | 6.0 | `selflaai` |
523
+ | durlacher | **`durlach-er`** | 4.5 | `durlach` |
524
+ | emotionen | **`emotion-en`** | 4.5 | `emotion` |
525
+ | afgeperste | **`afgepers-te`** | 4.5 | `afgepers` |
526
+ | apostelen | **`apostel-en`** | 4.5 | `apostel` |
527
+ | kazachstanse | **`kazachstan-se`** | 4.5 | `kazachstan` |
528
+ | afgerolde | **`afgerol-de`** | 4.5 | `afgerol` |
529
+ | luggelanseerde | **`luggelan-se-er-de`** | 4.5 | `luggelan` |
530
+ | verveling | **`vervel-ing`** | 4.5 | `vervel` |
531
+ | biofiltrering | **`biofiltr-er-ing`** | 3.0 | `biofiltr` |
532
+ | gefasiliteer | **`gefasili-te-er`** | 3.0 | `gefasili` |
533
+ | palermosteen | **`palermos-te-en`** | 3.0 | `palermos` |
534
+ | trekmense | **`trekm-en-se`** | 3.0 | `trekm` |
535
 
536
  ### 6.6 Linguistic Interpretation
537
 
538
  > **Automated Insight:**
539
+ The language Afrikaans shows high morphological productivity. The subword models are significantly more efficient than word models, suggesting a rich system of affixation or compounding.
540
 
541
  ---
542
  ## 7. Summary & Recommendations
 
549
  |-----------|-------------|-----------|
550
  | Tokenizer | **64k BPE** | Best compression (4.62x) |
551
  | N-gram | **2-gram** | Lowest perplexity (253) |
552
+ | Markov | **Context-4** | Highest predictability (92.9%) |
553
  | Embeddings | **100d** | Balanced semantic capture and isotropy |
554
 
555
 
 
763
  ---
764
  *Generated by Wikilangs Models Pipeline*
765
 
766
+ *Report Date: 2026-01-03 19:59:08*
models/embeddings/aligned/af_128d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4e62d23c6e51b99389d05cb2158c8165748690ce7a7d005a13cc1157bbfad0d9
3
+ size 1302456288
models/embeddings/aligned/af_128d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "af", "dim": 128, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/af_128d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:00f9d888dd324cf2cd64106642e8201c64cb75a72e23f81bba411c0c1d65cf35
3
+ size 65664
models/embeddings/aligned/af_128d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "af",
3
+ "dimension": 128,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 101796,
7
+ "vocab_size": 267090
8
+ }
models/embeddings/aligned/af_32d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d7cf6aad7f3c68c679646bdeb040f3bff12cb1c3c9bee206b94ce169e40198d8
3
+ size 329331168
models/embeddings/aligned/af_32d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "af", "dim": 32, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/af_32d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3cf367b29395591e45bbac7199c321296ee76cc5e1b949cec8b69f8c33ff4bdb
3
+ size 4224
models/embeddings/aligned/af_32d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "af",
3
+ "dimension": 32,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 101796,
7
+ "vocab_size": 267090
8
+ }
models/embeddings/aligned/af_64d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1441d615c03bfbfeecc113eef2e611095ed0a3a5ac2c0b588b5158c5310288dc
3
+ size 653706208
models/embeddings/aligned/af_64d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "af", "dim": 64, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/af_64d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a4261509266d295aa2d72eced15227f9ba5f0a5cd8d995089442d6037f17e8d9
3
+ size 16512
models/embeddings/aligned/af_64d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "af",
3
+ "dimension": 64,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 101796,
7
+ "vocab_size": 267090
8
+ }
models/embeddings/monolingual/af_128d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:11057ead6d145fd80aa8a3489e8c8d86000071008dba47a7f9f04188e658acb2
3
- size 1301432503
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4e62d23c6e51b99389d05cb2158c8165748690ce7a7d005a13cc1157bbfad0d9
3
+ size 1302456288
models/embeddings/monolingual/af_128d_metadata.json CHANGED
@@ -11,5 +11,5 @@
11
  "encoding_method": "rope",
12
  "dim": 128
13
  },
14
- "vocab_size": 266109
15
  }
 
11
  "encoding_method": "rope",
12
  "dim": 128
13
  },
14
+ "vocab_size": 267090
15
  }
models/embeddings/monolingual/af_32d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:933902af3f06d4dccbab2f9cda13414a48c3a2fafa734a3e6c9cc651ffed6732
3
- size 329060791
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d7cf6aad7f3c68c679646bdeb040f3bff12cb1c3c9bee206b94ce169e40198d8
3
+ size 329331168
models/embeddings/monolingual/af_32d_metadata.json CHANGED
@@ -11,5 +11,5 @@
11
  "encoding_method": "rope",
12
  "dim": 32
13
  },
14
- "vocab_size": 266109
15
  }
 
11
  "encoding_method": "rope",
12
  "dim": 32
13
  },
14
+ "vocab_size": 267090
15
  }
models/embeddings/monolingual/af_64d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:7c676e073cfbf1cb9b2e7f3e4b3e94463a17ee848c6d9df01ea4fc280e2f7ce6
3
- size 653184695
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1441d615c03bfbfeecc113eef2e611095ed0a3a5ac2c0b588b5158c5310288dc
3
+ size 653706208
models/embeddings/monolingual/af_64d_metadata.json CHANGED
@@ -11,5 +11,5 @@
11
  "encoding_method": "rope",
12
  "dim": 64
13
  },
14
- "vocab_size": 266109
15
  }
 
11
  "encoding_method": "rope",
12
  "dim": 64
13
  },
14
+ "vocab_size": 267090
15
  }
models/subword_markov/af_markov_ctx1_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:d149d8684419833d4d657f06ff43fde6f6330d2a78848a075e6c2fec57f7c4a8
3
- size 378608
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3819379bb72b6f342cd3be62dedeb81cda85065bb637a3430a290cd2ac146998
3
+ size 375765
models/subword_markov/af_markov_ctx1_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 1,
3
  "variant": "subword",
4
  "language": "af",
5
- "unique_contexts": 7654,
6
- "total_transitions": 242297410
7
  }
 
2
  "context_size": 1,
3
  "variant": "subword",
4
  "language": "af",
5
+ "unique_contexts": 7659,
6
+ "total_transitions": 243670715
7
  }
models/subword_markov/af_markov_ctx2_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:420f531b4f1b408ddda531f838f2d4932ecc9cbb7de16ed5589351bbace9b214
3
- size 1866665
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e7980810da30e31528b94d99c34186143ec57e1d31fca115d009898367d34316
3
+ size 1851402
models/subword_markov/af_markov_ctx2_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "af",
5
- "unique_contexts": 50359,
6
- "total_transitions": 242170946
7
  }
 
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "af",
5
+ "unique_contexts": 50492,
6
+ "total_transitions": 243543429
7
  }
models/subword_markov/af_markov_ctx3_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:075a8bbd37d56e56e0b0f55526f7b478207748bf68daf7f1981287409f6c5cb8
3
- size 8218278
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f365aac7634bc74d0b11534dce48cb64c8df917f6703ba295776e5f846362f03
3
+ size 8255986
models/subword_markov/af_markov_ctx3_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "af",
5
- "unique_contexts": 231918,
6
- "total_transitions": 242044482
7
  }
 
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "af",
5
+ "unique_contexts": 232520,
6
+ "total_transitions": 243416143
7
  }
models/subword_markov/af_markov_ctx4_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e71c7cbca9385f2aabc8bff2108e5cb3876745099e692d102b8817bd6e393051
3
- size 26401415
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3a04e015fa108bad17cca77b918084f1a6ea2335d89fc46a1364f6ace9a706b6
3
+ size 26443804
models/subword_markov/af_markov_ctx4_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "af",
5
- "unique_contexts": 931942,
6
- "total_transitions": 241918018
7
  }
 
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "af",
5
+ "unique_contexts": 934149,
6
+ "total_transitions": 243288857
7
  }
models/subword_ngram/af_2gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:69bbe527269e41324fd2369bdb8f0798f0b62fd22d70026c15fbf678f77788e1
3
- size 182664
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dad8d3d8adcf1b94b9bfed8cd88f882d51911e121fe5896c19a55e2eb5acc5c5
3
+ size 183424
models/subword_ngram/af_2gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "af",
5
- "unique_ngrams": 13576,
6
- "total_ngrams": 242297410
7
  }
 
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "af",
5
+ "unique_ngrams": 13611,
6
+ "total_ngrams": 243670715
7
  }
models/subword_ngram/af_3gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:8fcbc486b3961f9f14aee1492ea622129d621d205e682bab43457c4029f343ca
3
- size 1229801
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a654236a2fe8be07185f8b8ca8485460d88569b491b9195a2084711d28eea6b0
3
+ size 1223369
models/subword_ngram/af_3gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "af",
5
- "unique_ngrams": 96263,
6
- "total_ngrams": 242170946
7
  }
 
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "af",
5
+ "unique_ngrams": 96463,
6
+ "total_ngrams": 243543429
7
  }
models/subword_ngram/af_4gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:b35e67ae40780c953eae3c44b6344369d951fcbf2c26114557257a76b11f77d5
3
- size 6246285
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1daa4c098df46f5e060e468aeab63b397e1bc5caf477ca8f52df86ef8d226fb5
3
+ size 6277243
models/subword_ngram/af_4gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "af",
5
- "unique_ngrams": 531540,
6
- "total_ngrams": 242044482
7
  }
 
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "af",
5
+ "unique_ngrams": 532733,
6
+ "total_ngrams": 243416143
7
  }
models/subword_ngram/af_5gram_subword.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:84cdbdb5194fed63ca4694c937a778de19fd293bae6e8c5ec6426e383f1cf7b3
3
+ size 21994195
models/subword_ngram/af_5gram_subword_metadata.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "n": 5,
3
+ "variant": "subword",
4
+ "language": "af",
5
+ "unique_ngrams": 1835021,
6
+ "total_ngrams": 243288857
7
+ }
models/tokenizer/af_tokenizer_16k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:2be64d6763f5e6fd310791270e3525ef8484a9db66ef0fff6e0f1476d6a96d34
3
- size 507153
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1a97f19a8c68005de6f7abc6b7be6ddb4f29dc4bcce8c93bf3ebdb5ef11e7604
3
+ size 507227
models/tokenizer/af_tokenizer_16k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/af_tokenizer_32k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:8b5159876118e0a3489a99480419b844198a12a1b816ad232fed8ccae35bb818
3
- size 786684
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:55bba7eb925f3c668030043c5076901224b52cc7e96df7666b413e13212e697e
3
+ size 786319
models/tokenizer/af_tokenizer_32k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/af_tokenizer_64k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:4675b04acf7e973018b38e96d006eb263620e28799e83be7bdd4a27ac0994a13
3
- size 1361348
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:67030a299304ddbe1eff9fd88f0d1dc3f3c5f18aa19ff74bea961a7e3def5ccd
3
+ size 1362130
models/tokenizer/af_tokenizer_64k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/af_tokenizer_8k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:1f7dc8da1d29ab51f9c6ac5f659460f17c5222dd813dbe07b43facfc31f68728
3
- size 371768
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:80cf7fe175e99ec4eb884e8d8f7862dfa20f7afa6bfad5e6f90761ad52857495
3
+ size 371773
models/tokenizer/af_tokenizer_8k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/vocabulary/af_vocabulary.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e2355921b7485f0850c13db4987f38a9cb0cb18c4d52369c481dbd6c58288967
3
- size 6384076
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ce902f05737b875d2b4da0e4ba2d6dfd58a9050a2322da999653d4a9bc44ca2e
3
+ size 6405651
models/vocabulary/af_vocabulary_metadata.json CHANGED
@@ -1,17 +1,17 @@
1
  {
2
  "language": "af",
3
- "vocabulary_size": 403515,
4
  "variant": "full",
5
  "statistics": {
6
- "type_token_ratio": 0.02274299800346992,
7
  "coverage": {
8
- "top_100": 0.4314823858718236,
9
- "top_1000": 0.6347620541014498,
10
- "top_5000": 0.7838174538213594,
11
- "top_10000": 0.8392913943711919
12
  },
13
- "hapax_count": 481438,
14
- "hapax_ratio": 0.5440266319228253,
15
- "total_documents": 126464
16
  }
17
  }
 
1
  {
2
  "language": "af",
3
+ "vocabulary_size": 404957,
4
  "variant": "full",
5
  "statistics": {
6
+ "type_token_ratio": 0.02270829971241366,
7
  "coverage": {
8
+ "top_100": 0.43161199506831266,
9
+ "top_1000": 0.6347677515005388,
10
+ "top_5000": 0.7838429987865031,
11
+ "top_10000": 0.8392991264448008
12
  },
13
+ "hapax_count": 483504,
14
+ "hapax_ratio": 0.544203966184222,
15
+ "total_documents": 127286
16
  }
17
  }
models/word_markov/af_markov_ctx1_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:137d7884907248e6dab7f37ec9010eca83d41914f5a04456d97db0173992ed52
3
- size 77512633
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b49bd37a72d39129642de5b0931091f10c70f359ce73091515163d994205fc0c
3
+ size 77940531
models/word_markov/af_markov_ctx1_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "af",
5
- "unique_contexts": 884548,
6
- "total_transitions": 38784545
7
  }
 
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "af",
5
+ "unique_contexts": 888057,
6
+ "total_transitions": 38997660
7
  }
models/word_markov/af_markov_ctx2_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:509f64b241796227fd01fdc0d6d9738c3943aabf43e5c799d193f8707fa2a669
3
- size 234719710
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e6097bfa22b20c26b8dae23d259b458ceb0bb2955a518d1a32211556ee0b826a
3
+ size 235747571
models/word_markov/af_markov_ctx2_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "af",
5
- "unique_contexts": 8810967,
6
- "total_transitions": 38658081
7
  }
 
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "af",
5
+ "unique_contexts": 8849236,
6
+ "total_transitions": 38870374
7
  }