omarkamali commited on
Commit
f7d8533
·
verified ·
1 Parent(s): 16caa6c

Upload all models and assets for dtp (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 +348 -136
  3. models/embeddings/aligned/dtp_128d.bin +3 -0
  4. models/embeddings/aligned/dtp_128d.meta.json +1 -0
  5. models/embeddings/aligned/dtp_128d.projection.npy +3 -0
  6. models/embeddings/aligned/dtp_128d_metadata.json +8 -0
  7. models/embeddings/aligned/dtp_32d.bin +3 -0
  8. models/embeddings/aligned/dtp_32d.meta.json +1 -0
  9. models/embeddings/aligned/dtp_32d.projection.npy +3 -0
  10. models/embeddings/aligned/dtp_32d_metadata.json +8 -0
  11. models/embeddings/aligned/dtp_64d.bin +3 -0
  12. models/embeddings/aligned/dtp_64d.meta.json +1 -0
  13. models/embeddings/aligned/dtp_64d.projection.npy +3 -0
  14. models/embeddings/aligned/dtp_64d_metadata.json +8 -0
  15. models/embeddings/monolingual/dtp_128d.bin +2 -2
  16. models/embeddings/monolingual/dtp_128d_metadata.json +5 -3
  17. models/embeddings/monolingual/dtp_32d.bin +2 -2
  18. models/embeddings/monolingual/dtp_32d_metadata.json +5 -3
  19. models/embeddings/monolingual/dtp_64d.bin +2 -2
  20. models/embeddings/monolingual/dtp_64d_metadata.json +5 -3
  21. models/subword_markov/dtp_markov_ctx1_subword.parquet +2 -2
  22. models/subword_markov/dtp_markov_ctx1_subword_metadata.json +2 -2
  23. models/subword_markov/dtp_markov_ctx2_subword.parquet +2 -2
  24. models/subword_markov/dtp_markov_ctx2_subword_metadata.json +2 -2
  25. models/subword_markov/dtp_markov_ctx3_subword.parquet +2 -2
  26. models/subword_markov/dtp_markov_ctx3_subword_metadata.json +2 -2
  27. models/subword_markov/dtp_markov_ctx4_subword.parquet +2 -2
  28. models/subword_markov/dtp_markov_ctx4_subword_metadata.json +2 -2
  29. models/subword_ngram/dtp_2gram_subword.parquet +2 -2
  30. models/subword_ngram/dtp_2gram_subword_metadata.json +2 -2
  31. models/subword_ngram/dtp_3gram_subword.parquet +2 -2
  32. models/subword_ngram/dtp_3gram_subword_metadata.json +2 -2
  33. models/subword_ngram/dtp_4gram_subword.parquet +2 -2
  34. models/subword_ngram/dtp_4gram_subword_metadata.json +2 -2
  35. models/subword_ngram/dtp_5gram_subword.parquet +3 -0
  36. models/subword_ngram/dtp_5gram_subword_metadata.json +7 -0
  37. models/tokenizer/dtp_tokenizer_16k.model +2 -2
  38. models/tokenizer/dtp_tokenizer_16k.vocab +0 -0
  39. models/tokenizer/dtp_tokenizer_32k.model +2 -2
  40. models/tokenizer/dtp_tokenizer_32k.vocab +0 -0
  41. models/tokenizer/dtp_tokenizer_64k.model +2 -2
  42. models/tokenizer/dtp_tokenizer_64k.vocab +0 -0
  43. models/tokenizer/dtp_tokenizer_8k.model +2 -2
  44. models/tokenizer/dtp_tokenizer_8k.vocab +0 -0
  45. models/vocabulary/dtp_vocabulary.parquet +2 -2
  46. models/vocabulary/dtp_vocabulary_metadata.json +10 -9
  47. models/word_markov/dtp_markov_ctx1_word.parquet +2 -2
  48. models/word_markov/dtp_markov_ctx1_word_metadata.json +2 -2
  49. models/word_markov/dtp_markov_ctx2_word.parquet +2 -2
  50. models/word_markov/dtp_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: dtp
3
- language_name: DTP
4
  language_family: austronesian_other
5
  tags:
6
  - wikilangs
@@ -10,11 +10,21 @@ tags:
10
  - n-gram
11
  - markov
12
  - wikipedia
 
 
 
 
 
 
 
 
 
 
13
  - monolingual
14
  - family-austronesian_other
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.589
27
  - name: best_isotropy
28
  type: isotropy
29
- value: 0.8746
30
  - name: vocabulary_size
31
  type: vocab
32
- value: 31869
33
- generated: 2025-12-30
34
  ---
35
 
36
- # DTP - Wikilangs Models
37
  ## Comprehensive Research Report & Full Ablation Study
38
 
39
- This repository contains NLP models trained and evaluated by Wikilangs, specifically on **DTP** 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,51 +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.730x | 3.70 | 0.0838% | 680,403 |
76
- | **16k** | 4.087x | 4.05 | 0.0918% | 620,992 |
77
- | **32k** | 4.371x | 4.33 | 0.0982% | 580,608 |
78
- | **64k** | 4.589x 🏆 | 4.55 | 0.1031% | 553,068 |
79
 
80
  ### Tokenization Examples
81
 
82
  Below are sample sentences tokenized with each vocabulary size:
83
 
84
- **Sample 1:** `Kakamot (Inggilis: tools) nopo nga gunoon do papagaan karaja tokou monikid tadau...`
85
 
86
  | Vocab | Tokens | Count |
87
  |-------|--------|-------|
88
- | 8k | `▁kakamot( inggi lis :to ol s )nopo ... (+10 more)` | 20 |
89
- | 16k | `▁kakamot( inggilis : to ols ) ▁nopo ▁nga ▁gunoon ... (+8 more)` | 18 |
90
- | 32k | `▁kakamot( inggilis : to ols ) ▁nopo ▁nga ▁gunoon ... (+8 more)` | 18 |
91
- | 64k | `▁kakamot( inggilis : tools ) ▁nopo ▁nga ▁gunoon ▁do ... (+6 more)` | 16 |
92
 
93
- **Sample 2:** `Boros Bukitan nopo nga iso kawo boros Punan id Kalimantan Barat, Indonesia om no...`
94
 
95
  | Vocab | Tokens | Count |
96
  |-------|--------|-------|
97
- | 8k | `▁boros ▁buk itan ▁nopo ▁nga ▁iso ▁kawoborosp unan ... (+12 more)` | 22 |
98
- | 16k | `▁boros ▁buk itan ▁nopo ▁nga ▁isokawoboros ▁p unan ... (+12 more)` | 22 |
99
- | 32k | `▁boros ▁buk itan ▁nopo ▁nga ▁isokawoboros ▁p unan ... (+12 more)` | 22 |
100
- | 64k | `▁borosbukitan ▁nopo ▁nga ▁isokawoboros ▁punanidkalimantan ... (+10 more)` | 20 |
101
 
102
- **Sample 3:** `Suminundu nopo nga sinawaan di Kinoingan.Kitanak yolo do songulun tondu tolumis ...`
103
 
104
  | Vocab | Tokens | Count |
105
  |-------|--------|-------|
106
- | 8k | `▁sumin undu ▁nopo ▁nga ▁sin awaandikino ingan . ... (+16 more)` | 26 |
107
- | 16k | `▁sumin undu ▁nopo ▁nga ▁sin awaandikino ingan . ... (+12 more)` | 22 |
108
- | 32k | `▁sumin undu ▁nopo ▁nga ▁sinawaandikinoingan . kit anak ... (+10 more)` | 20 |
109
- | 64k | `▁suminundu ▁nopo ▁nga ▁sinawaandikinoingan . kit anak yolo ... (+9 more)` | 19 |
110
 
111
 
112
  ### Key Findings
113
 
114
- - **Best Compression:** 64k achieves 4.589x compression
115
- - **Lowest UNK Rate:** 8k with 0.0838% unknown tokens
116
  - **Trade-off:** Larger vocabularies improve compression but increase model size
117
  - **Recommendation:** 32k vocabulary provides optimal balance for production use
118
 
@@ -121,57 +139,111 @@ Below are sample sentences tokenized with each vocabulary size:
121
 
122
  ![N-gram Perplexity](visualizations/ngram_perplexity.png)
123
 
 
 
124
  ![N-gram Coverage](visualizations/ngram_coverage.png)
125
 
126
  ### Results
127
 
128
- | N-gram | Perplexity | Entropy | Unique N-grams | Top-100 Coverage | Top-1000 Coverage |
129
- |--------|------------|---------|----------------|------------------|-------------------|
130
- | **2-gram** | 9,628 🏆 | 13.23 | 26,102 | 16.3% | 38.1% |
131
- | **2-gram** | 268 🏆 | 8.07 | 3,536 | 68.7% | 99.0% |
132
- | **3-gram** | 16,586 | 14.02 | 30,760 | 10.5% | 27.5% |
133
- | **3-gram** | 2,315 | 11.18 | 24,789 | 26.8% | 71.8% |
134
- | **4-gram** | 28,313 | 14.79 | 40,735 | 6.7% | 18.5% |
135
- | **4-gram** | 12,602 | 13.62 | 114,796 | 13.5% | 40.4% |
 
 
136
 
137
  ### Top 5 N-grams by Size
138
 
139
- **2-grams:**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
 
141
  | Rank | N-gram | Count |
142
  |------|--------|-------|
143
- | 1 | `nopo nga` | 11,660 |
144
- | 2 | `, om` | 3,127 |
145
- | 3 | `id suang` | 2,820 |
146
- | 4 | `) ,` | 2,282 |
147
- | 5 | `ko '` | 2,260 |
148
 
149
- **3-grams:**
150
 
151
  | Rank | N-gram | Count |
152
  |------|--------|-------|
153
- | 1 | `toi ko '` | 1,571 |
154
- | 2 | `) nopo nga` | 946 |
155
- | 3 | `diti nopo nga` | 933 |
156
- | 4 | `nopo nga iso` | 879 |
157
- | 5 | `nopo nga '` | 863 |
158
 
159
- **4-grams:**
160
 
161
  | Rank | N-gram | Count |
162
  |------|--------|-------|
163
- | 1 | `) nopo nga songulun` | 273 |
164
- | 2 | `https : / /` | 247 |
165
- | 3 | `) nopo nga iso` | 192 |
166
- | 4 | `. isido nopo nga` | 171 |
167
- | 5 | `sundung do ingkaa ,` | 163 |
168
 
169
 
170
  ### Key Findings
171
 
172
- - **Best Perplexity:** 2-gram with 268
173
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
174
- - **Coverage:** Top-1000 patterns cover ~40% of corpus
175
  - **Recommendation:** 4-gram or 5-gram for best predictive performance
176
 
177
  ---
@@ -179,55 +251,86 @@ Below are sample sentences tokenized with each vocabulary size:
179
 
180
  ![Markov Entropy](visualizations/markov_entropy.png)
181
 
 
 
182
  ![Markov Branching](visualizations/markov_branching.png)
183
 
184
  ### Results
185
 
186
- | Context | Avg Entropy | Perplexity | Branching Factor | Unique Contexts | Predictability |
187
- |---------|-------------|------------|------------------|-----------------|----------------|
188
- | **1** | 0.7421 | 1.673 | 5.24 | 79,291 | 25.8% |
189
- | **1** | 1.0541 | 2.076 | 6.17 | 1,907 | 0.0% |
190
- | **2** | 0.3235 | 1.251 | 1.79 | 414,760 | 67.7% |
191
- | **2** | 0.8143 | 1.758 | 4.77 | 11,770 | 18.6% |
192
- | **3** | 0.1058 | 1.076 | 1.18 | 740,308 | 89.4% |
193
- | **3** | 0.8194 | 1.765 | 3.86 | 56,142 | 18.1% |
194
- | **4** | 0.0353 🏆 | 1.025 | 1.05 | 874,067 | 96.5% |
195
- | **4** | 0.6196 🏆 | 1.536 | 2.60 | 216,827 | 38.0% |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
196
 
197
- ### Generated Text Samples
198
 
199
- Below are text samples generated from each Markov chain model:
 
 
200
 
201
  **Context Size 1:**
202
 
203
- 1. `, but beethoven . delear , hello , 13 , popolombus hiis . … 배드민턴 안세영`
204
- 2. `. biografi kopointutunan maamaso momongo kalaja inus kapamansayan ontok momuhau 24 : two , 30 koumat...`
205
- 3. `do urusan om gana ' s love you best contemporary dangdut pesisir barat om koubasanan id`
206
 
207
  **Context Size 2:**
208
 
209
- 1. `nopo nga iso kakadayan topuhawang om totos totuo ' id korea selatan id poimpuli a . s`
210
- 2. `, om nogi minog mamagayat rahi songulun mokiikinobos doktor falsafah ( jawi ) do fosforus , kalsium`
211
- 3. `id suang gana noos dau ponokoguas do cavell . [ meragukan ] soginumuan soriuk do ponoriukan fenomena`
212
 
213
  **Context Size 3:**
214
 
215
- 1. `toi ko ' ointutunan sabaagi jaclyn victor ( nosusu ontok 23 mahas , 2000 ) . the consequences`
216
- 2. `) nopo nga songulun do kiraha mirolot kadazan - polish ii nosusu ontok kurun ko - 13 id`
217
- 3. `diti nopo nga i che zan ii kiraha do naralatan sina om india muslim mantad do pulau pinang`
218
 
219
  **Context Size 4:**
220
 
221
- 1. `) nopo nga songulun monondig om mimingkono tinaru turki ii mobi mantad awakening records . kopointut...`
222
- 2. `https : / / www . jagranjosh . com / general - knowledge / national - sports - day`
223
- 3. `) nopo nga iso kalab buul sipak arab saudi i poingimpou id riyadh . noturidong o kalab diti ontok`
224
 
225
 
226
  ### Key Findings
227
 
228
- - **Best Predictability:** Context-4 with 96.5% predictability
229
  - **Branching Factor:** Decreases with context size (more deterministic)
230
- - **Memory Trade-off:** Larger contexts require more storage (216,827 contexts)
231
  - **Recommendation:** Context-3 or Context-4 for text generation
232
 
233
  ---
@@ -243,64 +346,64 @@ Below are text samples generated from each Markov chain model:
243
 
244
  | Metric | Value |
245
  |--------|-------|
246
- | Vocabulary Size | 31,869 |
247
- | Total Tokens | 750,543 |
248
- | Mean Frequency | 23.55 |
249
  | Median Frequency | 4 |
250
- | Frequency Std Dev | 317.13 |
251
 
252
  ### Most Common Words
253
 
254
  | Rank | Word | Frequency |
255
  |------|------|-----------|
256
- | 1 | do | 30,943 |
257
- | 2 | id | 22,628 |
258
- | 3 | om | 20,012 |
259
- | 4 | nga | 15,887 |
260
- | 5 | nopo | 14,215 |
261
- | 6 | di | 13,706 |
262
- | 7 | i | 9,800 |
263
- | 8 | mantad | 7,464 |
264
- | 9 | ontok | 6,786 |
265
- | 10 | sabaagi | 5,795 |
266
 
267
  ### Least Common Words (from vocabulary)
268
 
269
  | Rank | Word | Frequency |
270
  |------|------|-----------|
271
- | 1 | 43500 | 2 |
272
- | 2 | 95250 | 2 |
273
- | 3 | 31389 | 2 |
274
- | 4 | 87167 | 2 |
275
- | 5 | sisimbarpulou | 2 |
276
- | 6 | 626417 | 2 |
277
- | 7 | 757833 | 2 |
278
- | 8 | 72194 | 2 |
279
- | 9 | 64972 | 2 |
280
  | 10 | koz | 2 |
281
 
282
  ### Zipf's Law Analysis
283
 
284
  | Metric | Value |
285
  |--------|-------|
286
- | Zipf Coefficient | 1.0562 |
287
- | R² (Goodness of Fit) | 0.993179 |
288
  | Adherence Quality | **excellent** |
289
 
290
  ### Coverage Analysis
291
 
292
  | Top N Words | Coverage |
293
  |-------------|----------|
294
- | Top 100 | 39.9% |
295
- | Top 1,000 | 65.4% |
296
- | Top 5,000 | 84.2% |
297
- | Top 10,000 | 90.9% |
298
 
299
  ### Key Findings
300
 
301
- - **Zipf Compliance:** R²=0.9932 indicates excellent adherence to Zipf's law
302
- - **High Frequency Dominance:** Top 100 words cover 39.9% of corpus
303
- - **Long Tail:** 21,869 words needed for remaining 9.1% coverage
304
 
305
  ---
306
  ## 5. Word Embeddings Evaluation
@@ -313,24 +416,130 @@ Below are text samples generated from each Markov chain model:
313
 
314
  ![t-SNE Sentences](visualizations/tsne_sentences.png)
315
 
316
- ### Model Comparison
317
 
318
- | Model | Vocab Size | Dimension | Avg Norm | Std Norm | Isotropy |
319
- |-------|------------|-----------|----------|----------|----------|
320
- | **mono_32d** | 15,036 | 32 | 3.350 | 0.651 | 0.8746 🏆 |
321
- | **mono_64d** | 15,036 | 64 | 3.723 | 0.623 | 0.7529 |
322
- | **mono_128d** | 15,036 | 128 | 3.904 | 0.607 | 0.3563 |
323
- | **embeddings_enhanced** | 0 | 0 | 0.000 | 0.000 | 0.0000 |
 
 
 
 
 
 
 
 
 
 
 
324
 
325
  ### Key Findings
326
 
327
- - **Best Isotropy:** mono_32d with 0.8746 (more uniform distribution)
328
- - **Dimension Trade-off:** Higher dimensions capture more semantics but reduce isotropy
329
- - **Vocabulary Coverage:** All models cover 15,036 words
330
- - **Recommendation:** 100d for balanced semantic capture and efficiency
331
 
332
  ---
333
- ## 6. Summary & Recommendations
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
334
 
335
  ![Performance Dashboard](visualizations/performance_dashboard.png)
336
 
@@ -338,11 +547,12 @@ Below are text samples generated from each Markov chain model:
338
 
339
  | Component | Recommended | Rationale |
340
  |-----------|-------------|-----------|
341
- | Tokenizer | **32k BPE** | Best compression (4.59x) with low UNK rate |
342
- | N-gram | **5-gram** | Lowest perplexity (268) |
343
- | Markov | **Context-4** | Highest predictability (96.5%) |
344
  | Embeddings | **100d** | Balanced semantic capture and isotropy |
345
 
 
346
  ---
347
  ## Appendix: Metrics Glossary & Interpretation Guide
348
 
@@ -532,7 +742,8 @@ If you use these models in your research, please cite:
532
  author = {Kamali, Omar},
533
  title = {Wikilangs: Open NLP Models for Wikipedia Languages},
534
  year = {2025},
535
- publisher = {HuggingFace},
 
536
  url = {https://huggingface.co/wikilangs}
537
  institution = {Omneity Labs}
538
  }
@@ -548,7 +759,8 @@ MIT License - Free for academic and commercial use.
548
  - 🤗 Models: [huggingface.co/wikilangs](https://huggingface.co/wikilangs)
549
  - 📊 Data: [wikipedia-monthly](https://huggingface.co/datasets/omarkamali/wikipedia-monthly)
550
  - 👤 Author: [Omar Kamali](https://huggingface.co/omarkamali)
 
551
  ---
552
  *Generated by Wikilangs Models Pipeline*
553
 
554
- *Report Date: 2025-12-30 08:36:47*
 
1
  ---
2
  language: dtp
3
+ language_name: Central Dusun
4
  language_family: austronesian_other
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-austronesian_other
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.962
37
  - name: best_isotropy
38
  type: isotropy
39
+ value: 0.8679
40
  - name: vocabulary_size
41
  type: vocab
42
+ value: 0
43
+ generated: 2026-01-04
44
  ---
45
 
46
+ # Central Dusun - Wikilangs Models
47
  ## Comprehensive Research Report & Full Ablation Study
48
 
49
+ This repository contains NLP models trained and evaluated by Wikilangs, specifically on **Central Dusun** 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** | 4.024x | 4.03 | 0.1643% | 595,784 |
94
+ | **16k** | 4.420x | 4.42 | 0.1805% | 542,287 |
95
+ | **32k** | 4.736x | 4.74 | 0.1934% | 506,176 |
96
+ | **64k** | 4.962x 🏆 | 4.96 | 0.2026% | 483,109 |
97
 
98
  ### Tokenization Examples
99
 
100
  Below are sample sentences tokenized with each vocabulary size:
101
 
102
+ **Sample 1:** `Boros Murut Timugon nopo nga boros di gunoon do Tulun Murut id Borneo. Sukuon`
103
 
104
  | Vocab | Tokens | Count |
105
  |-------|--------|-------|
106
+ | 8k | `▁borosmurut ▁tim ug onnopo ▁nga ▁boros ▁digunoon ... (+7 more)` | 17 |
107
+ | 16k | `▁borosmuruttim ug on ▁nopo ▁nga ▁boros ▁di ▁gunoon ... (+7 more)` | 17 |
108
+ | 32k | `▁borosmuruttim ugon ▁nopo ▁nga ▁boros ▁di ▁gunoon ▁do ... (+6 more)` | 16 |
109
+ | 64k | `▁borosmuruttimugon ▁nopo ▁nga ▁boros ▁di ▁gunoon ▁do ▁tulun ... (+5 more)` | 15 |
110
 
111
+ **Sample 2:** `Suminundu nopo nga sinawaan di Kinoingan.Kitanak yolo do songulun tondu tolumis ...`
112
 
113
  | Vocab | Tokens | Count |
114
  |-------|--------|-------|
115
+ | 8k | `▁sumin undu ▁nopo ▁nga ▁sin awaandikino ingan . ... (+14 more)` | 24 |
116
+ | 16k | `▁sumin undu ▁nopo ▁nga ▁sinawaandikinoingan . k itanak ... (+11 more)` | 21 |
117
+ | 32k | `▁sumin undu ▁nopo ▁nga ▁sinawaandikinoingan . k itanak ... (+10 more)` | 20 |
118
+ | 64k | `▁suminundu ▁nopo ▁nga ▁sinawaandikinoingan . kitanak yolodo ... (+8 more)` | 18 |
119
 
120
+ **Sample 3:** `Mongintob nopo nga nunu nopo iri kokomoi do ginumu, ginayo, sinodu toi winagat.`
121
 
122
  | Vocab | Tokens | Count |
123
  |-------|--------|-------|
124
+ | 8k | `▁mongin tob ▁nopo ▁nga ▁nunu ▁nopoirikokomoi ▁do ▁ginumu ... (+7 more)` | 17 |
125
+ | 16k | `▁mongintob ▁nopo ▁nga ▁nunu ▁nopoirikokomoi ▁do ▁ginumu , ... (+6 more)` | 16 |
126
+ | 32k | `▁mongintob ▁nopo ▁nga ▁nununopoiri ▁kokomoi ▁do ▁ginumu , ... (+6 more)` | 16 |
127
+ | 64k | `▁mongintob ▁nopo ▁nga ▁nununopoiri ▁kokomoi ▁doginumu , ... (+6 more)` | 16 |
128
 
129
 
130
  ### Key Findings
131
 
132
+ - **Best Compression:** 64k achieves 4.962x compression
133
+ - **Lowest UNK Rate:** 8k with 0.1643% 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 | 7,224 | 12.82 | 18,432 | 17.6% | 40.2% |
151
+ | **2-gram** | Subword | 227 🏆 | 7.82 | 2,665 | 72.6% | 99.5% |
152
+ | **3-gram** | Word | 10,598 | 13.37 | 17,860 | 12.0% | 30.6% |
153
+ | **3-gram** | Subword | 1,902 | 10.89 | 18,913 | 28.7% | 75.5% |
154
+ | **4-gram** | Word | 17,687 | 14.11 | 21,653 | 5.2% | 18.7% |
155
+ | **4-gram** | Subword | 10,332 | 13.33 | 90,801 | 14.5% | 42.9% |
156
+ | **5-gram** | Word | 9,233 | 13.17 | 10,312 | 5.0% | 23.1% |
157
+ | **5-gram** | Subword | 32,680 | 15.00 | 217,159 | 9.9% | 28.5% |
158
 
159
  ### Top 5 N-grams by Size
160
 
161
+ **2-grams (Word):**
162
+
163
+ | Rank | N-gram | Count |
164
+ |------|--------|-------|
165
+ | 1 | `nopo nga` | 11,657 |
166
+ | 2 | `id suang` | 2,821 |
167
+ | 3 | `toi ko` | 1,861 |
168
+ | 4 | `ontok toun` | 1,828 |
169
+ | 5 | `nga iso` | 1,049 |
170
+
171
+ **3-grams (Word):**
172
+
173
+ | Rank | N-gram | Count |
174
+ |------|--------|-------|
175
+ | 1 | `nopo nga iso` | 951 |
176
+ | 2 | `diti nopo nga` | 935 |
177
+ | 3 | `id suang do` | 660 |
178
+ | 4 | `nopo nga songulun` | 600 |
179
+ | 5 | `nopo diti nga` | 439 |
180
+
181
+ **4-grams (Word):**
182
+
183
+ | Rank | N-gram | Count |
184
+ |------|--------|-------|
185
+ | 1 | `nopo nga iso mantad` | 117 |
186
+ | 2 | `nopo nga iso kawo` | 79 |
187
+ | 3 | `nopo nga songulun mimingkono` | 75 |
188
+ | 4 | `nopo nga kohompit no` | 71 |
189
+ | 5 | `nopo nga iso pogun` | 70 |
190
+
191
+ **5-grams (Word):**
192
+
193
+ | Rank | N-gram | Count |
194
+ |------|--------|-------|
195
+ | 1 | `archived from the original on` | 42 |
196
+ | 2 | `toi ko lobi ointutunan sabaagi` | 34 |
197
+ | 3 | `koposion pogulu om pondidikan nosusu` | 25 |
198
+ | 4 | `toun uhu kono saluran tv` | 24 |
199
+ | 5 | `mw parser output reflist lower` | 24 |
200
+
201
+ **2-grams (Subword):**
202
+
203
+ | Rank | N-gram | Count |
204
+ |------|--------|-------|
205
+ | 1 | `a n` | 132,420 |
206
+ | 2 | `n _` | 100,917 |
207
+ | 3 | `o _` | 92,031 |
208
+ | 4 | `i _` | 88,621 |
209
+ | 5 | `o n` | 79,747 |
210
+
211
+ **3-grams (Subword):**
212
 
213
  | Rank | N-gram | Count |
214
  |------|--------|-------|
215
+ | 1 | `a n _` | 56,169 |
216
+ | 2 | `d o _` | 34,236 |
217
+ | 3 | `_ n o` | 33,345 |
218
+ | 4 | `_ d o` | 32,858 |
219
+ | 5 | `_ k o` | 28,766 |
220
 
221
+ **4-grams (Subword):**
222
 
223
  | Rank | N-gram | Count |
224
  |------|--------|-------|
225
+ | 1 | `_ d o _` | 30,800 |
226
+ | 2 | `_ i d _` | 22,452 |
227
+ | 3 | `_ o m _` | 19,951 |
228
+ | 4 | `_ n g a` | 17,310 |
229
+ | 5 | `n o p o` | 15,354 |
230
 
231
+ **5-grams (Subword):**
232
 
233
  | Rank | N-gram | Count |
234
  |------|--------|-------|
235
+ | 1 | `_ n g a _` | 14,567 |
236
+ | 2 | `_ n o p o` | 14,303 |
237
+ | 3 | `n o p o _` | 14,096 |
238
+ | 4 | `o n t o k` | 12,540 |
239
+ | 5 | `n t o k _` | 12,488 |
240
 
241
 
242
  ### Key Findings
243
 
244
+ - **Best Perplexity:** 2-gram (subword) with 227
245
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
246
+ - **Coverage:** Top-1000 patterns cover ~29% 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.8540 | 1.808 | 5.51 | 70,711 | 14.6% |
263
+ | **1** | Subword | 0.8991 | 1.865 | 5.16 | 1,986 | 10.1% |
264
+ | **2** | Word | 0.2712 | 1.207 | 1.62 | 388,589 | 72.9% |
265
+ | **2** | Subword | 0.6820 | 1.604 | 4.13 | 10,241 | 31.8% |
266
+ | **3** | Word | 0.0811 | 1.058 | 1.13 | 628,158 | 91.9% |
267
+ | **3** | Subword | 0.7746 | 1.711 | 3.85 | 42,293 | 22.5% |
268
+ | **4** | Word | 0.0237 🏆 | 1.017 | 1.03 | 709,279 | 97.6% |
269
+ | **4** | Subword | 0.6516 | 1.571 | 2.76 | 162,763 | 34.8% |
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. `do tasu piipiro posis nopo nga bagas menteri malaysia toi ko 7 3w 7 808 güzelbahçe`
278
+ 2. `id boros sweden maamaso timpu pogulu nosusu i nopo nga okito nogi i rajaa do amu`
279
+ 3. `om papaharo sikul takawas id keningau diti nga kohompit om gisom pinoposiliu do dudumagang maritim m...`
280
+
281
+ **Context Size 2:**
282
+
283
+ 1. `nopo nga okito id posorili do kuil kuil bongunan bongunan winonsoi o kinoyonon diti galeri sukuon pa...`
284
+ 2. `id suang pambalajalan loolobi id gana do sains sosial om ekonomi mogigion do pulau bali winonsoi o`
285
+ 3. `toi ko bandar raya santiago gurun atacama ii gersang id utara chile nopo nga kosoruan ointutunan sab...`
286
+
287
+ **Context Size 3:**
288
+
289
+ 1. `nopo nga iso kakadayan komponen kalas ko 5 id kointayadan do 50 tondu yahudi di bobos boroson id`
290
+ 2. `diti nopo nga kiwaa totos okuri nopo nga kirati do tudan udan talasu om i bobos poinwagu nopo`
291
+ 3. `id suang do watas tenom om id siriba kotoinaan do upis watas keningau di laid abaabayan dii nopo`
292
+
293
+ **Context Size 4:**
294
+
295
+ 1. `nopo nga iso mantad tolu puruan tinimungan slav kosilahon ii kakal po do pharo ii suai nopo nga monu...`
296
+ 2. `nopo nga iso kawo boros dayak i popohompit do duo dialek daro om matu dialek mantad boros austronesi...`
297
+ 3. `nopo nga songulun mimingkono di abantung kopio maya piipiro film miagal ko x men apocalypse om nogi ...`
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. `_2_,_suhyl_palal`
307
+ 2. `aheacasomomoid_p`
308
+ 3. `ombaaiayosiesili`
309
 
310
  **Context Size 2:**
311
 
312
+ 1. `an_gan_ka_kopoko_`
313
+ 2. `n_mek_koudions_gr`
314
+ 3. `o_dukul_bihaguluh`
315
 
316
  **Context Size 3:**
317
 
318
+ 1. `an_abaagu_di_aut"_`
319
+ 2. `do_sukuon_debutang`
320
+ 3. `_nokobol_kopo_ngam`
321
 
322
  **Context Size 4:**
323
 
324
+ 1. `_do_ponuan_chillage`
325
+ 2. `_id_sabaagi_gisom_n`
326
+ 3. `_om_institud_5.11-3`
327
 
328
 
329
  ### Key Findings
330
 
331
+ - **Best Predictability:** Context-4 (word) with 97.6% predictability
332
  - **Branching Factor:** Decreases with context size (more deterministic)
333
+ - **Memory Trade-off:** Larger contexts require more storage (162,763 contexts)
334
  - **Recommendation:** Context-3 or Context-4 for text generation
335
 
336
  ---
 
346
 
347
  | Metric | Value |
348
  |--------|-------|
349
+ | Vocabulary Size | 30,571 |
350
+ | Total Tokens | 714,971 |
351
+ | Mean Frequency | 23.39 |
352
  | Median Frequency | 4 |
353
+ | Frequency Std Dev | 322.81 |
354
 
355
  ### Most Common Words
356
 
357
  | Rank | Word | Frequency |
358
  |------|------|-----------|
359
+ | 1 | do | 30,939 |
360
+ | 2 | id | 22,604 |
361
+ | 3 | om | 20,001 |
362
+ | 4 | nga | 15,882 |
363
+ | 5 | nopo | 14,210 |
364
+ | 6 | di | 13,677 |
365
+ | 7 | i | 9,637 |
366
+ | 8 | mantad | 7,460 |
367
+ | 9 | ontok | 6,784 |
368
+ | 10 | sabaagi | 5,793 |
369
 
370
  ### Least Common Words (from vocabulary)
371
 
372
  | Rank | Word | Frequency |
373
  |------|------|-----------|
374
+ | 1 | nın | 2 |
375
+ | 2 | tarihçesi | 2 |
376
+ | 3 | paü | 2 |
377
+ | 4 | eğitim | 2 |
378
+ | 5 | dergisi | 2 |
379
+ | 6 | sayı | 2 |
380
+ | 7 | mongumang | 2 |
381
+ | 8 | mikattiwang | 2 |
382
+ | 9 | sisimbarpulou | 2 |
383
  | 10 | koz | 2 |
384
 
385
  ### Zipf's Law Analysis
386
 
387
  | Metric | Value |
388
  |--------|-------|
389
+ | Zipf Coefficient | 1.0496 |
390
+ | R² (Goodness of Fit) | 0.994075 |
391
  | Adherence Quality | **excellent** |
392
 
393
  ### Coverage Analysis
394
 
395
  | Top N Words | Coverage |
396
  |-------------|----------|
397
+ | Top 100 | 41.6% |
398
+ | Top 1,000 | 66.1% |
399
+ | Top 5,000 | 84.5% |
400
+ | Top 10,000 | 91.2% |
401
 
402
  ### Key Findings
403
 
404
+ - **Zipf Compliance:** R²=0.9941 indicates excellent adherence to Zipf's law
405
+ - **High Frequency Dominance:** Top 100 words cover 41.6% of corpus
406
+ - **Long Tail:** 20,571 words needed for remaining 8.8% 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.8679 🏆 | 0.3272 | N/A | N/A |
432
+ | **mono_64d** | 64 | 0.7620 | 0.2632 | N/A | N/A |
433
+ | **mono_128d** | 128 | 0.3462 | 0.2417 | N/A | N/A |
434
+ | **aligned_32d** | 32 | 0.8679 | 0.3226 | 0.0560 | 0.2820 |
435
+ | **aligned_64d** | 64 | 0.7620 | 0.2720 | 0.1060 | 0.3860 |
436
+ | **aligned_128d** | 128 | 0.3462 | 0.2427 | 0.2020 | 0.5260 |
437
 
438
  ### Key Findings
439
 
440
+ - **Best Isotropy:** mono_32d with 0.8679 (more uniform distribution)
441
+ - **Semantic Density:** Average pairwise similarity of 0.2782. Lower values indicate better semantic separation.
442
+ - **Alignment Quality:** Aligned models achieve up to 20.2% 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.189** | Low formulaic 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
+ | `-po` | poinkilong, pointounda, poninong |
465
+ | `-ko` | kopogonuan, kontinjen, kokomoi |
466
+ | `-mo` | monongkuyaan, mongingit, mohd |
467
+ | `-mi` | mind, millennium, minsingumbal |
468
+ | `-ma` | maru, many, matter |
469
+
470
+ #### Productive Suffixes
471
+ | Suffix | Examples |
472
+ |--------|----------|
473
+ | `-n` | louson, sukun, monongkuyaan |
474
+ | `-an` | monongkuyaan, kopogonuan, keahlian |
475
+ | `-on` | louson, southampton, unsubon |
476
+ | `-ng` | poinkilong, skateboarding, dropping |
477
+
478
+ ### 6.3 Bound Stems (Lexical Roots)
479
+
480
+ 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.
481
+
482
+ | Stem | Cohesion | Substitutability | Examples |
483
+ |------|----------|------------------|----------|
484
+ | `anga` | 1.64x | 146 contexts | ganga, tanga, manga |
485
+ | `ngan` | 1.88x | 34 contexts | songan, jangan, dengan |
486
+ | `oros` | 2.02x | 26 contexts | boros, oroso, doros |
487
+ | `anta` | 1.48x | 88 contexts | banta, manta, antad |
488
+ | `boro` | 2.19x | 19 contexts | boros, oboros, borough |
489
+ | `ongu` | 1.63x | 50 contexts | tongue, tongus, mongua |
490
+ | `impu` | 1.96x | 24 contexts | limpu, timpu, limput |
491
+ | `mont` | 1.81x | 26 contexts | monto, montk, monte |
492
+ | `ampa` | 1.48x | 47 contexts | campa, gampa, rampa |
493
+ | `uang` | 1.59x | 33 contexts | huang, duang, ruang |
494
+ | `ogun` | 1.79x | 21 contexts | oguno, pogun, koguno |
495
+ | `mpai` | 1.95x | 13 contexts | ampai, rumpai, mimpai |
496
+
497
+ ### 6.4 Affix Compatibility (Co-occurrence)
498
+
499
+ This table shows which prefixes and suffixes most frequently co-occur on the same stems, revealing the 'stacking' rules of the language's morphology.
500
+
501
+ | Prefix | Suffix | Frequency | Examples |
502
+ |--------|--------|-----------|----------|
503
+ | `-ko` | `-n` | 164 words | kolintuhunan, koyomutan |
504
+ | `-po` | `-n` | 148 words | poimpohon, porundangan |
505
+ | `-ko` | `-an` | 121 words | kolintuhunan, koyomutan |
506
+ | `-po` | `-an` | 109 words | porundangan, pomutulan |
507
+ | `-po` | `-on` | 39 words | poimpohon, potingkodon |
508
+ | `-ko` | `-on` | 37 words | kohinoon, kosogubon |
509
+ | `-mi` | `-ng` | 29 words | minanamong, minongisonong |
510
+ | `-mi` | `-n` | 23 words | million, miimpohon |
511
+ | `-mo` | `-ng` | 22 words | momoguring, moyang |
512
+ | `-po` | `-ng` | 16 words | poring, poning |
513
+
514
+ ### 6.5 Recursive Morpheme Segmentation
515
+
516
+ Using **Recursive Hierarchical Substitutability**, we decompose complex words into their constituent morphemes. This approach handles nested affixes (e.g., `prefix-prefix-root-suffix`).
517
+
518
+ | Word | Suggested Split | Confidence | Stem |
519
+ |------|-----------------|------------|------|
520
+ | kopomolobusan | **`ko-po-mo-lobus-an`** | 9.0 | `lobus` |
521
+ | popokobong | **`po-po-ko-bong`** | 7.5 | `bong` |
522
+ | pomokritik | **`po-mo-kritik`** | 6.0 | `kritik` |
523
+ | popobibas | **`po-po-bibas`** | 6.0 | `bibas` |
524
+ | momooboros | **`mo-mo-oboros`** | 6.0 | `oboros` |
525
+ | mamagakom | **`ma-ma-gakom`** | 6.0 | `gakom` |
526
+ | pomodolinan | **`po-mo-dolin-an`** | 4.5 | `dolin` |
527
+ | koingkuri | **`ko-ingkuri`** | 4.5 | `ingkuri` |
528
+ | tungkusan | **`tungkus-an`** | 4.5 | `tungkus` |
529
+ | pengurusan | **`pengurus-an`** | 4.5 | `pengurus` |
530
+ | kopogisuusuayan | **`ko-po-gisuusuay-an`** | 4.5 | `gisuusuay` |
531
+ | pesisiran | **`pesisir-an`** | 4.5 | `pesisir` |
532
+ | kopomoogian | **`ko-po-mo-ogian`** | 4.5 | `ogian` |
533
+ | pomudagangan | **`po-mudaga-ng-an`** | 4.5 | `mudaga` |
534
+ | pomobodilan | **`po-mo-bodil-an`** | 4.5 | `bodil` |
535
+
536
+ ### 6.6 Linguistic Interpretation
537
+
538
+ > **Automated Insight:**
539
+ The language Central Dusun 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
543
 
544
  ![Performance Dashboard](visualizations/performance_dashboard.png)
545
 
 
547
 
548
  | Component | Recommended | Rationale |
549
  |-----------|-------------|-----------|
550
+ | Tokenizer | **64k BPE** | Best compression (4.96x) |
551
+ | N-gram | **2-gram** | Lowest perplexity (227) |
552
+ | Markov | **Context-4** | Highest predictability (97.6%) |
553
  | Embeddings | **100d** | Balanced semantic capture and isotropy |
554
 
555
+
556
  ---
557
  ## Appendix: Metrics Glossary & Interpretation Guide
558
 
 
742
  author = {Kamali, Omar},
743
  title = {Wikilangs: Open NLP Models for Wikipedia Languages},
744
  year = {2025},
745
+ doi = {10.5281/zenodo.18073153},
746
+ publisher = {Zenodo},
747
  url = {https://huggingface.co/wikilangs}
748
  institution = {Omneity Labs}
749
  }
 
759
  - 🤗 Models: [huggingface.co/wikilangs](https://huggingface.co/wikilangs)
760
  - 📊 Data: [wikipedia-monthly](https://huggingface.co/datasets/omarkamali/wikipedia-monthly)
761
  - 👤 Author: [Omar Kamali](https://huggingface.co/omarkamali)
762
+ - 🤝 Sponsor: [Featherless AI](https://featherless.ai)
763
  ---
764
  *Generated by Wikilangs Models Pipeline*
765
 
766
+ *Report Date: 2026-01-04 02:42:58*
models/embeddings/aligned/dtp_128d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ef8c92c34c5389ef126c85a7dbfebc6df2ad2da9260a085f1dcfdff1699073a6
3
+ size 1038885555
models/embeddings/aligned/dtp_128d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "dtp", "dim": 128, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/dtp_128d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:261f45003a3ff551ce887a6bd36c3baa22a7188419587a6a39c1ccc6aa87d04f
3
+ size 65664
models/embeddings/aligned/dtp_128d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "dtp",
3
+ "dimension": 128,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 5929,
7
+ "vocab_size": 14302
8
+ }
models/embeddings/aligned/dtp_32d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:484a1fe0155c7f9986f9ee1ae8e8b474143a65746ccf923c6d3db3855b08dd50
3
+ size 259901619
models/embeddings/aligned/dtp_32d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "dtp", "dim": 32, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/dtp_32d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f2e64e5308e85adac861732e68ce3904f7af20969baa3c44b28062e763101fba
3
+ size 4224
models/embeddings/aligned/dtp_32d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "dtp",
3
+ "dimension": 32,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 5929,
7
+ "vocab_size": 14302
8
+ }
models/embeddings/aligned/dtp_64d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:453663b596b40562830f834a81e45581e60a99d44b931538b689055f8f6b8dd1
3
+ size 519562931
models/embeddings/aligned/dtp_64d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "dtp", "dim": 64, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/dtp_64d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:819a56cc945dca6d803974102b732c51ca35de6eb1756123670c31cae5dedc51
3
+ size 16512
models/embeddings/aligned/dtp_64d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "dtp",
3
+ "dimension": 64,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 5929,
7
+ "vocab_size": 14302
8
+ }
models/embeddings/monolingual/dtp_128d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:64368ca20c13e820bd6729b2433d8becff40fa91dfa8b2fe85413e8bfa4fc976
3
- size 1039649725
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ef8c92c34c5389ef126c85a7dbfebc6df2ad2da9260a085f1dcfdff1699073a6
3
+ size 1038885555
models/embeddings/monolingual/dtp_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": 15036
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": 14302
15
  }
models/embeddings/monolingual/dtp_32d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:8444cc0255158a6e9f9b000f28544827397224b956952639e668e15fa849737d
3
- size 260102077
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:484a1fe0155c7f9986f9ee1ae8e8b474143a65746ccf923c6d3db3855b08dd50
3
+ size 259901619
models/embeddings/monolingual/dtp_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": 15036
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": 14302
15
  }
models/embeddings/monolingual/dtp_64d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:cbd05a85ec9ea45c19d599c07b616e901cb9e0c2a8c529d50eb66978765fccbf
3
- size 519951293
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:453663b596b40562830f834a81e45581e60a99d44b931538b689055f8f6b8dd1
3
+ size 519562931
models/embeddings/monolingual/dtp_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": 15036
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": 14302
15
  }
models/subword_markov/dtp_markov_ctx1_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:026dfb688d83cbd8de75ac6f7f2d984fdb2e4cf577fcbb30c1b82a5fda4387f6
3
- size 90282
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c689cc0e9e37a6641e97673744cf0aa8458bc5c144a694bb6f6126f2a1fd9ac3
3
+ size 82716
models/subword_markov/dtp_markov_ctx1_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 1,
3
  "variant": "subword",
4
  "language": "dtp",
5
- "unique_contexts": 1907,
6
- "total_transitions": 5244532
7
  }
 
2
  "context_size": 1,
3
  "variant": "subword",
4
  "language": "dtp",
5
+ "unique_contexts": 1986,
6
+ "total_transitions": 4891989
7
  }
models/subword_markov/dtp_markov_ctx2_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:10f57d9ab5ff100fa24fc205370ce9ef284a07c6cf89a4ed39379ca45b14cee8
3
- size 442873
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e11ab1f6270f3d83b9accbdb1caa49db8f09b49b4107cb2ecd426f4e07a67a87
3
+ size 357574
models/subword_markov/dtp_markov_ctx2_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "dtp",
5
- "unique_contexts": 11770,
6
- "total_transitions": 5242606
7
  }
 
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "dtp",
5
+ "unique_contexts": 10241,
6
+ "total_transitions": 4890072
7
  }
models/subword_markov/dtp_markov_ctx3_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:5d3e6fc10106e41d05bdcdf2c8bfd2a4da0f1fb5798fcbfdcc25a4d320463f74
3
- size 1631340
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2cc1b59a67a565880863c396871ea1e552ba11d3a1ce3c24b30859de39a3f7a7
3
+ size 1290349
models/subword_markov/dtp_markov_ctx3_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "dtp",
5
- "unique_contexts": 56142,
6
- "total_transitions": 5240680
7
  }
 
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "dtp",
5
+ "unique_contexts": 42293,
6
+ "total_transitions": 4888155
7
  }
models/subword_markov/dtp_markov_ctx4_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:3f641243fcd9d959160e9be0fc8dbf51c577f71bd06249a96158b942ca111017
3
- size 4387258
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:98e90afa361bfa3d24fd0391063c2ecd178e827eaff193eb36e54565610a0c6b
3
+ size 3460742
models/subword_markov/dtp_markov_ctx4_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "dtp",
5
- "unique_contexts": 216827,
6
- "total_transitions": 5238754
7
  }
 
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "dtp",
5
+ "unique_contexts": 162763,
6
+ "total_transitions": 4886238
7
  }
models/subword_ngram/dtp_2gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:b1a6dd61fce8e08269ecd821a19e43e8d3eca2bd245d96fdba3240ec081b5a26
3
- size 44336
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d8386f25b551413e623afb1ee5f3baa26b0589ec02c8b3eb088530731d3f1640
3
+ size 35393
models/subword_ngram/dtp_2gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "dtp",
5
- "unique_ngrams": 3536,
6
- "total_ngrams": 5244532
7
  }
 
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "dtp",
5
+ "unique_ngrams": 2665,
6
+ "total_ngrams": 4891989
7
  }
models/subword_ngram/dtp_3gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c3dccc5541e601e231271163bb00f5f420140413659293af0cec60bb86f1d18a
3
- size 293148
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5b698de07a91cd02f32dce2f0a55eca95a01cbac330ba41d817fcef280318fce
3
+ size 227164
models/subword_ngram/dtp_3gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "dtp",
5
- "unique_ngrams": 24789,
6
- "total_ngrams": 5242606
7
  }
 
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "dtp",
5
+ "unique_ngrams": 18913,
6
+ "total_ngrams": 4890072
7
  }
models/subword_ngram/dtp_4gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:a628aae7320eb63538107a02caad103d0f40b5059535b7c5cc4e886ac21b2944
3
- size 1264464
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8832be2c290f584206541b682bfad0ff537420bf107ee94faf3e93ec6f112875
3
+ size 1016286
models/subword_ngram/dtp_4gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "dtp",
5
- "unique_ngrams": 114796,
6
- "total_ngrams": 5240680
7
  }
 
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "dtp",
5
+ "unique_ngrams": 90801,
6
+ "total_ngrams": 4888155
7
  }
models/subword_ngram/dtp_5gram_subword.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:d4571ff87918d80ffa59d68274da2f88a69067c04b91c900db5348bbe73d16e6
3
+ size 2445166
models/subword_ngram/dtp_5gram_subword_metadata.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "n": 5,
3
+ "variant": "subword",
4
+ "language": "dtp",
5
+ "unique_ngrams": 217159,
6
+ "total_ngrams": 4886238
7
+ }
models/tokenizer/dtp_tokenizer_16k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:2863a29b8952092740058fbb7898f210df9c20d796dc716afef3efcaccdf5a95
3
- size 504001
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4dceead38cfa328598cf6590d260b180e4c6e1336b1bac03196c98eef591678c
3
+ size 505828
models/tokenizer/dtp_tokenizer_16k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/dtp_tokenizer_32k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:412a430f2c94cb19c91aa212b6084bca872656a70e5b58d960a0fe0d507630eb
3
- size 773984
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ce8e0988abdbca791e274ed96ac8142860d79460547dc20c42086a9f4bcad0c7
3
+ size 778468
models/tokenizer/dtp_tokenizer_32k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/dtp_tokenizer_64k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:a568ec26551d4463e96d413d136b262ce05e01fe03c7dbc4eea0abb1033d0b59
3
- size 1342459
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1577ca3b5bdae4aa585e5bfbde482a04393b42570719d727347b14d03585fcbb
3
+ size 1355760
models/tokenizer/dtp_tokenizer_64k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/dtp_tokenizer_8k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:fcd5170a46936eba2d4f97ca832c95ea3722e47552200560b4f8b1ed1c9c1cac
3
- size 370293
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:36ea927a96c120c1ce16e6c009bfe36ff392efd27af725fc98db889699bee0cd
3
+ size 371878
models/tokenizer/dtp_tokenizer_8k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/vocabulary/dtp_vocabulary.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:beef90971c97587844d6f5c135be62bbe41b5c2c7b983bc121f0a5462757881d
3
- size 540408
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2a4f8129665d48c97d3572e4cf1c1a8caae33fbc15fa51f7acd50817c717b467
3
+ size 515055
models/vocabulary/dtp_vocabulary_metadata.json CHANGED
@@ -1,16 +1,17 @@
1
  {
2
  "language": "dtp",
3
- "vocabulary_size": 31869,
 
4
  "statistics": {
5
- "type_token_ratio": 0.09918250392954643,
6
  "coverage": {
7
- "top_100": 0.3756633851507016,
8
- "top_1000": 0.614794146918659,
9
- "top_5000": 0.79167763430024,
10
- "top_10000": 0.8552034214002974
11
  },
12
- "hapax_count": 47259,
13
- "hapax_ratio": 0.5972474977252047,
14
- "total_documents": 1926
15
  }
16
  }
 
1
  {
2
  "language": "dtp",
3
+ "vocabulary_size": 30571,
4
+ "variant": "full",
5
  "statistics": {
6
+ "type_token_ratio": 0.09374159982944757,
7
  "coverage": {
8
+ "top_100": 0.3939244669905574,
9
+ "top_1000": 0.626013482646158,
10
+ "top_5000": 0.8002378200009799,
11
+ "top_10000": 0.8636600180351248
12
  },
13
+ "hapax_count": 40222,
14
+ "hapax_ratio": 0.5681635189919907,
15
+ "total_documents": 1917
16
  }
17
  }
models/word_markov/dtp_markov_ctx1_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:ebe4ab1bbfc38f8ff2eb5c585129c66bc368d8f9a24070550e5ae8ddb87a2abd
3
- size 3083139
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6c316510488a25c381b09878d446683f932d124c72ec4c271448efba25a8baec
3
+ size 2874301
models/word_markov/dtp_markov_ctx1_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "dtp",
5
- "unique_contexts": 79291,
6
- "total_transitions": 967120
7
  }
 
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "dtp",
5
+ "unique_contexts": 70711,
6
+ "total_transitions": 753276
7
  }
models/word_markov/dtp_markov_ctx2_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:114a5ca2c5b0c7fdfb0d1addcc8dc599458316d5b6aa10441a3521b7f6af14dd
3
- size 7641242
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ab2f25e629b0080d735455721dd4e9dbe6ac21a644af6d9d1ec1918143c90f13
3
+ size 6945374
models/word_markov/dtp_markov_ctx2_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "dtp",
5
- "unique_contexts": 414760,
6
- "total_transitions": 965194
7
  }
 
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "dtp",
5
+ "unique_contexts": 388589,
6
+ "total_transitions": 751359
7
  }