omarkamali commited on
Commit
6198255
·
verified ·
1 Parent(s): dfbee1f

Upload all models and assets for cu (20251001)

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. README.md +306 -135
  2. models/embeddings/monolingual/cu_128d.bin +2 -2
  3. models/embeddings/monolingual/cu_128d_metadata.json +5 -3
  4. models/embeddings/monolingual/cu_32d.bin +2 -2
  5. models/embeddings/monolingual/cu_32d_metadata.json +5 -3
  6. models/embeddings/monolingual/cu_64d.bin +2 -2
  7. models/embeddings/monolingual/cu_64d_metadata.json +5 -3
  8. models/subword_markov/cu_markov_ctx1_subword.parquet +2 -2
  9. models/subword_markov/cu_markov_ctx1_subword_metadata.json +2 -2
  10. models/subword_markov/cu_markov_ctx2_subword.parquet +2 -2
  11. models/subword_markov/cu_markov_ctx2_subword_metadata.json +2 -2
  12. models/subword_markov/cu_markov_ctx3_subword.parquet +2 -2
  13. models/subword_markov/cu_markov_ctx3_subword_metadata.json +2 -2
  14. models/subword_markov/cu_markov_ctx4_subword.parquet +2 -2
  15. models/subword_markov/cu_markov_ctx4_subword_metadata.json +2 -2
  16. models/subword_ngram/cu_2gram_subword.parquet +2 -2
  17. models/subword_ngram/cu_2gram_subword_metadata.json +2 -2
  18. models/subword_ngram/cu_3gram_subword.parquet +2 -2
  19. models/subword_ngram/cu_3gram_subword_metadata.json +2 -2
  20. models/subword_ngram/cu_4gram_subword.parquet +2 -2
  21. models/subword_ngram/cu_4gram_subword_metadata.json +2 -2
  22. models/tokenizer/cu_tokenizer_16k.model +2 -2
  23. models/tokenizer/cu_tokenizer_16k.vocab +0 -0
  24. models/tokenizer/cu_tokenizer_32k.model +2 -2
  25. models/tokenizer/cu_tokenizer_32k.vocab +0 -0
  26. models/tokenizer/cu_tokenizer_8k.model +2 -2
  27. models/tokenizer/cu_tokenizer_8k.vocab +0 -0
  28. models/vocabulary/cu_vocabulary.parquet +2 -2
  29. models/vocabulary/cu_vocabulary_metadata.json +10 -9
  30. models/word_markov/cu_markov_ctx1_word.parquet +2 -2
  31. models/word_markov/cu_markov_ctx1_word_metadata.json +2 -2
  32. models/word_markov/cu_markov_ctx2_word.parquet +2 -2
  33. models/word_markov/cu_markov_ctx2_word_metadata.json +2 -2
  34. models/word_markov/cu_markov_ctx3_word.parquet +2 -2
  35. models/word_markov/cu_markov_ctx3_word_metadata.json +2 -2
  36. models/word_markov/cu_markov_ctx4_word.parquet +2 -2
  37. models/word_markov/cu_markov_ctx4_word_metadata.json +2 -2
  38. models/word_ngram/cu_2gram_word.parquet +2 -2
  39. models/word_ngram/cu_2gram_word_metadata.json +2 -2
  40. models/word_ngram/cu_3gram_word.parquet +2 -2
  41. models/word_ngram/cu_3gram_word_metadata.json +2 -2
  42. models/word_ngram/cu_4gram_word.parquet +2 -2
  43. models/word_ngram/cu_4gram_word_metadata.json +2 -2
  44. visualizations/embedding_isotropy.png +0 -0
  45. visualizations/embedding_norms.png +0 -0
  46. visualizations/embedding_similarity.png +2 -2
  47. visualizations/markov_branching.png +0 -0
  48. visualizations/markov_contexts.png +0 -0
  49. visualizations/markov_entropy.png +0 -0
  50. visualizations/model_sizes.png +0 -0
README.md CHANGED
@@ -23,14 +23,14 @@ dataset_info:
23
  metrics:
24
  - name: best_compression_ratio
25
  type: compression
26
- value: 4.593
27
  - name: best_isotropy
28
  type: isotropy
29
- value: 0.3160
30
  - name: vocabulary_size
31
  type: vocab
32
- value: 6898
33
- generated: 2025-12-29
34
  ---
35
 
36
  # CU - Wikilangs Models
@@ -44,12 +44,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 +60,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,54 +70,53 @@ 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.548x | 3.47 | 0.1382% | 136,059 |
76
- | **16k** | 3.988x | 3.90 | 0.1553% | 121,055 |
77
- | **32k** | 4.435x | 4.34 | 0.1727% | 108,853 |
78
- | **64k** | 4.593x 🏆 | 4.49 | 0.1789% | 105,095 |
79
 
80
  ### Tokenization Examples
81
 
82
  Below are sample sentences tokenized with each vocabulary size:
83
 
84
- **Sample 1:** `thumb
85
- Ꙙ (имѧ ꙁатворѥнъ малъ юсъ или ѥнь) словѣньскаѥго ѩꙁꙑка боукꙑ ѥстъ
86
-
87
- Катигор...`
88
 
89
  | Vocab | Tokens | Count |
90
  |-------|--------|-------|
91
- | 8k | `▁thumb ▁ ▁( имѧ ▁ꙁа творѥ нъ ▁малъ ▁ю ... (+19 more)` | 29 |
92
- | 16k | `▁thumb ▁ ▁( имѧ ▁ꙁа творѥ нъ ▁малъ ▁юсъ ... (+18 more)` | 28 |
93
- | 32k | `▁thumb ▁ꙙ ▁( имѧ ▁ꙁатворѥнъ ▁малъ ▁юсъ ▁или ▁ѥнь ) ... (+14 more)` | 24 |
94
- | 64k | `▁thumb ▁ꙙ ▁( имѧ ▁ꙁатворѥнъ ▁малъ ▁юсъ ▁или ▁ѥнь ) ... (+14 more)` | 24 |
95
 
96
- **Sample 2:** `Илїѥ и · ꙁнакъ He · аєрїо ѥстъ ⁙ Ѥгожє число въ пєрїодичьсцѣ сѷстимѣ 2 ѥстъ ⁙ А...`
97
 
98
  | Vocab | Tokens | Count |
99
  |-------|--------|-------|
100
- | 8k | `▁и лїѥ ▁и ▁· ▁ꙁнакъ ▁h e ▁· ▁ає рїо ... (+26 more)` | 36 |
101
- | 16k | `▁илїѥ ▁и ▁· ▁ꙁнакъ ▁he ▁· ▁ає рїо ▁ѥстъ ▁⁙ ... (+24 more)` | 34 |
102
- | 32k | `▁илїѥ ▁и ▁· ▁ꙁнакъ ▁he ▁· ▁аєрїо ▁ѥстъ ▁⁙ ▁ѥгожє ... (+23 more)` | 33 |
103
- | 64k | `▁илїѥ ▁и ▁· ▁ꙁнакъ ▁he ▁· ▁аєрїо ▁ѥстъ ▁⁙ ▁ѥгожє ... (+23 more)` | 33 |
104
 
105
- **Sample 3:** `Ха́сково () Блъгарі́ѩ Ха́сковьскꙑ области гла́вьнъ гра́дъ ѥ́стъ. Люди́и обита́ѥт...`
106
 
107
  | Vocab | Tokens | Count |
108
  |-------|--------|-------|
109
- | 8k | `▁ха ́ ск ово ▁() ▁блъгарі́ѩ ▁ха ́ ск овьскꙑ ... (+14 more)` | 24 |
110
- | 16k | `▁ха́ск ово ▁() ▁блъгарі́ѩ ▁ха́ск овьскꙑ ▁области ▁гла́вьнъ ▁гра́дъ ▁ѥ́стъ ... (+10 more)` | 20 |
111
- | 32k | `▁ха́ск ово ▁() ▁блъгарі́ѩ ▁ха́ск овьскꙑ ▁области ▁гла́вьнъ ▁гра́дъ ▁ѥ́стъ ... (+10 more)` | 20 |
112
- | 64k | `▁ха́сково ▁() ▁блъгарі́ѩ ▁ха́сковьскꙑ ▁области ▁гла́вьнъ ▁гра́дъ ▁ѥ́стъ . ▁люди́и ... (+8 more)` | 18 |
113
 
114
 
115
  ### Key Findings
116
 
117
- - **Best Compression:** 64k achieves 4.593x compression
118
- - **Lowest UNK Rate:** 8k with 0.1382% unknown tokens
119
  - **Trade-off:** Larger vocabularies improve compression but increase model size
120
  - **Recommendation:** 32k vocabulary provides optimal balance for production use
121
 
@@ -124,57 +125,89 @@ Below are sample sentences tokenized with each vocabulary size:
124
 
125
  ![N-gram Perplexity](visualizations/ngram_perplexity.png)
126
 
 
 
127
  ![N-gram Coverage](visualizations/ngram_coverage.png)
128
 
129
  ### Results
130
 
131
- | N-gram | Perplexity | Entropy | Unique N-grams | Top-100 Coverage | Top-1000 Coverage |
132
- |--------|------------|---------|----------------|------------------|-------------------|
133
- | **2-gram** | 1,147 🏆 | 10.16 | 2,704 | 35.7% | 76.6% |
134
- | **2-gram** | 544 🏆 | 9.09 | 3,037 | 52.6% | 93.9% |
135
- | **3-gram** | 1,920 | 10.91 | 3,713 | 28.5% | 66.1% |
136
- | **3-gram** | 3,142 | 11.62 | 14,844 | 24.1% | 63.9% |
137
- | **4-gram** | 3,217 | 11.65 | 6,299 | 23.2% | 54.0% |
138
- | **4-gram** | 9,292 | 13.18 | 39,612 | 16.1% | 43.7% |
139
 
140
  ### Top 5 N-grams by Size
141
 
142
- **2-grams:**
143
 
144
  | Rank | N-gram | Count |
145
  |------|--------|-------|
146
- | 1 | `катигорїꙗ :` | 1,702 |
147
- | 2 | `ѥстъ ⁙` | 1,213 |
148
- | 3 | ·` | 712 |
149
- | 4 | `ꙁьри такождє` | 432 |
150
- | 5 | `ѥстъ ·` | 367 |
151
 
152
- **3-grams:**
153
 
154
  | Rank | N-gram | Count |
155
  |------|--------|-------|
156
- | 1 | `- 2 :` | 247 |
157
- | 2 | `3166 - 2` | 247 |
158
- | 3 | `⁙ людии обитаѥтъ` | 228 |
159
- | 4 | `ѥстъ людии` | 226 |
160
- | 5 | `катигорїꙗ : повѣтъ` | 203 |
161
 
162
- **4-grams:**
163
 
164
  | Rank | N-gram | Count |
165
  |------|--------|-------|
166
- | 1 | `3166 - 2 :` | 247 |
167
- | 2 | `ѥстъ людии обитаѥтъ` | 173 |
168
- | 3 | `въ дрьжавѣ бѣла роусь` | 120 |
169
- | 4 | ́ стъ ⁙` | 117 |
170
- | 5 | `оудѣлъ въ дрьжавѣ бѣла` | 114 |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
171
 
172
 
173
  ### Key Findings
174
 
175
- - **Best Perplexity:** 2-gram with 544
176
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
177
- - **Coverage:** Top-1000 patterns cover ~44% of corpus
178
  - **Recommendation:** 4-gram or 5-gram for best predictive performance
179
 
180
  ---
@@ -182,55 +215,86 @@ Below are sample sentences tokenized with each vocabulary size:
182
 
183
  ![Markov Entropy](visualizations/markov_entropy.png)
184
 
 
 
185
  ![Markov Branching](visualizations/markov_branching.png)
186
 
187
  ### Results
188
 
189
- | Context | Avg Entropy | Perplexity | Branching Factor | Unique Contexts | Predictability |
190
- |---------|-------------|------------|------------------|-----------------|----------------|
191
- | **1** | 0.4597 | 1.375 | 2.91 | 20,872 | 54.0% |
192
- | **1** | 1.1094 | 2.158 | 8.69 | 991 | 0.0% |
193
- | **2** | 0.1521 | 1.111 | 1.33 | 60,436 | 84.8% |
194
- | **2** | 0.8922 | 1.856 | 4.49 | 8,609 | 10.8% |
195
- | **3** | 0.0670 | 1.048 | 1.12 | 80,298 | 93.3% |
196
- | **3** | 0.5843 | 1.499 | 2.46 | 38,630 | 41.6% |
197
- | **4** | 0.0320 🏆 | 1.022 | 1.05 | 89,220 | 96.8% |
198
- | **4** | 0.3376 🏆 | 1.264 | 1.67 | 95,077 | 66.2% |
199
 
200
- ### Generated Text Samples
201
 
202
- Below are text samples generated from each Markov chain model:
203
 
204
  **Context Size 1:**
205
 
206
- 1. нарицаѥми словѣньскꙑ ѩꙁꙑкꙑ єѵрѡпѣ тъкъмо господь богъ ѥстъ ꙁьданъ ѥстъ ѥгда їѡаннъ сраѯимиръ`
207
- 2. `⁙ бєꙁъ иꙁлѣвоу сѣмєнє ѥстъ a | | 33x22px тєѯасъ border 45x45px 39 эв − 1`
208
- 3. ( 466 , 342 оуранъ и 395 2 : бєрєстєйскаѧ · органїсма и ·`
209
 
210
  **Context Size 2:**
211
 
212
- 1. `катигорїꙗ : повѣтъ имаѥтъ оурѧдъ рѣкомъ сєльскъ съвѣтъ : катигорїꙗ : блъгарїꙗ катигорїꙗ : повѣтъ мѣн...`
213
- 2. `ѥстъ боукъвъ рѧдъ данъ съгласьно съ юникода осьмꙑимь ( 8 , 2 ꙁьри ́ та по`
214
- 3. · ѯнѯѯ : ащє виждитє бингъ блѫдо · община єси блѫдописьплоцевы чын і яго апісаньне ·`
215
 
216
  **Context Size 3:**
217
 
218
- 1. `3166 - 2 : mc 496mngmniso 3166 - 2 : qa 404kenkeiso 3166 - 2 : so 736sdnsdiso`
219
- 2. `- 2 : fo 242fjifjiso 3166 - 2 : ml 581umiumiso 3166 - 2 : gg 300grcgriso 3166`
220
- 3. `⁙ людии обитаѥтъ 1299 000 єпїсимьнъ оукраиньскъ ѩꙁꙑкъ ѥстъ людиѥ лѣ ́ та ѥ ́ стъ ⁙`
221
 
222
  **Context Size 4:**
223
 
224
- 1. `3166 - 2 : tn 795tkmtmiso 3166 - 2 : lt 438lieliiso 3166 - 2 : nz 540nclnciso 3166`
225
- 2. `ѥстъ людии обитаѥтъ 55 997 ( 2011 ) " δείτε τη διοικητική διαίρεση " ꙁьри такождє катєрїни мєждоус...`
226
- 3. `въ дрьжавѣ бѣла роусь : сѣи оудѣлъ бѣ члѣнъ ѡбласти · рѣкома витєбьска ѡбласть : повѣтъ имаѥтъ оурѧд...`
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
227
 
228
 
229
  ### Key Findings
230
 
231
- - **Best Predictability:** Context-4 with 96.8% predictability
232
  - **Branching Factor:** Decreases with context size (more deterministic)
233
- - **Memory Trade-off:** Larger contexts require more storage (95,077 contexts)
234
  - **Recommendation:** Context-3 or Context-4 for text generation
235
 
236
  ---
@@ -246,64 +310,64 @@ Below are text samples generated from each Markov chain model:
246
 
247
  | Metric | Value |
248
  |--------|-------|
249
- | Vocabulary Size | 6,898 |
250
- | Total Tokens | 75,909 |
251
- | Mean Frequency | 11.00 |
252
  | Median Frequency | 3 |
253
- | Frequency Std Dev | 64.09 |
254
 
255
  ### Most Common Words
256
 
257
  | Rank | Word | Frequency |
258
  |------|------|-----------|
259
- | 1 | и | 3,123 |
260
- | 2 | ѥстъ | 2,706 |
261
- | 3 | катигорїꙗ | 1,703 |
262
- | 4 | лѣта | 953 |
263
- | 5 | бѣ | 926 |
264
- | 6 | въ | 862 |
265
- | 7 | градъ | 792 |
266
- | 8 | ꙁьри | 569 |
267
- | 9 | такождє | 533 |
268
- | 10 | жє | 526 |
269
 
270
  ### Least Common Words (from vocabulary)
271
 
272
  | Rank | Word | Frequency |
273
  |------|------|-----------|
274
- | 1 | катєгорїꙗ | 2 |
275
- | 2 | سخ | 2 |
276
- | 3 | هس | 2 |
277
- | 4 | ش | 2 |
278
- | 5 | ؤخخم | 2 |
279
- | 6 | خىث | 2 |
280
- | 7 | ىعةلاثق | 2 |
281
- | 8 | صشس | 2 |
282
- | 9 | пльсковьская | 2 |
283
- | 10 | маѭтъ | 2 |
284
 
285
  ### Zipf's Law Analysis
286
 
287
  | Metric | Value |
288
  |--------|-------|
289
- | Zipf Coefficient | 0.9646 |
290
- | R² (Goodness of Fit) | 0.987592 |
291
  | Adherence Quality | **excellent** |
292
 
293
  ### Coverage Analysis
294
 
295
  | Top N Words | Coverage |
296
  |-------------|----------|
297
- | Top 100 | 39.8% |
298
- | Top 1,000 | 72.1% |
299
- | Top 5,000 | 95.0% |
300
  | Top 10,000 | 0.0% |
301
 
302
  ### Key Findings
303
 
304
- - **Zipf Compliance:** R²=0.9876 indicates excellent adherence to Zipf's law
305
- - **High Frequency Dominance:** Top 100 words cover 39.8% of corpus
306
- - **Long Tail:** -3,102 words needed for remaining 100.0% coverage
307
 
308
  ---
309
  ## 5. Word Embeddings Evaluation
@@ -316,24 +380,128 @@ Below are text samples generated from each Markov chain model:
316
 
317
  ![t-SNE Sentences](visualizations/tsne_sentences.png)
318
 
319
- ### Model Comparison
320
 
321
- | Model | Vocab Size | Dimension | Avg Norm | Std Norm | Isotropy |
322
- |-------|------------|-----------|----------|----------|----------|
323
- | **mono_32d** | 2,259 | 32 | 3.128 | 0.714 | 0.3160 🏆 |
324
- | **mono_64d** | 2,259 | 64 | 3.031 | 0.702 | 0.0939 |
325
- | **mono_128d** | 2,259 | 128 | 3.024 | 0.720 | 0.0137 |
326
- | **embeddings_enhanced** | 0 | 0 | 0.000 | 0.000 | 0.0000 |
 
 
 
 
 
 
327
 
328
  ### Key Findings
329
 
330
- - **Best Isotropy:** mono_32d with 0.3160 (more uniform distribution)
331
- - **Dimension Trade-off:** Higher dimensions capture more semantics but reduce isotropy
332
- - **Vocabulary Coverage:** All models cover 2,259 words
333
- - **Recommendation:** 100d for balanced semantic capture and efficiency
334
 
335
  ---
336
- ## 6. Summary & Recommendations
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
337
 
338
  ![Performance Dashboard](visualizations/performance_dashboard.png)
339
 
@@ -341,11 +509,12 @@ Below are text samples generated from each Markov chain model:
341
 
342
  | Component | Recommended | Rationale |
343
  |-----------|-------------|-----------|
344
- | Tokenizer | **32k BPE** | Best compression (4.59x) with low UNK rate |
345
- | N-gram | **5-gram** | Lowest perplexity (544) |
346
- | Markov | **Context-4** | Highest predictability (96.8%) |
347
  | Embeddings | **100d** | Balanced semantic capture and isotropy |
348
 
 
349
  ---
350
  ## Appendix: Metrics Glossary & Interpretation Guide
351
 
@@ -535,7 +704,8 @@ If you use these models in your research, please cite:
535
  author = {Kamali, Omar},
536
  title = {Wikilangs: Open NLP Models for Wikipedia Languages},
537
  year = {2025},
538
- publisher = {HuggingFace},
 
539
  url = {https://huggingface.co/wikilangs}
540
  institution = {Omneity Labs}
541
  }
@@ -551,7 +721,8 @@ MIT License - Free for academic and commercial use.
551
  - 🤗 Models: [huggingface.co/wikilangs](https://huggingface.co/wikilangs)
552
  - 📊 Data: [wikipedia-monthly](https://huggingface.co/datasets/omarkamali/wikipedia-monthly)
553
  - 👤 Author: [Omar Kamali](https://huggingface.co/omarkamali)
 
554
  ---
555
  *Generated by Wikilangs Models Pipeline*
556
 
557
- *Report Date: 2025-12-29 05:40:26*
 
23
  metrics:
24
  - name: best_compression_ratio
25
  type: compression
26
+ value: 4.945
27
  - name: best_isotropy
28
  type: isotropy
29
+ value: 0.2996
30
  - name: vocabulary_size
31
  type: vocab
32
+ value: 0
33
+ generated: 2026-01-03
34
  ---
35
 
36
  # CU - Wikilangs Models
 
44
  ### Models & Assets
45
 
46
  - Tokenizers (8k, 16k, 32k, 64k)
47
+ - N-gram models (2, 3, 4, 5-gram)
48
+ - Markov chains (context of 1, 2, 3, 4 and 5)
49
  - Subword N-gram and Markov chains
50
+ - Embeddings in various sizes and dimensions (aligned and unaligned)
51
  - Language Vocabulary
52
  - Language Statistics
53
+
54
  ![Performance Dashboard](visualizations/performance_dashboard.png)
55
 
56
  ### Analysis and Evaluation
 
60
  - [3. Markov Chain Evaluation](#3-markov-chain-evaluation)
61
  - [4. Vocabulary Analysis](#4-vocabulary-analysis)
62
  - [5. Word Embeddings Evaluation](#5-word-embeddings-evaluation)
63
+ - [6. Morphological Analysis (Experimental)](#6-morphological-analysis)
64
+ - [7. Summary & Recommendations](#7-summary--recommendations)
65
  - [Metrics Glossary](#appendix-metrics-glossary--interpretation-guide)
66
  - [Visualizations Index](#visualizations-index)
67
 
 
70
 
71
  ![Tokenizer Compression](visualizations/tokenizer_compression.png)
72
 
73
+ ![Tokenizer Fertility](visualizations/tokenizer_fertility.png)
74
+
75
+ ![Tokenizer OOV](visualizations/tokenizer_oov.png)
76
+
77
+ ![Total Tokens](visualizations/tokenizer_total_tokens.png)
78
+
79
  ### Results
80
 
81
  | Vocab Size | Compression | Avg Token Len | UNK Rate | Total Tokens |
82
  |------------|-------------|---------------|----------|--------------|
83
+ | **8k** | 3.879x | 3.88 | 0.1306% | 107,930 |
84
+ | **16k** | 4.369x | 4.37 | 0.1472% | 95,813 |
85
+ | **32k** | 4.945x 🏆 | 4.95 | 0.1666% | 84,659 |
 
86
 
87
  ### Tokenization Examples
88
 
89
  Below are sample sentences tokenized with each vocabulary size:
90
 
91
+ **Sample 1:** `thumb Ꚛ (имѧ Ꙋкрестъ) словѣньскаѥго ѩꙁꙑка боукꙑ ѥстъ. ѩꙁꙑка боукъви`
 
 
 
92
 
93
  | Vocab | Tokens | Count |
94
  |-------|--------|-------|
95
+ | 8k | `▁thumb ▁ ▁( имѧ ▁ꙋ к ре стъ ) ... (+7 more)` | 17 |
96
+ | 16k | `▁thumb ▁ ▁( имѧ ▁ꙋ кре стъ ) ▁словѣньскаѥго ... (+6 more)` | 16 |
97
+ | 32k | `▁thumb ▁( имѧ ▁ꙋкрестъ ) ▁словѣньскаѥго ▁ѩꙁꙑка ▁боукꙑ ... (+4 more)` | 14 |
 
98
 
99
+ **Sample 2:** `Могилєвъ и · · градъ Бѣлꙑ Роуси ѥстъ ⁙ Людии обитаѥтъ 371 318 Помѣновєнъ жє ꙁа...`
100
 
101
  | Vocab | Tokens | Count |
102
  |-------|--------|-------|
103
+ | 8k | `▁могилєвъ ▁и ▁· ▁· ▁градъ ▁бѣлꙑ ▁роуси ▁ѥстъ ▁⁙ ▁людии ... (+31 more)` | 41 |
104
+ | 16k | `▁могилєвъ ▁и ▁· ▁· ▁градъ ▁бѣлꙑ ▁роуси ▁ѥстъ ▁⁙ ▁людии ... (+28 more)` | 38 |
105
+ | 32k | `▁могилєвъ ▁и ▁· ▁· ▁градъ ▁бѣлꙑ ▁роуси ▁ѥстъ ▁⁙ ▁людии ... (+27 more)` | 37 |
 
106
 
107
+ **Sample 3:** `thumb Ѱ (имѧ ыпсьлон) словѣньскаѥго ѩꙁꙑка боукꙑ ѥстъ ѩꙁꙑка боукъви аꙁъбоукꙑ боук...`
108
 
109
  | Vocab | Tokens | Count |
110
  |-------|--------|-------|
111
+ | 8k | `▁thumb ▁ѱ ▁( имѧ ▁ы п сь лон ) ▁словѣньскаѥго ... (+7 more)` | 17 |
112
+ | 16k | `▁thumb ▁ѱ ▁( имѧ ▁ы п сь лон ) ▁словѣньскаѥго ... (+7 more)` | 17 |
113
+ | 32k | `▁thumb ▁ѱ ▁( имѧ ▁ыпсьлон ) ▁словѣньскаѥго ▁ѩꙁꙑка ▁боукꙑ ▁ѥстъ ... (+4 more)` | 14 |
 
114
 
115
 
116
  ### Key Findings
117
 
118
+ - **Best Compression:** 32k achieves 4.945x compression
119
+ - **Lowest UNK Rate:** 8k with 0.1306% unknown tokens
120
  - **Trade-off:** Larger vocabularies improve compression but increase model size
121
  - **Recommendation:** 32k vocabulary provides optimal balance for production use
122
 
 
125
 
126
  ![N-gram Perplexity](visualizations/ngram_perplexity.png)
127
 
128
+ ![N-gram Unique](visualizations/ngram_unique.png)
129
+
130
  ![N-gram Coverage](visualizations/ngram_coverage.png)
131
 
132
  ### Results
133
 
134
+ | N-gram | Variant | Perplexity | Entropy | Unique N-grams | Top-100 Coverage | Top-1000 Coverage |
135
+ |--------|---------|------------|---------|----------------|------------------|-------------------|
136
+ | **2-gram** | Word | 803 | 9.65 | 1,418 | 38.7% | 88.8% |
137
+ | **2-gram** | Subword | 451 🏆 | 8.82 | 2,626 | 56.3% | 95.5% |
138
+ | **3-gram** | Word | 974 | 9.93 | 1,743 | 35.2% | 82.0% |
139
+ | **3-gram** | Subword | 2,632 | 11.36 | 12,321 | 25.6% | 67.4% |
140
+ | **4-gram** | Word | 1,602 | 10.65 | 2,970 | 29.2% | 66.7% |
141
+ | **4-gram** | Subword | 8,242 | 13.01 | 33,307 | 16.1% | 45.2% |
142
 
143
  ### Top 5 N-grams by Size
144
 
145
+ **2-grams (Word):**
146
 
147
  | Rank | N-gram | Count |
148
  |------|--------|-------|
149
+ | 1 | `ꙁьри такождє` | 429 |
150
+ | 2 | `людии обитаѥтъ` | 260 |
151
+ | 3 | `ѥстъ людии` | 234 |
152
+ | 4 | `градъ ѥстъ` | 230 |
153
+ | 5 | `стольнъ градъ` | 186 |
154
 
155
+ **3-grams (Word):**
156
 
157
  | Rank | N-gram | Count |
158
  |------|--------|-------|
159
+ | 1 | `ѥстъ людии обитаѥтъ` | 181 |
160
+ | 2 | `въ дрьжавѣ бѣла` | 120 |
161
+ | 3 | `дрьжавѣ бѣла роусь` | 120 |
162
+ | 4 | `градъ ѥстъ людии` | 115 |
163
+ | 5 | `роусь сѣи оудѣлъ` | 114 |
164
 
165
+ **4-grams (Word):**
166
 
167
  | Rank | N-gram | Count |
168
  |------|--------|-------|
169
+ | 1 | `въ дрьжавѣ бѣла роусь` | 120 |
170
+ | 2 | `ꙁємьскъ оудѣлъ въ дрьжавѣ` | 114 |
171
+ | 3 | `оудѣлъ въ дрьжавѣ бѣла` | 114 |
172
+ | 4 | `дрьжавѣ бѣла роусь сѣи` | 114 |
173
+ | 5 | `ѥстъ ꙁємьскъ оудѣлъ въ` | 114 |
174
+
175
+ **2-grams (Subword):**
176
+
177
+ | Rank | N-gram | Count |
178
+ |------|--------|-------|
179
+ | 1 | `ъ _` | 17,731 |
180
+ | 2 | `и _` | 9,203 |
181
+ | 3 | `а _` | 8,612 |
182
+ | 4 | `с т` | 8,393 |
183
+ | 5 | `_ с` | 6,604 |
184
+
185
+ **3-grams (Subword):**
186
+
187
+ | Rank | N-gram | Count |
188
+ |------|--------|-------|
189
+ | 1 | `т ъ _` | 5,941 |
190
+ | 2 | `_ · _` | 4,423 |
191
+ | 3 | `ь с к` | 3,904 |
192
+ | 4 | `_ ⁙ _` | 3,096 |
193
+ | 5 | `с т ъ` | 3,041 |
194
+
195
+ **4-grams (Subword):**
196
+
197
+ | Rank | N-gram | Count |
198
+ |------|--------|-------|
199
+ | 1 | `_ ѥ с т` | 2,898 |
200
+ | 2 | `с т ъ _` | 2,880 |
201
+ | 3 | `ѥ с т ъ` | 2,700 |
202
+ | 4 | `ъ _ ⁙ _` | 1,900 |
203
+ | 5 | `т ъ _ ⁙` | 1,811 |
204
 
205
 
206
  ### Key Findings
207
 
208
+ - **Best Perplexity:** 2-gram (subword) with 451
209
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
210
+ - **Coverage:** Top-1000 patterns cover ~45% of corpus
211
  - **Recommendation:** 4-gram or 5-gram for best predictive performance
212
 
213
  ---
 
215
 
216
  ![Markov Entropy](visualizations/markov_entropy.png)
217
 
218
+ ![Markov Contexts](visualizations/markov_contexts.png)
219
+
220
  ![Markov Branching](visualizations/markov_branching.png)
221
 
222
  ### Results
223
 
224
+ | Context | Variant | Avg Entropy | Perplexity | Branching Factor | Unique Contexts | Predictability |
225
+ |---------|---------|-------------|------------|------------------|-----------------|----------------|
226
+ | **1** | Word | 0.4875 | 1.402 | 2.62 | 18,795 | 51.2% |
227
+ | **1** | Subword | 0.9912 | 1.988 | 7.09 | 1,078 | 0.9% |
228
+ | **2** | Word | 0.1229 | 1.089 | 1.22 | 48,721 | 87.7% |
229
+ | **2** | Subword | 0.8197 | 1.765 | 4.19 | 7,639 | 18.0% |
230
+ | **3** | Word | 0.0442 | 1.031 | 1.07 | 58,656 | 95.6% |
231
+ | **3** | Subword | 0.5526 | 1.467 | 2.43 | 31,947 | 44.7% |
232
+ | **4** | Word | 0.0206 🏆 | 1.014 | 1.03 | 61,545 | 97.9% |
233
+ | **4** | Subword | 0.3393 | 1.265 | 1.70 | 77,657 | 66.1% |
234
 
235
+ ### Generated Text Samples (Word-based)
236
 
237
+ Below are text samples generated from each word-based Markov chain model:
238
 
239
  **Context Size 1:**
240
 
241
+ 1. словѣньскъ ѩꙁꙑкъ ѥстъ людии обитаѥтъ стольнъ градъ ѥстъ ѥгожє потомъць тєодєнъ ꙗко идєжє kb постоꙗ...`
242
+ 2. `ѥстъ додєканъ ѫглѥводородьно вєщьство алканъ рѧдоу ѥстъ ꙗко нарочито поѩтиѥ паоуло коєлио пїитъ браꙁ...`
243
+ 3. `лѣта нарєчєнъ съ тꙑлоу жєнꙑ ѳєологїѩ вївлїи въ дрьжавѣ бѣла роусь сѣи оудѣлъ въ дрьжавѣ бѣла`
244
 
245
  **Context Size 2:**
246
 
247
+ 1. `ꙁьри такождє владимѣръ мєждоусѣтии гради гради въ асии аꙁєрбаичаноѵ`
248
+ 2. `людии обитаѥтъ масачоусєтсѣ 7 лєѡдръ обитаѥтъ таджикистана дрьжавьнъ ѩꙁꙑкъ соуми ѥстъ симъ ѩꙁꙑкомъ 9...`
249
+ 3. `ѥстъ людии обитаѥтъ лѣта 788 лѣто 168 17 64 320 0 10 23 ꙁапражиѥиванофранковьска 13 9 13`
250
 
251
  **Context Size 3:**
252
 
253
+ 1. `ѥстъ людии обитаѥтъ 700 тꙑсѫщь основанъ ѥстъ лѣта нарєчєнъ градъ съ лѣта гєѡргїꙗ жє мьнитъ лꙑхнꙑ ꙗко...`
254
+ 2. `въ дрьжавѣ бѣла роусь сѣи оудѣлъ бѣ члѣнъ ѡбласти рѣкома мѣньска ѡбласть повѣтъ имаѥтъ оурѧдъ рѣкомъ...`
255
+ 3. `дрьжавѣ бѣла роусь сѣи оудѣлъ бѣ члѣнъ ѡбласти рѣкома бєрєстєиска ѡбласть повѣтъ имаѥтъ оурѧдъ рѣком...`
256
 
257
  **Context Size 4:**
258
 
259
+ 1. `въ дрьжавѣ бѣла роусь сѣи оудѣлъ бѣ члѣнъ ѡбласти рѣкома мѣньска ѡбласть конѣць иматъ оурѧдъ рѣкомъ ...`
260
+ 2. `ѥстъ ꙁємьскъ оудѣлъ въ дрьжавѣ бѣла роусь сѣи оудѣлъ бѣ члѣнъ градоу витьбьскъ въ ѡбласти рѣкома вит...`
261
+ 3. `ꙁємьскъ оудѣлъ въ дрьжавѣ бѣла роусь сѣи оудѣлъ бѣ члѣнъ ѡбласти рѣкома бєрєстєиска ѡбласть повѣтъ и...`
262
+
263
+
264
+ ### Generated Text Samples (Subword-based)
265
+
266
+ Below are text samples generated from each subword-based Markov chain model:
267
+
268
+ **Context Size 1:**
269
+
270
+ 1. `_инъ_єньсєжапь_н`
271
+ 2. `а_вє_шємл҄итѣка_п`
272
+ 3. `о_стєрїтовоуспє_`
273
+
274
+ **Context Size 2:**
275
+
276
+ 1. `ъ_ка_ѥстъ_бѣлꙗѥтъ`
277
+ 2. `и_·_тавѣ_коѩбр҄їꙗ:`
278
+ 3. `а_костомолїтарьно`
279
+
280
+ **Context Size 3:**
281
+
282
+ 1. `тъ_словѣньскъ_ѥстъ`
283
+ 2. `_·_єпїсимь_40_грос`
284
+ 3. `ьскъвьсцѣ_на_оупи_`
285
+
286
+ **Context Size 4:**
287
+
288
+ 1. `_ѥстъ_⁙_наи́бѫ́льша_г`
289
+ 2. `стъ_гоѵглъ_єси_и_8_`
290
+ 3. `ѥстъ_⁙_сѥго_ѩꙁꙑка_к`
291
 
292
 
293
  ### Key Findings
294
 
295
+ - **Best Predictability:** Context-4 (word) with 97.9% predictability
296
  - **Branching Factor:** Decreases with context size (more deterministic)
297
+ - **Memory Trade-off:** Larger contexts require more storage (77,657 contexts)
298
  - **Recommendation:** Context-3 or Context-4 for text generation
299
 
300
  ---
 
310
 
311
  | Metric | Value |
312
  |--------|-------|
313
+ | Vocabulary Size | 6,213 |
314
+ | Total Tokens | 63,034 |
315
+ | Mean Frequency | 10.15 |
316
  | Median Frequency | 3 |
317
+ | Frequency Std Dev | 60.04 |
318
 
319
  ### Most Common Words
320
 
321
  | Rank | Word | Frequency |
322
  |------|------|-----------|
323
+ | 1 | и | 2,825 |
324
+ | 2 | ѥстъ | 2,697 |
325
+ | 3 | лѣта | 958 |
326
+ | 4 | бѣ | 912 |
327
+ | 5 | въ | 843 |
328
+ | 6 | градъ | 795 |
329
+ | 7 | ꙁьри | 533 |
330
+ | 8 | такождє | 529 |
331
+ | 9 | жє | 512 |
332
+ | 10 | людии | 470 |
333
 
334
  ### Least Common Words (from vocabulary)
335
 
336
  | Rank | Word | Frequency |
337
  |------|------|-----------|
338
+ | 1 | статистичьского | 2 |
339
+ | 2 | катєгорїꙗ | 2 |
340
+ | 3 | سخ | 2 |
341
+ | 4 | هس | 2 |
342
+ | 5 | ش | 2 |
343
+ | 6 | ؤخخم | 2 |
344
+ | 7 | خىث | 2 |
345
+ | 8 | ىعةلاثق | 2 |
346
+ | 9 | صشس | 2 |
347
+ | 10 | пльсковьская | 2 |
348
 
349
  ### Zipf's Law Analysis
350
 
351
  | Metric | Value |
352
  |--------|-------|
353
+ | Zipf Coefficient | 0.9368 |
354
+ | R² (Goodness of Fit) | 0.986351 |
355
  | Adherence Quality | **excellent** |
356
 
357
  ### Coverage Analysis
358
 
359
  | Top N Words | Coverage |
360
  |-------------|----------|
361
+ | Top 100 | 40.9% |
362
+ | Top 1,000 | 72.7% |
363
+ | Top 5,000 | 96.2% |
364
  | Top 10,000 | 0.0% |
365
 
366
  ### Key Findings
367
 
368
+ - **Zipf Compliance:** R²=0.9864 indicates excellent adherence to Zipf's law
369
+ - **High Frequency Dominance:** Top 100 words cover 40.9% of corpus
370
+ - **Long Tail:** -3,787 words needed for remaining 100.0% coverage
371
 
372
  ---
373
  ## 5. Word Embeddings Evaluation
 
380
 
381
  ![t-SNE Sentences](visualizations/tsne_sentences.png)
382
 
 
383
 
384
+ ### 5.1 Cross-Lingual Alignment
385
+
386
+ > *Note: Multilingual alignment visualization not available for this language.*
387
+
388
+
389
+ ### 5.2 Model Comparison
390
+
391
+ | Model | Dimension | Isotropy | Semantic Density | Alignment R@1 | Alignment R@10 |
392
+ |-------|-----------|----------|------------------|---------------|----------------|
393
+ | **mono_32d** | 32 | 0.2996 🏆 | 0.4830 | N/A | N/A |
394
+ | **mono_64d** | 64 | 0.0761 | 0.4499 | N/A | N/A |
395
+ | **mono_128d** | 128 | 0.0111 | 0.4641 | N/A | N/A |
396
 
397
  ### Key Findings
398
 
399
+ - **Best Isotropy:** mono_32d with 0.2996 (more uniform distribution)
400
+ - **Semantic Density:** Average pairwise similarity of 0.4657. Lower values indicate better semantic separation.
401
+ - **Alignment Quality:** No aligned models evaluated in this run.
402
+ - **Recommendation:** 128d aligned for best cross-lingual performance
403
 
404
  ---
405
+ ## 6. Morphological Analysis (Experimental)
406
+
407
+ > ⚠️ **Warning:** This language shows low morphological productivity. The statistical signals used for this analysis may be noisy or less reliable than for morphologically rich languages.
408
+
409
+ 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.
410
+
411
+ ### 6.1 Productivity & Complexity
412
+
413
+ | Metric | Value | Interpretation | Recommendation |
414
+ |--------|-------|----------------|----------------|
415
+ | Productivity Index | **0.000** | Low morphological productivity | ⚠️ Likely unreliable |
416
+ | Idiomaticity Gap | **-1.000** | Low formulaic content | - |
417
+
418
+ ### 6.2 Affix Inventory (Productive Units)
419
+
420
+ 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.
421
+
422
+ #### Productive Prefixes
423
+ | Prefix | Examples |
424
+ |--------|----------|
425
+ | `-пр` | правилъ, протєстантї́зма, прѣславъ |
426
+ | `-по` | помꙑшлѥниѥ, послѣдни, польꙃєвати |
427
+
428
+ #### Productive Suffixes
429
+ | Suffix | Examples |
430
+ |--------|----------|
431
+ | `-ъ` | въсѣхъ, правилъ, кѷрїллъ |
432
+ | `-къ` | арктїчьскъ, оучєникъ, оукъ |
433
+ | `-ка` | владимѣрьска, банчьска, вльгоградьска |
434
+ | `-нъ` | октадєканъ, ѥдьнѥнъ, дръжавьнъ |
435
+ | `-ска` | владимѣрьска, банчьска, вльгоградьска |
436
+ | `-скъ` | арктїчьскъ, лєниньскъ, въсточьнословѣньскъ |
437
+ | `-кꙑ` | шавьльскꙑ, дрєвл҄ьнѥгрьчьскꙑ, аѵстрїискꙑ |
438
+ | `-ьска` | владимѣрьска, банчьска, вльгоградьска |
439
+
440
+ ### 6.3 Bound Stems (Lexical Roots)
441
+
442
+ 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.
443
+
444
+ | Stem | Cohesion | Substitutability | Examples |
445
+ |------|----------|------------------|----------|
446
+ | `боук` | 1.84x | 14 contexts | боукꙑ, боуквꙑ, боукъвъ |
447
+ | `ловѣ` | 1.56x | 18 contexts | словѣ, словѣнъ, словѣнє |
448
+ | `слов` | 1.69x | 14 contexts | слово, слова, словѣ |
449
+ | `ьжав` | 1.70x | 13 contexts | дрьжавѫ, дрьжавꙑ, дрьжавъ |
450
+ | `ньск` | 1.60x | 15 contexts | мѣньска, жєньскъ, мѣньскъ |
451
+ | `ласт` | 1.40x | 20 contexts | власти, властъ, власть |
452
+ | `ьска` | 1.56x | 14 contexts | омьска, людьска, мѣньска |
453
+ | `овѣн` | 1.77x | 9 contexts | словѣнъ, словѣнє, словѣнїꙗ |
454
+ | `град` | 1.57x | 12 contexts | градъ, градѣ, гради |
455
+ | `ьскъ` | 1.55x | 11 contexts | омьскъ, жєньскъ, томьскъ |
456
+ | `блас` | 1.57x | 10 contexts | ѡбласти, область, ѡбласть |
457
+ | `рьжа` | 1.62x | 9 contexts | дрьжавѫ, дрьжавꙑ, дрьжавъ |
458
+
459
+ ### 6.4 Affix Compatibility (Co-occurrence)
460
+
461
+ This table shows which prefixes and suffixes most frequently co-occur on the same stems, revealing the 'stacking' rules of the language's morphology.
462
+
463
+ | Prefix | Suffix | Frequency | Examples |
464
+ |--------|--------|-----------|----------|
465
+ | `-пр` | `-ъ` | 34 words | приморьскъ, природьнꙑхъ |
466
+ | `-по` | `-ъ` | 34 words | польꙃоуѭтъ, полѫостровъ |
467
+ | `-по` | `-нъ` | 11 words | подобьнъ, поушькинъ |
468
+ | `-по` | `-тъ` | 7 words | польꙃоуѭтъ, польꙃоуѥтъ |
469
+ | `-по` | `-къ` | 7 words | подъбрадъкъ, пол҄ьскъ |
470
+ | `-по` | `-ка` | 7 words | политика, политическа |
471
+ | `-пр` | `-къ` | 6 words | приморьскъ, прѣꙁъсибирьскъ |
472
+ | `-по` | `-скъ` | 6 words | пол҄ьскъ, подольскъ |
473
+ | `-пр` | `-нъ` | 6 words | природьнъ, прѡтонъ |
474
+ | `-по` | `-ска` | 5 words | политическа, подъкарпатьска |
475
+
476
+ ### 6.5 Recursive Morpheme Segmentation
477
+
478
+ Using **Recursive Hierarchical Substitutability**, we decompose complex words into their constituent morphemes. This approach handles nested affixes (e.g., `prefix-prefix-root-suffix`).
479
+
480
+ | Word | Suggested Split | Confidence | Stem |
481
+ |------|-----------------|------------|------|
482
+ | самостоꙗтѣл҄ьнъ | **`самостоꙗтѣл҄ь-нъ`** | 4.5 | `самостоꙗтѣл҄ь` |
483
+ | аѵстралїиска | **`аѵстралїи-ска`** | 4.5 | `аѵстралїи` |
484
+ | аѵстрїиска | **`аѵстрїи-ска`** | 4.5 | `аѵстрїи` |
485
+ | франкїиска | **`франкїи-ска`** | 4.5 | `франкїи` |
486
+ | аѵстрїискъ | **`аѵстрїи-скъ`** | 4.5 | `аѵстрїи` |
487
+ | сибирьскъ | **`сибирь-скъ`** | 4.5 | `сибирь` |
488
+ | їталїискъ | **`їталїи-скъ`** | 4.5 | `їталїи` |
489
+ | ꙗпѡнїискъ | **`ꙗпѡнїи-скъ`** | 4.5 | `ꙗпѡнїи` |
490
+ | ꙗпѡнїиска | **`ꙗпѡнїи-ска`** | 4.5 | `ꙗпѡнїи` |
491
+ | посєлєниѥ | **`по-сєлєниѥ`** | 4.5 | `сєлєниѥ` |
492
+ | посєлєниꙗ | **`по-сєлєниꙗ`** | 4.5 | `сєлєниꙗ` |
493
+ | поминаѭтъ | **`по-минаѭ-тъ`** | 3.0 | `минаѭ` |
494
+ | подълѣсьскъ | **`по-дълѣсь-скъ`** | 3.0 | `дълѣсь` |
495
+ | єѯадєканъ | **`єѯадє-ка-нъ`** | 3.0 | `єѯадє` |
496
+ | политическꙑ | **`по-литиче-скꙑ`** | 3.0 | `литиче` |
497
+
498
+ ### 6.6 Linguistic Interpretation
499
+
500
+ > **Automated Insight:**
501
+ The language CU appears to be more isolating or has a highly fixed vocabulary. Word-level models perform nearly as well as subword models, indicating fewer productive morphological processes.
502
+
503
+ ---
504
+ ## 7. Summary & Recommendations
505
 
506
  ![Performance Dashboard](visualizations/performance_dashboard.png)
507
 
 
509
 
510
  | Component | Recommended | Rationale |
511
  |-----------|-------------|-----------|
512
+ | Tokenizer | **32k BPE** | Best compression (4.94x) |
513
+ | N-gram | **2-gram** | Lowest perplexity (451) |
514
+ | Markov | **Context-4** | Highest predictability (97.9%) |
515
  | Embeddings | **100d** | Balanced semantic capture and isotropy |
516
 
517
+
518
  ---
519
  ## Appendix: Metrics Glossary & Interpretation Guide
520
 
 
704
  author = {Kamali, Omar},
705
  title = {Wikilangs: Open NLP Models for Wikipedia Languages},
706
  year = {2025},
707
+ doi = {10.5281/zenodo.18073153},
708
+ publisher = {Zenodo},
709
  url = {https://huggingface.co/wikilangs}
710
  institution = {Omneity Labs}
711
  }
 
721
  - 🤗 Models: [huggingface.co/wikilangs](https://huggingface.co/wikilangs)
722
  - 📊 Data: [wikipedia-monthly](https://huggingface.co/datasets/omarkamali/wikipedia-monthly)
723
  - 👤 Author: [Omar Kamali](https://huggingface.co/omarkamali)
724
+ - 🤝 Sponsor: [Featherless AI](https://featherless.ai)
725
  ---
726
  *Generated by Wikilangs Models Pipeline*
727
 
728
+ *Report Date: 2026-01-03 10:39:18*
models/embeddings/monolingual/cu_128d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:9f8bf1a2cd1d39bc475e824c060c112d0eed6a4abce0f05f73e9b9ec5e60b68d
3
- size 1026363435
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:8f180195153a0e4578f44c1f6b1c3eda4c3a7f0672314c1b3ce6aebed01755be
3
+ size 1026177089
models/embeddings/monolingual/cu_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": 2259
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": 2082
15
  }
models/embeddings/monolingual/cu_32d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:161c4c5348c059b1ae0591e22cc433bc474df6bcce3838452936f16f3b5f7e60
3
- size 256628523
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f90429875eb75105fa8f12361ebaf97112dbdb9c2a3a585b6a0f5093c23fa4a9
3
+ size 256578113
models/embeddings/monolingual/cu_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": 2259
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": 2082
15
  }
models/embeddings/monolingual/cu_64d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:15dc6b0abb2e7a3e27624c5b69ecba7dee2e3716811eadec27c745229453c1a3
3
- size 513206827
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:13f1bd4d35a86f2cf0d70eb7c8c834bc4615d38220adae9405e7fddc748a894a
3
+ size 513111105
models/embeddings/monolingual/cu_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": 2259
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": 2082
15
  }
models/subword_markov/cu_markov_ctx1_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:57ccc6b42dab1bf7c5a257dfb27195ea840f95be9970cc532f0210b5dd6387a8
3
- size 60348
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4e949a197cc604e7c761bd6bc85ce653be6b8e3a354f4cd10bcb179122c7c1bc
3
+ size 61462
models/subword_markov/cu_markov_ctx1_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 1,
3
  "variant": "subword",
4
  "language": "cu",
5
- "unique_contexts": 991,
6
- "total_transitions": 603139
7
  }
 
2
  "context_size": 1,
3
  "variant": "subword",
4
  "language": "cu",
5
+ "unique_contexts": 1078,
6
+ "total_transitions": 515604
7
  }
models/subword_markov/cu_markov_ctx2_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:ba074a4cc8fb5da21a6fcb219be60ee1499279188686c4396cd5598f80b568b1
3
- size 268803
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b941955b7b2c0d840400a334ec728d235f18de03f0b7d327b53a4c3fc2b0affd
3
+ size 241073
models/subword_markov/cu_markov_ctx2_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "cu",
5
- "unique_contexts": 8609,
6
- "total_transitions": 601806
7
  }
 
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "cu",
5
+ "unique_contexts": 7639,
6
+ "total_transitions": 514286
7
  }
models/subword_markov/cu_markov_ctx3_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:6869f77e3f9c4db59fee37a52a6e162e414109135c62986a99c5ce684f227ed4
3
- size 793249
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f131478e09b8f63ad301796670764859e6dfa836f6b9d6ca0311e6ee4f91d06c
3
+ size 678460
models/subword_markov/cu_markov_ctx3_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "cu",
5
- "unique_contexts": 38630,
6
- "total_transitions": 600473
7
  }
 
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "cu",
5
+ "unique_contexts": 31947,
6
+ "total_transitions": 512968
7
  }
models/subword_markov/cu_markov_ctx4_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:19467222dd21df3f3e6e9fcdddc86c3b9372284a115fce02093145a8a8f5ffe9
3
- size 1565855
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:56b15f422fd056498e6c88d7059108ebf1372e799ff8caeeefcadf86d5c18d69
3
+ size 1344662
models/subword_markov/cu_markov_ctx4_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "cu",
5
- "unique_contexts": 95077,
6
- "total_transitions": 599140
7
  }
 
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "cu",
5
+ "unique_contexts": 77657,
6
+ "total_transitions": 511650
7
  }
models/subword_ngram/cu_2gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:24e90f2a485f8f014b3627c50edfcd35f4212c928a8766692131bf13c7d96264
3
- size 37401
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2126e3213739aec87a6da0c10a5370c2aa9b1ac282cc16a13ff6bb7203679f6e
3
+ size 33800
models/subword_ngram/cu_2gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "cu",
5
- "unique_ngrams": 3037,
6
- "total_ngrams": 603139
7
  }
 
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "cu",
5
+ "unique_ngrams": 2626,
6
+ "total_ngrams": 515604
7
  }
models/subword_ngram/cu_3gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:4046ccba23d8e946ef06d680c2b21d302abfd9d7e98db4ea628c00969f8eed2f
3
- size 188194
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b2cc8ff85bcc54e2024c90771fec3887648656c77e0464212ec94ebfeea2edc3
3
+ size 160670
models/subword_ngram/cu_3gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "cu",
5
- "unique_ngrams": 14844,
6
- "total_ngrams": 601806
7
  }
 
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "cu",
5
+ "unique_ngrams": 12321,
6
+ "total_ngrams": 514286
7
  }
models/subword_ngram/cu_4gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:74091d700f9ab56bc6c4bd2f3e7c9d6a775dcf465df00fb077e38b38cde258fd
3
- size 532101
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:6e5f7ca57181d7dc4617a367f4ab643220e33820321439ffab3d419cf589a2a4
3
+ size 464092
models/subword_ngram/cu_4gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "cu",
5
- "unique_ngrams": 39612,
6
- "total_ngrams": 600473
7
  }
 
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "cu",
5
+ "unique_ngrams": 33307,
6
+ "total_ngrams": 512968
7
  }
models/tokenizer/cu_tokenizer_16k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:cb448b26375611df94da44b847221dd5fdea5edce40f0ec9fe06e334c0174ff9
3
- size 572654
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:97e6359a0f9b3b36740eb66281c9d74b4750ea93b6ae84d5b6666d1d0cb350c4
3
+ size 574583
models/tokenizer/cu_tokenizer_16k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/cu_tokenizer_32k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:c96363f6098e71f315c123debcf72cd5c11d7ebf7ab46c5d09276e8d11266588
3
- size 936427
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:64b3f6f09166812fbbb56c670818df981292963a9f019e1f0adfac21a18679da
3
+ size 960296
models/tokenizer/cu_tokenizer_32k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/cu_tokenizer_8k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:bcb57ab736443d6385d346ab2f6748c3c0df07fc4448f236e0c042d182468009
3
- size 397450
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:acc38a0fece8f1fa677a20fabe3d2d86630c9a3df52c07ec34dbad75382cb37a
3
+ size 398366
models/tokenizer/cu_tokenizer_8k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/vocabulary/cu_vocabulary.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e033bafb355a9f316216bd2db29d2167ca0da7874bc338ec478966432881af72
3
- size 120299
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:430483667c6dfc4d8c34b266ab0e2f51a877989023eebb849030861107cfd909
3
+ size 111841
models/vocabulary/cu_vocabulary_metadata.json CHANGED
@@ -1,16 +1,17 @@
1
  {
2
  "language": "cu",
3
- "vocabulary_size": 6898,
 
4
  "statistics": {
5
- "type_token_ratio": 0.23164024227309166,
6
  "coverage": {
7
- "top_100": 0.33659926961788544,
8
- "top_1000": 0.609757726908346,
9
- "top_5000": 0.802897033936047,
10
- "top_10000": 0.8796984947002762
11
  },
12
- "hapax_count": 13907,
13
- "hapax_ratio": 0.6684450853160298,
14
- "total_documents": 1333
15
  }
16
  }
 
1
  {
2
  "language": "cu",
3
+ "vocabulary_size": 6213,
4
+ "variant": "full",
5
  "statistics": {
6
+ "type_token_ratio": 0.24926341379629263,
7
  "coverage": {
8
+ "top_100": 0.34099647231360736,
9
+ "top_1000": 0.6052426440471944,
10
+ "top_5000": 0.8007715988214621,
11
+ "top_10000": 0.8828596720705009
12
  },
13
+ "hapax_count": 12653,
14
+ "hapax_ratio": 0.6706774090957278,
15
+ "total_documents": 1318
16
  }
17
  }
models/word_markov/cu_markov_ctx1_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:80450533f8c29713d84cca16915b30a007901f532ee608e9697cf178f9f62188
3
- size 747330
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aa5618d23ca23ed6f616602577c65e3e186ba372648b13a91d6915bcb3a1bca1
3
+ size 679909
models/word_markov/cu_markov_ctx1_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "cu",
5
- "unique_contexts": 20872,
6
- "total_transitions": 115174
7
  }
 
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "cu",
5
+ "unique_contexts": 18795,
6
+ "total_transitions": 74369
7
  }
models/word_markov/cu_markov_ctx2_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:ae4559951b8aa0c3ca3c3345ca554ec48fe55b8532c66aaf8c99fe54219d6423
3
- size 1481222
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e53c547cb424d7129f42e0810a4886b3e115522fb5db795757ffaeff957e9df6
3
+ size 1303006
models/word_markov/cu_markov_ctx2_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "cu",
5
- "unique_contexts": 60436,
6
- "total_transitions": 113841
7
  }
 
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "cu",
5
+ "unique_contexts": 48721,
6
+ "total_transitions": 73051
7
  }
models/word_markov/cu_markov_ctx3_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e3c7c0e59a5e03eb30765d9ba9fbfb9c8fce86cb9d451e82c7ece47b86df8ad2
3
- size 1992856
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e1c4cf8e3dc9462e981f1ecec515a2d1249d9723320718db76503ee3b51ce571
3
+ size 1658703
models/word_markov/cu_markov_ctx3_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 3,
3
  "variant": "word",
4
  "language": "cu",
5
- "unique_contexts": 80298,
6
- "total_transitions": 112508
7
  }
 
2
  "context_size": 3,
3
  "variant": "word",
4
  "language": "cu",
5
+ "unique_contexts": 58656,
6
+ "total_transitions": 71733
7
  }
models/word_markov/cu_markov_ctx4_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:41162062e37e77acb6090d0a4b86d87b321d4d3d19afb8620767688377b78741
3
- size 2393975
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:1786989b68b43efad0cf9e8e8d222c1102102234836b14aabb943a1287d4f5bb
3
+ size 1943027
models/word_markov/cu_markov_ctx4_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 4,
3
  "variant": "word",
4
  "language": "cu",
5
- "unique_contexts": 89220,
6
- "total_transitions": 111176
7
  }
 
2
  "context_size": 4,
3
  "variant": "word",
4
  "language": "cu",
5
+ "unique_contexts": 61545,
6
+ "total_transitions": 70415
7
  }
models/word_ngram/cu_2gram_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:189aa93a0dc65d6e6db6bae77afa9126cca9908f243661fe9cd8f4f99e639f4e
3
- size 52502
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:019fe189687b07352dc7821236f9c5edb065885715366be8bad6fcd3fbc96f09
3
+ size 33517
models/word_ngram/cu_2gram_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 2,
3
  "variant": "word",
4
  "language": "cu",
5
- "unique_ngrams": 2704,
6
- "total_ngrams": 115174
7
  }
 
2
  "n": 2,
3
  "variant": "word",
4
  "language": "cu",
5
+ "unique_ngrams": 1418,
6
+ "total_ngrams": 74369
7
  }
models/word_ngram/cu_3gram_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:54d7de5b539032d40f866f886c2dfa9c5f705b58962ecbb3c5552a7e12059e61
3
- size 86125
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:30d2686e4c4da562a496eaa516690623f01aa672574a09a10e1dbc4c77f92f34
3
+ size 49768
models/word_ngram/cu_3gram_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 3,
3
  "variant": "word",
4
  "language": "cu",
5
- "unique_ngrams": 3713,
6
- "total_ngrams": 113841
7
  }
 
2
  "n": 3,
3
  "variant": "word",
4
  "language": "cu",
5
+ "unique_ngrams": 1743,
6
+ "total_ngrams": 73051
7
  }
models/word_ngram/cu_4gram_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:75da47d27788f2dc037002883d57aec34e2b89f8c2929f4fcc5e33330133feca
3
- size 163706
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:991aea88c68675eaf1bbe5a97bddb5818aa23dbfe762008c8d8ddfb58d7a40a9
3
+ size 96377
models/word_ngram/cu_4gram_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 4,
3
  "variant": "word",
4
  "language": "cu",
5
- "unique_ngrams": 6299,
6
- "total_ngrams": 112508
7
  }
 
2
  "n": 4,
3
  "variant": "word",
4
  "language": "cu",
5
+ "unique_ngrams": 2970,
6
+ "total_ngrams": 71733
7
  }
visualizations/embedding_isotropy.png CHANGED
visualizations/embedding_norms.png CHANGED
visualizations/embedding_similarity.png CHANGED

Git LFS Details

  • SHA256: 111413b866eb289edd0d62c806edbdf292ff7d663cabda7aa9d4ca43c5f3e9a0
  • Pointer size: 131 Bytes
  • Size of remote file: 151 kB

Git LFS Details

  • SHA256: 603f1d98165316cd72ebe004effd4d13dbcc828d6e71c01b3ef1e6f0fafe8fb0
  • Pointer size: 131 Bytes
  • Size of remote file: 150 kB
visualizations/markov_branching.png CHANGED
visualizations/markov_contexts.png CHANGED
visualizations/markov_entropy.png CHANGED
visualizations/model_sizes.png CHANGED