omarkamali commited on
Commit
26849ea
·
verified ·
1 Parent(s): ae17765

Upload all models and assets for bew (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 +351 -134
  3. models/embeddings/aligned/bew_128d.bin +3 -0
  4. models/embeddings/aligned/bew_128d.meta.json +1 -0
  5. models/embeddings/aligned/bew_128d.projection.npy +3 -0
  6. models/embeddings/aligned/bew_128d_metadata.json +8 -0
  7. models/embeddings/aligned/bew_32d.bin +3 -0
  8. models/embeddings/aligned/bew_32d.meta.json +1 -0
  9. models/embeddings/aligned/bew_32d.projection.npy +3 -0
  10. models/embeddings/aligned/bew_32d_metadata.json +8 -0
  11. models/embeddings/aligned/bew_64d.bin +3 -0
  12. models/embeddings/aligned/bew_64d.meta.json +1 -0
  13. models/embeddings/aligned/bew_64d.projection.npy +3 -0
  14. models/embeddings/aligned/bew_64d_metadata.json +8 -0
  15. models/embeddings/monolingual/bew_128d.bin +2 -2
  16. models/embeddings/monolingual/bew_128d_metadata.json +5 -3
  17. models/embeddings/monolingual/bew_32d.bin +2 -2
  18. models/embeddings/monolingual/bew_32d_metadata.json +5 -3
  19. models/embeddings/monolingual/bew_64d.bin +2 -2
  20. models/embeddings/monolingual/bew_64d_metadata.json +5 -3
  21. models/subword_markov/bew_markov_ctx1_subword.parquet +2 -2
  22. models/subword_markov/bew_markov_ctx1_subword_metadata.json +2 -2
  23. models/subword_markov/bew_markov_ctx2_subword.parquet +2 -2
  24. models/subword_markov/bew_markov_ctx2_subword_metadata.json +2 -2
  25. models/subword_markov/bew_markov_ctx3_subword.parquet +2 -2
  26. models/subword_markov/bew_markov_ctx3_subword_metadata.json +2 -2
  27. models/subword_markov/bew_markov_ctx4_subword.parquet +2 -2
  28. models/subword_markov/bew_markov_ctx4_subword_metadata.json +2 -2
  29. models/subword_ngram/bew_2gram_subword.parquet +2 -2
  30. models/subword_ngram/bew_2gram_subword_metadata.json +2 -2
  31. models/subword_ngram/bew_3gram_subword.parquet +2 -2
  32. models/subword_ngram/bew_3gram_subword_metadata.json +2 -2
  33. models/subword_ngram/bew_4gram_subword.parquet +2 -2
  34. models/subword_ngram/bew_4gram_subword_metadata.json +2 -2
  35. models/subword_ngram/bew_5gram_subword.parquet +3 -0
  36. models/subword_ngram/bew_5gram_subword_metadata.json +7 -0
  37. models/tokenizer/bew_tokenizer_16k.model +2 -2
  38. models/tokenizer/bew_tokenizer_16k.vocab +0 -0
  39. models/tokenizer/bew_tokenizer_32k.model +2 -2
  40. models/tokenizer/bew_tokenizer_32k.vocab +0 -0
  41. models/tokenizer/bew_tokenizer_64k.model +2 -2
  42. models/tokenizer/bew_tokenizer_64k.vocab +0 -0
  43. models/tokenizer/bew_tokenizer_8k.model +2 -2
  44. models/tokenizer/bew_tokenizer_8k.vocab +0 -0
  45. models/vocabulary/bew_vocabulary.parquet +2 -2
  46. models/vocabulary/bew_vocabulary_metadata.json +10 -9
  47. models/word_markov/bew_markov_ctx1_word.parquet +2 -2
  48. models/word_markov/bew_markov_ctx1_word_metadata.json +2 -2
  49. models/word_markov/bew_markov_ctx2_word.parquet +2 -2
  50. models/word_markov/bew_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: bew
3
- language_name: BEW
4
  language_family: austronesian_malay
5
  tags:
6
  - wikilangs
@@ -10,11 +10,21 @@ tags:
10
  - n-gram
11
  - markov
12
  - wikipedia
 
 
 
 
 
 
 
 
 
 
13
  - monolingual
14
  - family-austronesian_malay
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.487
27
  - name: best_isotropy
28
  type: isotropy
29
- value: 0.7802
30
  - name: vocabulary_size
31
  type: vocab
32
- value: 18978
33
- generated: 2025-12-28
34
  ---
35
 
36
- # BEW - Wikilangs Models
37
  ## Comprehensive Research Report & Full Ablation Study
38
 
39
- This repository contains NLP models trained and evaluated by Wikilangs, specifically on **BEW** 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.702x | 3.68 | 0.1337% | 174,282 |
76
- | **16k** | 3.991x | 3.96 | 0.1441% | 161,647 |
77
- | **32k** | 4.245x | 4.22 | 0.1533% | 152,003 |
78
- | **64k** | 4.487x 🏆 | 4.46 | 0.1620% | 143,793 |
79
 
80
  ### Tokenization Examples
81
 
82
  Below are sample sentences tokenized with each vocabulary size:
83
 
84
- **Sample 1:** `Pondok Melati entu kecamatan nyang ada di Bekasi Kota. Ni kecamatan ngejenggar a...`
85
 
86
  | Vocab | Tokens | Count |
87
  |-------|--------|-------|
88
- | 8k | `▁pondokmelatientukecamatannyangada ▁dibekasikota . ... (+18 more)` | 28 |
89
- | 16k | `▁pondokmelatientukecamatannyangada ▁dibekasikota . ... (+18 more)` | 28 |
90
- | 32k | `▁pondokmelatientukecamatannyangada ▁dibekasikota . ... (+18 more)` | 28 |
91
- | 64k | `▁pondokmelatientukecamatannyangada ▁dibekasikota . ... (+18 more)` | 28 |
92
 
93
- **Sample 2:** `Tanah Sarèal entu kecamatan nyang ada di Bogor Kota. Ni kecamatan ngejenggar amp...`
94
 
95
  | Vocab | Tokens | Count |
96
  |-------|--------|-------|
97
- | 8k | `▁tanah ▁sar è al ▁entu ▁kecamatan ▁nyang ▁ada ▁di ▁bogor ... (+18 more)` | 28 |
98
- | 16k | `▁tanah ▁sar è al ▁entu ▁kecamatan ▁nyang ▁ada ▁di ▁bogor ... (+18 more)` | 28 |
99
- | 32k | `▁tanah ▁sarè al ▁entu ▁kecamatan ▁nyang ▁ada ▁di ▁bogor ▁kota ... (+17 more)` | 27 |
100
- | 64k | `▁tanahsarèal ▁entu ▁kecamatan ▁nyang ▁ada ▁di ▁bogor ▁kota . ... (+16 more)` | 26 |
101
 
102
- **Sample 3:** `Forum lingkar pena ielah`
103
 
104
  | Vocab | Tokens | Count |
105
  |-------|--------|-------|
106
- | 8k | `▁forumlingkarpenai elah` | 5 |
107
- | 16k | `▁forumlingkarpenaielah` | 4 |
108
- | 32k | `▁forumlingkarpenaielah` | 4 |
109
- | 64k | `▁forumlingkarpenaielah` | 4 |
110
 
111
 
112
  ### Key Findings
113
 
114
- - **Best Compression:** 64k achieves 4.487x compression
115
- - **Lowest UNK Rate:** 8k with 0.1337% 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** | 2,734 🏆 | 11.42 | 11,166 | 32.8% | 60.2% |
131
- | **2-gram** | 288 🏆 | 8.17 | 2,851 | 67.0% | 98.5% |
132
- | **3-gram** | 3,250 | 11.67 | 13,829 | 31.3% | 56.8% |
133
- | **3-gram** | 2,150 | 11.07 | 19,026 | 28.2% | 72.7% |
134
- | **4-gram** | 4,868 | 12.25 | 21,467 | 28.6% | 50.8% |
135
- | **4-gram** | 9,513 | 13.22 | 75,515 | 16.1% | 45.6% |
 
 
136
 
137
  ### Top 5 N-grams by Size
138
 
139
- **2-grams:**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
140
 
141
  | Rank | N-gram | Count |
142
  |------|--------|-------|
143
- | 1 | `gundul :` | 3,517 |
144
- | 2 | `category :` | 3,400 |
145
- | 3 | `( hurup` | 3,387 |
146
- | 4 | `arab gundul` | 3,312 |
147
- | 5 | `hurup arab` | 3,190 |
148
 
149
- **3-grams:**
150
 
151
  | Rank | N-gram | Count |
152
  |------|--------|-------|
153
- | 1 | `arab gundul :` | 3,306 |
154
- | 2 | `hurup arab gundul` | 3,176 |
155
- | 3 | `( hurup arab` | 3,132 |
156
- | 4 | `ruju ' an` | 2,848 |
157
- | 5 | `. ruju '` | 2,632 |
158
 
159
- **4-grams:**
160
 
161
  | Rank | N-gram | Count |
162
  |------|--------|-------|
163
- | 1 | `hurup arab gundul :` | 3,171 |
164
- | 2 | `( hurup arab gundul` | 3,124 |
165
- | 3 | `. ruju ' an` | 2,631 |
166
- | 4 | `' an category :` | 1,377 |
167
- | 5 | `ruju ' an category` | 1,375 |
168
 
169
 
170
  ### Key Findings
171
 
172
- - **Best Perplexity:** 2-gram with 288
173
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
174
- - **Coverage:** Top-1000 patterns cover ~46% 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.7488 | 1.680 | 4.84 | 43,321 | 25.1% |
189
- | **1** | 0.9960 | 1.994 | 6.07 | 1,469 | 0.4% |
190
- | **2** | 0.2696 | 1.205 | 1.61 | 209,140 | 73.0% |
191
- | **2** | 0.8519 | 1.805 | 4.62 | 8,912 | 14.8% |
192
- | **3** | 0.0871 | 1.062 | 1.16 | 336,473 | 91.3% |
193
- | **3** | 0.7791 | 1.716 | 3.44 | 41,145 | 22.1% |
194
- | **4** | 0.0352 🏆 | 1.025 | 1.07 | 389,729 | 96.5% |
195
- | **4** | 0.5441 🏆 | 1.458 | 2.28 | 141,337 | 45.6% |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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. `. barung nyang tinggal di awalnya ga tau - laèn - terusan . 15 agustus 1945`
204
- 2. `, jadinya orang / 347 sm , canada . ada punya waktu junior , sirilik :`
205
- 3. `: rectum , 3 taon ( uè ] ˤəʔ ( 2005 ) ièlah pahlawan nasional ,`
206
 
207
  **Context Size 2:**
208
 
209
- 1. `gundul : ارسخ ; basa katalan : espanya ; basa pin ama swèd , cuman enni kué`
210
- 2. `category : papua nugini category : kota di bilangan èropa kidul - wètan . ni basa bunyi`
211
- 3. `( hurup arab gundul : کبليک ) – ibukota ( indo . ) , atawa nyang seantéro`
212
 
213
  **Context Size 3:**
214
 
215
- 1. `arab gundul : ارلوجى کنتوڠ ) atawa horloji kantong ( hurup arab gundul : تورون بروء ) ièlah`
216
- 2. `hurup arab gundul : موبل بک ) atawa losbak ( hurup arab gundul : خرکف ; rus :`
217
- 3. `( hurup arab gundul : غزة ; arab : تشاد tsyād ) atawa resminya kiblik nigèr ( hurup`
218
 
219
  **Context Size 4:**
220
 
221
- 1. `hurup arab gundul : چلان ) entu pakéan luaran nyang nutupin pinggang ampé kekiongan , kadang cuman e...`
222
- 2. `( hurup arab gundul : ) atawa gedong lèr pèjèngan ( hurup arab gundul : ) entu kejadian cuaca`
223
- 3. `. ruju ' an sènggètan luar martunis sarbini di instagram martunis ronaldo di instagram martunis rona...`
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 (141,337 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 | 18,978 |
247
- | Total Tokens | 362,916 |
248
- | Mean Frequency | 19.12 |
249
  | Median Frequency | 4 |
250
- | Frequency Std Dev | 165.48 |
251
 
252
  ### Most Common Words
253
 
254
  | Rank | Word | Frequency |
255
  |------|------|-----------|
256
- | 1 | di | 10,336 |
257
- | 2 | nyang | 9,101 |
258
  | 3 | ama | 5,533 |
259
- | 4 | entu | 5,338 |
260
- | 5 | ada | 4,150 |
261
- | 6 | atawa | 3,974 |
262
  | 7 | ni | 3,950 |
263
- | 8 | orang | 3,897 |
264
- | 9 | punya | 3,836 |
265
- | 10 | hurup | 3,665 |
266
 
267
  ### Least Common Words (from vocabulary)
268
 
269
  | Rank | Word | Frequency |
270
  |------|------|-----------|
271
- | 1 | abi | 2 |
272
- | 2 | gelanggang | 2 |
273
- | 3 | | 2 |
274
- | 4 | writing | 2 |
275
- | 5 | syaamil | 2 |
276
- | 6 | fermentasi | 2 |
277
- | 7 | xl | 2 |
278
  | 8 | oase | 2 |
279
- | 9 | sos | 2 |
280
- | 10 | litt | 2 |
281
 
282
  ### Zipf's Law Analysis
283
 
284
  | Metric | Value |
285
  |--------|-------|
286
- | Zipf Coefficient | 1.0759 |
287
- | R² (Goodness of Fit) | 0.994882 |
288
  | Adherence Quality | **excellent** |
289
 
290
  ### Coverage Analysis
291
 
292
  | Top N Words | Coverage |
293
  |-------------|----------|
294
- | Top 100 | 41.4% |
295
- | Top 1,000 | 69.4% |
296
- | Top 5,000 | 87.6% |
297
- | Top 10,000 | 94.3% |
298
 
299
  ### Key Findings
300
 
301
- - **Zipf Compliance:** R²=0.9949 indicates excellent adherence to Zipf's law
302
- - **High Frequency Dominance:** Top 100 words cover 41.4% of corpus
303
- - **Long Tail:** 8,978 words needed for remaining 5.7% coverage
304
 
305
  ---
306
  ## 5. Word Embeddings Evaluation
@@ -313,24 +416,135 @@ 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** | 7,863 | 32 | 3.543 | 0.852 | 0.7802 🏆 |
321
- | **mono_64d** | 7,863 | 64 | 3.726 | 0.807 | 0.4496 |
322
- | **mono_128d** | 7,863 | 128 | 3.776 | 0.808 | 0.1049 |
323
- | **embeddings_enhanced** | 0 | 0 | 0.000 | 0.000 | 0.0000 |
 
 
 
 
 
 
 
 
 
 
 
324
 
325
  ### Key Findings
326
 
327
- - **Best Isotropy:** mono_32d with 0.7802 (more uniform distribution)
328
- - **Dimension Trade-off:** Higher dimensions capture more semantics but reduce isotropy
329
- - **Vocabulary Coverage:** All models cover 7,863 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 +552,12 @@ Below are text samples generated from each Markov chain model:
338
 
339
  | Component | Recommended | Rationale |
340
  |-----------|-------------|-----------|
341
- | Tokenizer | **32k BPE** | Best compression (4.49x) with low UNK rate |
342
- | N-gram | **5-gram** | Lowest perplexity (288) |
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 +747,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 +764,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-28 02:18:06*
 
1
  ---
2
  language: bew
3
+ language_name: Betawi
4
  language_family: austronesian_malay
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_malay
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.630
37
  - name: best_isotropy
38
  type: isotropy
39
+ value: 0.7504
40
  - name: vocabulary_size
41
  type: vocab
42
+ value: 0
43
+ generated: 2026-01-03
44
  ---
45
 
46
+ # Betawi - Wikilangs Models
47
  ## Comprehensive Research Report & Full Ablation Study
48
 
49
+ This repository contains NLP models trained and evaluated by Wikilangs, specifically on **Betawi** Wikipedia data.
50
  We analyze tokenizers, n-gram models, Markov chains, vocabulary statistics, and word embeddings.
51
 
52
  ## 📋 Repository Contents
 
54
  ### Models & Assets
55
 
56
  - Tokenizers (8k, 16k, 32k, 64k)
57
+ - N-gram models (2, 3, 4, 5-gram)
58
+ - Markov chains (context of 1, 2, 3, 4 and 5)
59
  - Subword N-gram and Markov chains
60
+ - Embeddings in various sizes and dimensions (aligned and unaligned)
61
  - Language Vocabulary
62
  - Language Statistics
63
+
64
  ![Performance Dashboard](visualizations/performance_dashboard.png)
65
 
66
  ### Analysis and Evaluation
 
70
  - [3. Markov Chain Evaluation](#3-markov-chain-evaluation)
71
  - [4. Vocabulary Analysis](#4-vocabulary-analysis)
72
  - [5. Word Embeddings Evaluation](#5-word-embeddings-evaluation)
73
+ - [6. Morphological Analysis (Experimental)](#6--morphological-analysis-experimental)
74
+ - [7. Summary & Recommendations](#7-summary--recommendations)
75
  - [Metrics Glossary](#appendix-metrics-glossary--interpretation-guide)
76
  - [Visualizations Index](#visualizations-index)
77
 
 
80
 
81
  ![Tokenizer Compression](visualizations/tokenizer_compression.png)
82
 
83
+ ![Tokenizer Fertility](visualizations/tokenizer_fertility.png)
84
+
85
+ ![Tokenizer OOV](visualizations/tokenizer_oov.png)
86
+
87
+ ![Total Tokens](visualizations/tokenizer_total_tokens.png)
88
+
89
  ### Results
90
 
91
  | Vocab Size | Compression | Avg Token Len | UNK Rate | Total Tokens |
92
  |------------|-------------|---------------|----------|--------------|
93
+ | **8k** | 3.806x | 3.81 | 0.1398% | 155,259 |
94
+ | **16k** | 4.118x | 4.13 | 0.1512% | 143,483 |
95
+ | **32k** | 4.386x | 4.39 | 0.1611% | 134,715 |
96
+ | **64k** | 4.630x 🏆 | 4.64 | 0.1700% | 127,635 |
97
 
98
  ### Tokenization Examples
99
 
100
  Below are sample sentences tokenized with each vocabulary size:
101
 
102
+ **Sample 1:** `D atawa hurup kecitnya d ya'entu hurup ke'ampat dalem hurup Latèn. Ruju'an Latèn`
103
 
104
  | Vocab | Tokens | Count |
105
  |-------|--------|-------|
106
+ | 8k | `▁datawahurupkecitnyadya ' entu hurupke ... (+11 more)` | 21 |
107
+ | 16k | `▁datawahurupkecitnyadya ' entu hurupke ... (+11 more)` | 21 |
108
+ | 32k | `▁datawahurupkecitnyadya ' entu hurupke ... (+10 more)` | 20 |
109
+ | 64k | `▁datawahurupkecitnyadya ' entu hurupke ... (+10 more)` | 20 |
110
 
111
+ **Sample 2:** `Karawaci entu kecamatan nyang ada di Tanggerang Kota. Ni kecamatan ngejenggar am...`
112
 
113
  | Vocab | Tokens | Count |
114
  |-------|--------|-------|
115
+ | 8k | `▁kara wa ci ▁entu ▁kecamatan ▁nyang ▁ada ▁di ▁tanggerang ▁kota ... (+17 more)` | 27 |
116
+ | 16k | `▁kara wa ci ▁entu ▁kecamatan ▁nyang ▁ada ▁di ▁tanggerang ▁kota ... (+17 more)` | 27 |
117
+ | 32k | `▁kara wa ci ▁entu ▁kecamatan ▁nyang ▁ada ▁di ▁tanggerang ▁kota ... (+17 more)` | 27 |
118
+ | 64k | `▁karawaci ▁entu ▁kecamatan ▁nyang ▁ada ▁di ▁tanggerang ▁kota . ▁ni ... (+15 more)` | 25 |
119
 
120
+ **Sample 3:** `Limo entu kecamatan nyang ada di Dèpok Kota, Jawa Kulon, Indonésia. Ni kecamatan...`
121
 
122
  | Vocab | Tokens | Count |
123
  |-------|--------|-------|
124
+ | 8k | `▁li mo entukecamatannyang ▁ada ▁di ▁dèpok ▁kota , ... (+21 more)` | 31 |
125
+ | 16k | `▁limoentukecamatannyang ▁ada ▁di ▁dèpok ▁kota , ▁jawa ... (+20 more)` | 30 |
126
+ | 32k | `▁limoentukecamatannyang ▁ada ▁di ▁dèpok ▁kota , ▁jawa ... (+20 more)` | 30 |
127
+ | 64k | `▁limoentukecamatannyang ▁ada ▁di ▁dèpok ▁kota , ▁jawa ... (+20 more)` | 30 |
128
 
129
 
130
  ### Key Findings
131
 
132
+ - **Best Compression:** 64k achieves 4.630x compression
133
+ - **Lowest UNK Rate:** 8k with 0.1398% 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 | 2,340 | 11.19 | 7,241 | 31.0% | 59.9% |
151
+ | **2-gram** | Subword | 256 🏆 | 8.00 | 2,508 | 70.0% | 98.9% |
152
+ | **3-gram** | Word | 1,985 | 10.95 | 6,755 | 33.8% | 62.9% |
153
+ | **3-gram** | Subword | 1,910 | 10.90 | 16,523 | 30.0% | 74.7% |
154
+ | **4-gram** | Word | 3,084 | 11.59 | 9,753 | 29.7% | 56.5% |
155
+ | **4-gram** | Subword | 8,721 | 13.09 | 66,990 | 16.6% | 46.5% |
156
+ | **5-gram** | Word | 1,919 | 10.91 | 5,996 | 33.6% | 65.3% |
157
+ | **5-gram** | Subword | 22,647 | 14.47 | 131,412 | 12.5% | 33.4% |
158
 
159
  ### Top 5 N-grams by Size
160
 
161
+ **2-grams (Word):**
162
+
163
+ | Rank | N-gram | Count |
164
+ |------|--------|-------|
165
+ | 1 | `arab gundul` | 3,312 |
166
+ | 2 | `hurup arab` | 3,190 |
167
+ | 3 | `ruju an` | 2,891 |
168
+ | 4 | `ada di` | 1,396 |
169
+ | 5 | `entu atu` | 1,364 |
170
+
171
+ **3-grams (Word):**
172
+
173
+ | Rank | N-gram | Count |
174
+ |------|--------|-------|
175
+ | 1 | `hurup arab gundul` | 3,176 |
176
+ | 2 | `nyang ada di` | 741 |
177
+ | 3 | `ruju an di` | 723 |
178
+ | 4 | `nyang tinggal di` | 641 |
179
+ | 5 | `tinggal di mari` | 614 |
180
+
181
+ **4-grams (Word):**
182
+
183
+ | Rank | N-gram | Count |
184
+ |------|--------|-------|
185
+ | 1 | `nyang tinggal di mari` | 609 |
186
+ | 2 | `orang nyang tinggal di` | 600 |
187
+ | 3 | `ruju an di indonésia` | 529 |
188
+ | 4 | `nyang ada di propinsi` | 509 |
189
+ | 5 | `km2 dengen kepadetan penduduknya` | 501 |
190
+
191
+ **5-grams (Word):**
192
+
193
+ | Rank | N-gram | Count |
194
+ |------|--------|-------|
195
+ | 1 | `orang nyang tinggal di mari` | 584 |
196
+ | 2 | `nyang tinggal di mari ruju` | 442 |
197
+ | 3 | `tinggal di mari ruju an` | 442 |
198
+ | 4 | `di mari ruju an di` | 440 |
199
+ | 5 | `mari ruju an di indonésia` | 438 |
200
+
201
+ **2-grams (Subword):**
202
+
203
+ | Rank | N-gram | Count |
204
+ |------|--------|-------|
205
+ | 1 | `a n` | 74,827 |
206
+ | 2 | `a _` | 60,507 |
207
+ | 3 | `n g` | 54,383 |
208
+ | 4 | `n _` | 46,937 |
209
+ | 5 | `_ a` | 35,570 |
210
+
211
+ **3-grams (Subword):**
212
 
213
  | Rank | N-gram | Count |
214
  |------|--------|-------|
215
+ | 1 | `n y a` | 27,185 |
216
+ | 2 | `a n g` | 25,765 |
217
+ | 3 | `n g _` | 25,518 |
218
+ | 4 | `a n _` | 24,856 |
219
+ | 5 | `_ d i` | 20,857 |
220
 
221
+ **4-grams (Subword):**
222
 
223
  | Rank | N-gram | Count |
224
  |------|--------|-------|
225
+ | 1 | `a n g _` | 17,737 |
226
+ | 2 | `n y a _` | 13,480 |
227
+ | 3 | `_ d i _` | 10,268 |
228
+ | 4 | `_ n y a` | 10,013 |
229
+ | 5 | `y a n g` | 9,660 |
230
 
231
+ **5-grams (Subword):**
232
 
233
  | Rank | N-gram | Count |
234
  |------|--------|-------|
235
+ | 1 | `y a n g _` | 9,531 |
236
+ | 2 | `_ n y a n` | 9,175 |
237
+ | 3 | `n y a n g` | 9,145 |
238
+ | 4 | `_ a m a _` | 5,520 |
239
+ | 5 | `e n t u _` | 5,202 |
240
 
241
 
242
  ### Key Findings
243
 
244
+ - **Best Perplexity:** 2-gram (subword) with 256
245
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
246
+ - **Coverage:** Top-1000 patterns cover ~33% 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.8296 | 1.777 | 4.87 | 41,205 | 17.0% |
263
+ | **1** | Subword | 0.7866 | 1.725 | 4.95 | 1,639 | 21.3% |
264
+ | **2** | Word | 0.2134 | 1.159 | 1.43 | 200,219 | 78.7% |
265
+ | **2** | Subword | 0.7991 | 1.740 | 4.40 | 8,105 | 20.1% |
266
+ | **3** | Word | 0.0565 | 1.040 | 1.10 | 285,266 | 94.3% |
267
+ | **3** | Subword | 0.7622 | 1.696 | 3.43 | 35,638 | 23.8% |
268
+ | **4** | Word | 0.0212 🏆 | 1.015 | 1.04 | 311,018 | 97.9% |
269
+ | **4** | Subword | 0.5570 | 1.471 | 2.34 | 122,163 | 44.3% |
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. `di mari per sènsus tahon wayah ada singa laut malah bulu tepok tepok bulu dènemarken juga`
278
+ 2. `nyang gocan berobah beneran gim kumpiuter hal ada 412 ama jadi dedengkot soldadu romèn hurup arap`
279
+ 3. `ama kemajuan èkonomi kecil bakal dipisahin deri prasman tchad arab gundul ايسيت ièlah orang nyang ad...`
280
+
281
+ **Context Size 2:**
282
+
283
+ 1. `arab gundul سورين entu tana rumput rata ada banyak bodoran tasawup nyang kenisbat ke dia punya anggu...`
284
+ 2. `hurup arab gundul دمفا indonésia herpes nyang pires dampa ringkes hsv ièlah atu bangunan dasaran nya...`
285
+ 3. `ruju an enclekan wikimédia jakarta`
286
+
287
+ **Context Size 3:**
288
+
289
+ 1. `hurup arab gundul عصر atawa sembayang asar hurup arab gundul فراولين di kaèdah basa entu penglakon d...`
290
+ 2. `nyang ada di propinsi jawa tenga ni kabupatèn punya sintrem guwernemèn ada di jailolo ni kabupatèn n...`
291
+ 3. `ruju an di indonésia tenga kota`
292
+
293
+ **Context Size 4:**
294
+
295
+ 1. `nyang tinggal di mari di indonésia tenga`
296
+ 2. `orang nyang tinggal di mari ruju an di indonésia kulon kota`
297
+ 3. `nyang ada di propinsi jawa tenga ni kabupatèn punya sintrem guwernemèn ada di pati ni kabupatèn ngej...`
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. `_t,_naèsa_(in_an`
307
+ 2. `ah_ha_n_psc_sèn,`
308
+ 3. `nalianyanngele-d`
309
 
310
  **Context Size 2:**
311
 
312
+ 1. `andanésin_nya_at.`
313
+ 2. `a_dongan_1_jen._d`
314
+ 3. `ng_bensia_or._ret`
315
 
316
  **Context Size 3:**
317
 
318
+ 1. `nya_ke_1:_6_ada_de`
319
+ 2. `ang))_atu_kulon_de`
320
+ 3. `ng_nya_punya,_kota`
321
 
322
  **Context Size 4:**
323
 
324
+ 1. `ang_damé_kalannya_b`
325
+ 2. `nya_design:top;padd`
326
+ 3. `_di_kota_lingking_k`
327
 
328
 
329
  ### Key Findings
330
 
331
+ - **Best Predictability:** Context-4 (word) with 97.9% predictability
332
  - **Branching Factor:** Decreases with context size (more deterministic)
333
+ - **Memory Trade-off:** Larger contexts require more storage (122,163 contexts)
334
  - **Recommendation:** Context-3 or Context-4 for text generation
335
 
336
  ---
 
346
 
347
  | Metric | Value |
348
  |--------|-------|
349
+ | Vocabulary Size | 18,200 |
350
+ | Total Tokens | 340,971 |
351
+ | Mean Frequency | 18.73 |
352
  | Median Frequency | 4 |
353
+ | Frequency Std Dev | 164.32 |
354
 
355
  ### Most Common Words
356
 
357
  | Rank | Word | Frequency |
358
  |------|------|-----------|
359
+ | 1 | di | 10,322 |
360
+ | 2 | nyang | 9,100 |
361
  | 3 | ama | 5,533 |
362
+ | 4 | entu | 5,337 |
363
+ | 5 | ada | 4,148 |
364
+ | 6 | atawa | 3,973 |
365
  | 7 | ni | 3,950 |
366
+ | 8 | punya | 3,836 |
367
+ | 9 | hurup | 3,638 |
368
+ | 10 | arab | 3,568 |
369
 
370
  ### Least Common Words (from vocabulary)
371
 
372
  | Rank | Word | Frequency |
373
  |------|------|-----------|
374
+ | 1 | kirinya | 2 |
375
+ | 2 | ngeloncat | 2 |
376
+ | 3 | abi | 2 |
377
+ | 4 | gelanggang | 2 |
378
+ | 5 | writing | 2 |
379
+ | 6 | syaamil | 2 |
380
+ | 7 | fermentasi | 2 |
381
  | 8 | oase | 2 |
382
+ | 9 | maimon | 2 |
383
+ | 10 | herawati | 2 |
384
 
385
  ### Zipf's Law Analysis
386
 
387
  | Metric | Value |
388
  |--------|-------|
389
+ | Zipf Coefficient | 1.0754 |
390
+ | R² (Goodness of Fit) | 0.994702 |
391
  | Adherence Quality | **excellent** |
392
 
393
  ### Coverage Analysis
394
 
395
  | Top N Words | Coverage |
396
  |-------------|----------|
397
+ | Top 100 | 41.8% |
398
+ | Top 1,000 | 69.7% |
399
+ | Top 5,000 | 87.8% |
400
+ | Top 10,000 | 94.6% |
401
 
402
  ### Key Findings
403
 
404
+ - **Zipf Compliance:** R²=0.9947 indicates excellent adherence to Zipf's law
405
+ - **High Frequency Dominance:** Top 100 words cover 41.8% of corpus
406
+ - **Long Tail:** 8,200 words needed for remaining 5.4% 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.7504 | 0.3662 | N/A | N/A |
432
+ | **mono_64d** | 64 | 0.4073 | 0.3304 | N/A | N/A |
433
+ | **mono_128d** | 128 | 0.0951 | 0.3259 | N/A | N/A |
434
+ | **aligned_32d** | 32 | 0.7504 🏆 | 0.3611 | 0.0280 | 0.1800 |
435
+ | **aligned_64d** | 64 | 0.4073 | 0.3298 | 0.0640 | 0.2540 |
436
+ | **aligned_128d** | 128 | 0.0951 | 0.3286 | 0.0840 | 0.2940 |
437
 
438
  ### Key Findings
439
 
440
+ - **Best Isotropy:** aligned_32d with 0.7504 (more uniform distribution)
441
+ - **Semantic Density:** Average pairwise similarity of 0.3404. Lower values indicate better semantic separation.
442
+ - **Alignment Quality:** Aligned models achieve up to 8.4% R@1 in cross-lingual retrieval.
443
+ - **Recommendation:** 128d aligned for best cross-lingual performance
444
 
445
  ---
446
+ ## 6. Morphological Analysis (Experimental)
447
+
448
+ This section presents an automated morphological analysis derived from the statistical divergence between word-level and subword-level models. By analyzing where subword predictability spikes and where word-level coverage fails, we can infer linguistic structures without supervised data.
449
+
450
+ ### 6.1 Productivity & Complexity
451
+
452
+ | Metric | Value | Interpretation | Recommendation |
453
+ |--------|-------|----------------|----------------|
454
+ | Productivity Index | **5.000** | High morphological productivity | Reliable analysis |
455
+ | Idiomaticity Gap | **0.957** | High formulaic/idiomatic content | - |
456
+
457
+ ### 6.2 Affix Inventory (Productive Units)
458
+
459
+ These are the most productive prefixes and suffixes identified by sampling the vocabulary for global substitutability patterns. A unit is considered an affix if stripping it leaves a valid stem that appears in other contexts.
460
+
461
+ #### Productive Prefixes
462
+ | Prefix | Examples |
463
+ |--------|----------|
464
+ | `-pe` | perinta, pernahkan, pengablagan |
465
+ | `-di` | dirangkèng, diplomat, dibelakonin |
466
+ | `-ke` | kepri, kerbala, kesannya |
467
+ | `-ng` | ngucap, ngelangsir, nglingkup |
468
+ | `-se` | secret, sejarah, sexual |
469
+
470
+ #### Productive Suffixes
471
+ | Suffix | Examples |
472
+ |--------|----------|
473
+ | `-n` | pernahkan, pengablagan, waringin |
474
+ | `-an` | pernahkan, pengablagan, tuan |
475
+ | `-a` | perinta, kakinya, udara |
476
+ | `-ya` | kakinya, bawaannya, kesannya |
477
+ | `-nya` | kakinya, bawaannya, kesannya |
478
+ | `-ng` | dirangkèng, peringgiorang, bambang |
479
+ | `-in` | waringin, lanjutin, ngusahain |
480
+
481
+ ### 6.3 Bound Stems (Lexical Roots)
482
+
483
+ 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.
484
+
485
+ | Stem | Cohesion | Substitutability | Examples |
486
+ |------|----------|------------------|----------|
487
+ | `anya` | 1.55x | 72 contexts | tanya, nanya, anyar |
488
+ | `ngan` | 1.63x | 52 contexts | ongan, ringan, dengan |
489
+ | `angg` | 1.48x | 64 contexts | kanggo, bangga, mangga |
490
+ | `aran` | 1.38x | 71 contexts | maran, saran, garan |
491
+ | `enga` | 1.61x | 36 contexts | senga, nenga, tenga |
492
+ | `anny` | 1.68x | 27 contexts | annya, umannya, ujannya |
493
+ | `unya` | 1.65x | 27 contexts | punya, baunya, atunya |
494
+ | `rang` | 1.32x | 60 contexts | orang, prang, urang |
495
+ | `inya` | 1.49x | 36 contexts | sinyal, minyak, arinya |
496
+ | `atan` | 1.50x | 32 contexts | yatan, alatan, muatan |
497
+ | `ling` | 1.41x | 40 contexts | aling, èling, beling |
498
+ | `enge` | 1.48x | 25 contexts | pengen, tengen, denger |
499
+
500
+ ### 6.4 Affix Compatibility (Co-occurrence)
501
+
502
+ This table shows which prefixes and suffixes most frequently co-occur on the same stems, revealing the 'stacking' rules of the language's morphology.
503
+
504
+ | Prefix | Suffix | Frequency | Examples |
505
+ |--------|--------|-----------|----------|
506
+ | `-pe` | `-n` | 250 words | pengrongrongan, penyatetan |
507
+ | `-pe` | `-an` | 238 words | pengrongrongan, penyatetan |
508
+ | `-di` | `-n` | 182 words | disebabin, dianyarin |
509
+ | `-ke` | `-n` | 180 words | kedoktoran, keaturan |
510
+ | `-di` | `-in` | 172 words | disebabin, dianyarin |
511
+ | `-ke` | `-an` | 167 words | kedoktoran, keaturan |
512
+ | `-ng` | `-n` | 145 words | ngirimin, ngatasin |
513
+ | `-ng` | `-in` | 140 words | ngirimin, ngatasin |
514
+ | `-se` | `-a` | 50 words | serba, seninya |
515
+ | `-pe` | `-a` | 47 words | pegihnja, perdananya |
516
+
517
+ ### 6.5 Recursive Morpheme Segmentation
518
+
519
+ Using **Recursive Hierarchical Substitutability**, we decompose complex words into their constituent morphemes. This approach handles nested affixes (e.g., `prefix-prefix-root-suffix`).
520
+
521
+ | Word | Suggested Split | Confidence | Stem |
522
+ |------|-----------------|------------|------|
523
+ | pengucapannya | **`pe-ng-ucap-an-nya`** | 9.0 | `ucap` |
524
+ | kesaktiannya | **`ke-sakti-an-nya`** | 7.5 | `sakti` |
525
+ | pengujungan | **`pe-ng-ujung-an`** | 7.5 | `ujung` |
526
+ | dibilangin | **`di-bila-ng-in`** | 7.5 | `bila` |
527
+ | pengrobahan | **`pe-ng-robah-an`** | 7.5 | `robah` |
528
+ | kedaulatannya | **`ke-daulat-an-nya`** | 7.5 | `daulat` |
529
+ | penggapaan | **`pe-ng-gapa-an`** | 7.5 | `gapa` |
530
+ | diterjemahinnya | **`di-terjemah-in-nya`** | 7.5 | `terjemah` |
531
+ | penggawéan | **`pe-ng-gawé-an`** | 7.5 | `gawé` |
532
+ | sampingannya | **`sampi-ng-an-nya`** | 7.5 | `sampi` |
533
+ | kebanyakannya | **`ke-banyak-an-nya`** | 7.5 | `banyak` |
534
+ | dilindungin | **`di-lindu-ng-in`** | 7.5 | `lindu` |
535
+ | dikeringin | **`di-ke-ring-in`** | 7.5 | `ring` |
536
+ | kebalikannya | **`ke-balik-an-nya`** | 7.5 | `balik` |
537
+ | dimaèninnya | **`di-maèn-in-nya`** | 7.5 | `maèn` |
538
+
539
+ ### 6.6 Linguistic Interpretation
540
+
541
+ > **Automated Insight:**
542
+ The language Betawi shows high morphological productivity. The subword models are significantly more efficient than word models, suggesting a rich system of affixation or compounding.
543
+
544
+ > **Note on Idiomaticity:** The high Idiomaticity Gap suggests a large number of frequent multi-word expressions or formulaic sequences that are statistically distinct from their component parts.
545
+
546
+ ---
547
+ ## 7. Summary & Recommendations
548
 
549
  ![Performance Dashboard](visualizations/performance_dashboard.png)
550
 
 
552
 
553
  | Component | Recommended | Rationale |
554
  |-----------|-------------|-----------|
555
+ | Tokenizer | **64k BPE** | Best compression (4.63x) |
556
+ | N-gram | **2-gram** | Lowest perplexity (256) |
557
+ | Markov | **Context-4** | Highest predictability (97.9%) |
558
  | Embeddings | **100d** | Balanced semantic capture and isotropy |
559
 
560
+
561
  ---
562
  ## Appendix: Metrics Glossary & Interpretation Guide
563
 
 
747
  author = {Kamali, Omar},
748
  title = {Wikilangs: Open NLP Models for Wikipedia Languages},
749
  year = {2025},
750
+ doi = {10.5281/zenodo.18073153},
751
+ publisher = {Zenodo},
752
  url = {https://huggingface.co/wikilangs}
753
  institution = {Omneity Labs}
754
  }
 
764
  - 🤗 Models: [huggingface.co/wikilangs](https://huggingface.co/wikilangs)
765
  - 📊 Data: [wikipedia-monthly](https://huggingface.co/datasets/omarkamali/wikipedia-monthly)
766
  - 👤 Author: [Omar Kamali](https://huggingface.co/omarkamali)
767
+ - 🤝 Sponsor: [Featherless AI](https://featherless.ai)
768
  ---
769
  *Generated by Wikilangs Models Pipeline*
770
 
771
+ *Report Date: 2026-01-03 18:42:18*
models/embeddings/aligned/bew_128d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9881405c6bfd25fab285c52fa84cf61230a22dac3d029ea903cc4ee51de74cba
3
+ size 1031749150
models/embeddings/aligned/bew_128d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "bew", "dim": 128, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/bew_128d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5519fed88c0737dd92d5bfc338bdbac65a2f0249a74858399da99b311ee0f2c7
3
+ size 65664
models/embeddings/aligned/bew_128d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "bew",
3
+ "dimension": 128,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 1788,
7
+ "vocab_size": 7447
8
+ }
models/embeddings/aligned/bew_32d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f67005fdd1a646c4cab4fa8d00ad418d61e5a5997909d2692a20c93d633cb841
3
+ size 258029854
models/embeddings/aligned/bew_32d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "bew", "dim": 32, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/bew_32d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ce5dbde517db0b8f575eab1a3274aa737c012b45efddf2d0cb442f0096ca53f9
3
+ size 4224
models/embeddings/aligned/bew_32d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "bew",
3
+ "dimension": 32,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 1788,
7
+ "vocab_size": 7447
8
+ }
models/embeddings/aligned/bew_64d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b670eafad8c7deffbf21fdecd6fbcfc67b702800b97e90a03d7daeed98bc4c86
3
+ size 515936286
models/embeddings/aligned/bew_64d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "bew", "dim": 64, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/bew_64d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ead9f472665f5a35d4374f24109e31f8ae69eb5bc410acf7dd40645aa7d82058
3
+ size 16512
models/embeddings/aligned/bew_64d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "bew",
3
+ "dimension": 64,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 1788,
7
+ "vocab_size": 7447
8
+ }
models/embeddings/monolingual/bew_128d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:4335b040a535b0bd154cb31255037f3ed12d90b8411695a2d0d4ad1728d4dc87
3
- size 1032183649
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9881405c6bfd25fab285c52fa84cf61230a22dac3d029ea903cc4ee51de74cba
3
+ size 1031749150
models/embeddings/monolingual/bew_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": 7863
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": 7447
15
  }
models/embeddings/monolingual/bew_32d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:b2244ac75f23113c3ac11f29736e5e29c03b5e1e667fd5fd810422aa4e47da53
3
- size 258144865
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f67005fdd1a646c4cab4fa8d00ad418d61e5a5997909d2692a20c93d633cb841
3
+ size 258029854
models/embeddings/monolingual/bew_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": 7863
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": 7447
15
  }
models/embeddings/monolingual/bew_64d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:f38e536291d4ea1e5f53da361e36edb36a40a0edd8714d2da36cec0726e5b622
3
- size 516157793
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b670eafad8c7deffbf21fdecd6fbcfc67b702800b97e90a03d7daeed98bc4c86
3
+ size 515936286
models/embeddings/monolingual/bew_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": 7863
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": 7447
15
  }
models/subword_markov/bew_markov_ctx1_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:4bf262c92b34ec5661d8db620bc74ff3485373c52fa29ff8c7d2422a8136da30
3
- size 73122
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:98e08c1e594701e44db187b0fea8553c31c5a2650d4d0337143ba0582a13e1ca
3
+ size 70953
models/subword_markov/bew_markov_ctx1_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 1,
3
  "variant": "subword",
4
  "language": "bew",
5
- "unique_contexts": 1469,
6
- "total_transitions": 2526460
7
  }
 
2
  "context_size": 1,
3
  "variant": "subword",
4
  "language": "bew",
5
+ "unique_contexts": 1639,
6
+ "total_transitions": 2342625
7
  }
models/subword_markov/bew_markov_ctx2_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c6554a7de4144be71a218ddddea00779aef61fc58f934c3f0191ca8c80355c2f
3
- size 335416
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4579f280f945c8d062a950e4547166bf9a03594c2a3e93d696e59797932a621c
3
+ size 304212
models/subword_markov/bew_markov_ctx2_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "bew",
5
- "unique_contexts": 8912,
6
- "total_transitions": 2523179
7
  }
 
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "bew",
5
+ "unique_contexts": 8105,
6
+ "total_transitions": 2339359
7
  }
models/subword_markov/bew_markov_ctx3_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:11737a41163ad2d3dc78a88b3374643f4ab61b54f3acdd192526ea1a5ee7772c
3
- size 1094363
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:98d72ab60b36827a0a2b03c0c604a02995c15de295a4b1f22e82b397b00b5c98
3
+ size 1011297
models/subword_markov/bew_markov_ctx3_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "bew",
5
- "unique_contexts": 41145,
6
- "total_transitions": 2519898
7
  }
 
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "bew",
5
+ "unique_contexts": 35638,
6
+ "total_transitions": 2336093
7
  }
models/subword_markov/bew_markov_ctx4_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:16cda91fbc05488cedf0da6299c8e562dc38d26e9a3e36cfcdc4dd6d72338234
3
- size 2664959
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:95ce2e7159b07b510279d2f42cb887b6e954dbaa740353c41154c042acb3c581
3
+ size 2374737
models/subword_markov/bew_markov_ctx4_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "bew",
5
- "unique_contexts": 141337,
6
- "total_transitions": 2516617
7
  }
 
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "bew",
5
+ "unique_contexts": 122163,
6
+ "total_transitions": 2332827
7
  }
models/subword_ngram/bew_2gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:3d11f42c7b2a133d183fa06b571114f5938df285f4b5141918f3b5efff0030d2
3
- size 38137
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5ed7a952fda6cd541de7eb0fd299625ce2b2758acc46e83c0cf659623b3f8210
3
+ size 34201
models/subword_ngram/bew_2gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "bew",
5
- "unique_ngrams": 2851,
6
- "total_ngrams": 2526460
7
  }
 
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "bew",
5
+ "unique_ngrams": 2508,
6
+ "total_ngrams": 2342625
7
  }
models/subword_ngram/bew_3gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:48279f1d7817a148fc1255e0da6f55d1433148f1da9d1236709123c496ee8de8
3
- size 234049
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:32b6c8714320f69bc8c5628d36482d0fc33c07d286f7c781527b80ff7ad46427
3
+ size 204005
models/subword_ngram/bew_3gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "bew",
5
- "unique_ngrams": 19026,
6
- "total_ngrams": 2523179
7
  }
 
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "bew",
5
+ "unique_ngrams": 16523,
6
+ "total_ngrams": 2339359
7
  }
models/subword_ngram/bew_4gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:258a4beb45713e7bf934e170923447b31b46b1ce23f58937f21f56f082969f23
3
- size 897268
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:7604977f0b6c74871c004a352f1b6a38b2b0c0dfe4669c2f04692fe90d47058e
3
+ size 803376
models/subword_ngram/bew_4gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "bew",
5
- "unique_ngrams": 75515,
6
- "total_ngrams": 2519898
7
  }
 
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "bew",
5
+ "unique_ngrams": 66990,
6
+ "total_ngrams": 2336093
7
  }
models/subword_ngram/bew_5gram_subword.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:642ccf861ef9688b285f4e80a179ee2d4d8dcfc320fb75b9c40c8360290d656f
3
+ size 1537086
models/subword_ngram/bew_5gram_subword_metadata.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "n": 5,
3
+ "variant": "subword",
4
+ "language": "bew",
5
+ "unique_ngrams": 131412,
6
+ "total_ngrams": 2332827
7
+ }
models/tokenizer/bew_tokenizer_16k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:f3a1b400084e8023377501b802845cb1cf711d79ac5febd723de2b21cb129d8e
3
- size 503204
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:242306074b42b2731865a15cce9984d5736ffc4699031020f06258b35683a505
3
+ size 503923
models/tokenizer/bew_tokenizer_16k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/bew_tokenizer_32k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e6232b0f1128785af7cc902e6ccd07e21b7b7b98c247d8d99404f7ad262866c1
3
- size 778728
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f9d4671fd36fd9b2ae145e0c81261494d435e4e3cacaa1d36f58cd1339019da7
3
+ size 790627
models/tokenizer/bew_tokenizer_32k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/bew_tokenizer_64k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:5a43c4038dd4030c982e33b34e05748d9a148f335d8f2efba64b7c0538588aed
3
- size 1366171
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:99529365e2fc0dea414cae1cb7b20c351b8b62bccfe760eb5cda6c45d59e7f9b
3
+ size 1375287
models/tokenizer/bew_tokenizer_64k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/bew_tokenizer_8k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:ef7e45246fddc1dfe48d9fe97af9c3c7abf4c75cfebb0b0038e553937f8383e4
3
- size 369839
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b81e52a146ace8aa44a481f72860065a471fff3ef540cf10543aa2199e9b3adc
3
+ size 370756
models/tokenizer/bew_tokenizer_8k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/vocabulary/bew_vocabulary.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:5ee57d5cd1890a06d6b99c4a39ea33a34f0319ef69950667ae5e96b854e97e04
3
- size 319583
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:5fd039d507b57eb1e51b460f430b589898d9ee658bab288f4ad42ec5ce251291
3
+ size 302381
models/vocabulary/bew_vocabulary_metadata.json CHANGED
@@ -1,16 +1,17 @@
1
  {
2
  "language": "bew",
3
- "vocabulary_size": 18978,
 
4
  "statistics": {
5
- "type_token_ratio": 0.11140219657569815,
6
  "coverage": {
7
- "top_100": 0.38824255858956175,
8
- "top_1000": 0.6505553445616538,
9
- "top_5000": 0.8214500706614272,
10
- "top_10000": 0.884600976083626
11
  },
12
- "hapax_count": 24141,
13
- "hapax_ratio": 0.5598691991929312,
14
- "total_documents": 3281
15
  }
16
  }
 
1
  {
2
  "language": "bew",
3
+ "vocabulary_size": 18200,
4
+ "variant": "full",
5
  "statistics": {
6
+ "type_token_ratio": 0.11326404742870173,
7
  "coverage": {
8
+ "top_100": 0.39197635158338345,
9
+ "top_1000": 0.6524853090255742,
10
+ "top_5000": 0.8229033596246144,
11
+ "top_10000": 0.8861755114711853
12
  },
13
+ "hapax_count": 23028,
14
+ "hapax_ratio": 0.5585524400892597,
15
+ "total_documents": 3266
16
  }
17
  }
models/word_markov/bew_markov_ctx1_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:3cdf9da068448c4bfbde696835827ac01e4a769c1ec6964ab6bd9945242f7276
3
- size 1573718
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:28749251ec198ef4ee8281befd0e291dcce482af6e56b0be6a53fc1d3f27fc49
3
+ size 1479085
models/word_markov/bew_markov_ctx1_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "bew",
5
- "unique_contexts": 43321,
6
- "total_transitions": 502833
7
  }
 
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "bew",
5
+ "unique_contexts": 41205,
6
+ "total_transitions": 360733
7
  }
models/word_markov/bew_markov_ctx2_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:f8057ab45a27f71e7f400d4c915c286a5afb7564f853cbd23531ee51ffb80882
3
- size 3691116
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a3505b2a73a013428ef6bceab4903f229062658d5b028c5aa86346e9466b035c
3
+ size 3470528
models/word_markov/bew_markov_ctx2_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "bew",
5
- "unique_contexts": 209140,
6
- "total_transitions": 499553
7
  }
 
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "bew",
5
+ "unique_contexts": 200219,
6
+ "total_transitions": 357467
7
  }