omarkamali commited on
Commit
707242a
·
verified ·
1 Parent(s): ec7516b

Upload all models and assets for dsb (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 +335 -136
  3. models/embeddings/aligned/dsb_128d.bin +3 -0
  4. models/embeddings/aligned/dsb_128d.meta.json +1 -0
  5. models/embeddings/aligned/dsb_128d.projection.npy +3 -0
  6. models/embeddings/aligned/dsb_128d_metadata.json +8 -0
  7. models/embeddings/aligned/dsb_32d.bin +3 -0
  8. models/embeddings/aligned/dsb_32d.meta.json +1 -0
  9. models/embeddings/aligned/dsb_32d.projection.npy +3 -0
  10. models/embeddings/aligned/dsb_32d_metadata.json +8 -0
  11. models/embeddings/aligned/dsb_64d.bin +3 -0
  12. models/embeddings/aligned/dsb_64d.meta.json +1 -0
  13. models/embeddings/aligned/dsb_64d.projection.npy +3 -0
  14. models/embeddings/aligned/dsb_64d_metadata.json +8 -0
  15. models/embeddings/monolingual/dsb_128d.bin +2 -2
  16. models/embeddings/monolingual/dsb_128d_metadata.json +5 -3
  17. models/embeddings/monolingual/dsb_32d.bin +2 -2
  18. models/embeddings/monolingual/dsb_32d_metadata.json +5 -3
  19. models/embeddings/monolingual/dsb_64d.bin +2 -2
  20. models/embeddings/monolingual/dsb_64d_metadata.json +5 -3
  21. models/subword_markov/dsb_markov_ctx1_subword.parquet +2 -2
  22. models/subword_markov/dsb_markov_ctx1_subword_metadata.json +2 -2
  23. models/subword_markov/dsb_markov_ctx2_subword.parquet +2 -2
  24. models/subword_markov/dsb_markov_ctx2_subword_metadata.json +2 -2
  25. models/subword_markov/dsb_markov_ctx3_subword.parquet +2 -2
  26. models/subword_markov/dsb_markov_ctx3_subword_metadata.json +2 -2
  27. models/subword_markov/dsb_markov_ctx4_subword.parquet +2 -2
  28. models/subword_markov/dsb_markov_ctx4_subword_metadata.json +2 -2
  29. models/subword_ngram/dsb_2gram_subword.parquet +2 -2
  30. models/subword_ngram/dsb_2gram_subword_metadata.json +2 -2
  31. models/subword_ngram/dsb_3gram_subword.parquet +2 -2
  32. models/subword_ngram/dsb_3gram_subword_metadata.json +2 -2
  33. models/subword_ngram/dsb_4gram_subword.parquet +2 -2
  34. models/subword_ngram/dsb_4gram_subword_metadata.json +2 -2
  35. models/subword_ngram/dsb_5gram_subword.parquet +3 -0
  36. models/subword_ngram/dsb_5gram_subword_metadata.json +7 -0
  37. models/tokenizer/dsb_tokenizer_16k.model +2 -2
  38. models/tokenizer/dsb_tokenizer_16k.vocab +0 -0
  39. models/tokenizer/dsb_tokenizer_32k.model +2 -2
  40. models/tokenizer/dsb_tokenizer_32k.vocab +0 -0
  41. models/tokenizer/dsb_tokenizer_64k.model +2 -2
  42. models/tokenizer/dsb_tokenizer_64k.vocab +0 -0
  43. models/tokenizer/dsb_tokenizer_8k.model +2 -2
  44. models/tokenizer/dsb_tokenizer_8k.vocab +0 -0
  45. models/vocabulary/dsb_vocabulary.parquet +2 -2
  46. models/vocabulary/dsb_vocabulary_metadata.json +10 -9
  47. models/word_markov/dsb_markov_ctx1_word.parquet +2 -2
  48. models/word_markov/dsb_markov_ctx1_word_metadata.json +2 -2
  49. models/word_markov/dsb_markov_ctx2_word.parquet +2 -2
  50. models/word_markov/dsb_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: dsb
3
- language_name: DSB
4
  language_family: slavic_west
5
  tags:
6
  - wikilangs
@@ -10,11 +10,21 @@ tags:
10
  - n-gram
11
  - markov
12
  - wikipedia
 
 
 
 
 
 
 
 
 
 
13
  - monolingual
14
  - family-slavic_west
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.294
27
  - name: best_isotropy
28
  type: isotropy
29
- value: 0.8252
30
  - name: vocabulary_size
31
  type: vocab
32
- value: 32309
33
- generated: 2025-12-30
34
  ---
35
 
36
- # DSB - Wikilangs Models
37
  ## Comprehensive Research Report & Full Ablation Study
38
 
39
- This repository contains NLP models trained and evaluated by Wikilangs, specifically on **DSB** 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,55 +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.271x | 3.18 | 0.0992% | 351,825 |
76
- | **16k** | 3.624x | 3.52 | 0.1099% | 317,561 |
77
- | **32k** | 3.965x | 3.86 | 0.1202% | 290,267 |
78
- | **64k** | 4.294x 🏆 | 4.18 | 0.1302% | 268,009 |
79
 
80
  ### Tokenization Examples
81
 
82
  Below are sample sentences tokenized with each vocabulary size:
83
 
84
- **Sample 1:** `Złocieniec jo město w Pólskej, w pódwjacoropomorskem wójwodstwje. Lažy w Pomorsk...`
85
 
86
  | Vocab | Tokens | Count |
87
  |-------|--------|-------|
88
- | 8k | `▁zło cie niec jo ▁městowpólskej , ▁w ▁pódwjacoro ... (+13 more)` | 23 |
89
- | 16k | `▁zło cie niec jo ▁městowpólskej , ▁w ▁pódwjacoro ... (+13 more)` | 23 |
90
- | 32k | `▁zło cie niecjoměsto ▁w ▁pólskej ,wpódwjacoro ... (+13 more)` | 23 |
91
- | 64k | `▁zło cieniec joměstow ▁pólskej ,wpódwjacoro pomorskem ... (+12 more)` | 22 |
92
-
93
- **Sample 2:** `Nowy Dwór Królewski jo wjas w Pólskej.
94
 
95
- Kurów lažy mjazy městoma Chelmno a Torun...`
96
 
97
  | Vocab | Tokens | Count |
98
  |-------|--------|-------|
99
- | 8k | `▁nowy ▁dwór ▁k ró le wski ▁jo ▁wjas ▁w ▁pólskej ... (+21 more)` | 31 |
100
- | 16k | `▁nowy ▁dwór ▁kró le wski ▁jo ▁wjas ▁w ▁pólskej . ... (+19 more)` | 29 |
101
- | 32k | `▁nowydwórkróle wski jowjas ▁w ▁pólskej . ▁kurów ... (+16 more)` | 26 |
102
- | 64k | `▁nowydwórkróle wski jowjas ▁w ▁pólskej . ▁kurów ... (+15 more)` | 25 |
103
 
104
- **Sample 3:** `Janusz Gajos (* 23. septembra 1939) jo pólski grajaŕ, fotograf a pedagog.
105
- thumb
106
- ...`
107
 
108
  | Vocab | Tokens | Count |
109
  |-------|--------|-------|
110
- | 8k | `▁jan uszga jo s ▁(* 2 3 . ... (+33 more)` | 43 |
111
- | 16k | `▁jan uszga jo s ▁(* 2 3 . ... (+32 more)` | 42 |
112
- | 32k | `▁januszga jos ▁(* 2 3 . ▁septembra ... (+30 more)` | 40 |
113
- | 64k | `▁januszgajos ▁(* 2 3 .septembra1 ... (+29 more)` | 39 |
114
 
115
 
116
  ### Key Findings
117
 
118
- - **Best Compression:** 64k achieves 4.294x compression
119
- - **Lowest UNK Rate:** 8k with 0.0992% 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,57 +139,111 @@ thumb
125
 
126
  ![N-gram Perplexity](visualizations/ngram_perplexity.png)
127
 
 
 
128
  ![N-gram Coverage](visualizations/ngram_coverage.png)
129
 
130
  ### Results
131
 
132
- | N-gram | Perplexity | Entropy | Unique N-grams | Top-100 Coverage | Top-1000 Coverage |
133
- |--------|------------|---------|----------------|------------------|-------------------|
134
- | **2-gram** | 5,225 🏆 | 12.35 | 14,685 | 19.8% | 49.5% |
135
- | **2-gram** | 508 🏆 | 8.99 | 4,003 | 51.9% | 96.7% |
136
- | **3-gram** | 10,031 | 13.29 | 21,515 | 13.6% | 36.7% |
137
- | **3-gram** | 4,632 | 12.18 | 29,259 | 18.2% | 55.2% |
138
- | **4-gram** | 19,104 | 14.22 | 37,295 | 10.0% | 27.6% |
139
- | **4-gram** | 23,026 | 14.49 | 127,625 | 9.2% | 29.7% |
 
 
140
 
141
  ### Top 5 N-grams by Size
142
 
143
- **2-grams:**
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
144
 
145
  | Rank | N-gram | Count |
146
  |------|--------|-------|
147
- | 1 | `kategorija :` | 7,667 |
148
- | 2 | `) jo` | 2,004 |
149
- | 3 | `) .` | 1,655 |
150
- | 4 | `( *` | 1,443 |
151
- | 5 | `) ,` | 1,402 |
152
 
153
- **3-grams:**
154
 
155
  | Rank | N-gram | Count |
156
  |------|--------|-------|
157
- | 1 | `kategorija : sedlišćo` | 991 |
158
- | 2 | `: sedlišćo w` | 874 |
159
- | 3 | `. kategorija :` | 760 |
160
- | 4 | `kategorija : roź` | 672 |
161
- | 5 | `: roź .` | 672 |
162
 
163
- **4-grams:**
164
 
165
  | Rank | N-gram | Count |
166
  |------|--------|-------|
167
- | 1 | `kategorija : sedlišćo w` | 874 |
168
- | 2 | `kategorija : roź .` | 672 |
169
- | 3 | `kategorija : wum .` | 395 |
170
- | 4 | `978 - 3 -` | 367 |
171
- | 5 | `isbn 978 - 3` | 359 |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
172
 
173
 
174
  ### Key Findings
175
 
176
- - **Best Perplexity:** 2-gram with 508
177
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
178
- - **Coverage:** Top-1000 patterns cover ~30% of corpus
179
  - **Recommendation:** 4-gram or 5-gram for best predictive performance
180
 
181
  ---
@@ -183,55 +251,86 @@ thumb
183
 
184
  ![Markov Entropy](visualizations/markov_entropy.png)
185
 
 
 
186
  ![Markov Branching](visualizations/markov_branching.png)
187
 
188
  ### Results
189
 
190
- | Context | Avg Entropy | Perplexity | Branching Factor | Unique Contexts | Predictability |
191
- |---------|-------------|------------|------------------|-----------------|----------------|
192
- | **1** | 0.5742 | 1.489 | 3.58 | 83,705 | 42.6% |
193
- | **1** | 1.1222 | 2.177 | 9.59 | 1,062 | 0.0% |
194
- | **2** | 0.2165 | 1.162 | 1.49 | 299,024 | 78.3% |
195
- | **2** | 1.0246 | 2.034 | 5.91 | 10,184 | 0.0% |
196
- | **3** | 0.0847 | 1.061 | 1.15 | 446,488 | 91.5% |
197
- | **3** | 0.8420 | 1.793 | 3.87 | 60,186 | 15.8% |
198
- | **4** | 0.0411 🏆 | 1.029 | 1.07 | 514,008 | 95.9% |
199
- | **4** | 0.6005 🏆 | 1.516 | 2.44 | 232,636 | 39.9% |
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
200
 
201
- ### Generated Text Samples
 
 
 
 
 
 
 
 
 
 
202
 
203
- Below are text samples generated from each Markov chain model:
 
 
 
204
 
205
  **Context Size 1:**
206
 
207
- 1. `. konwencionelna mutageneza pśi albańskej a litawskeju ( - 1962 : hugo gunckel lüer – nimski`
208
- 2. `, 1 , leipzig palmenhaus auf der räuber hotzenplotz " kaž “ a twórje kupy ,`
209
- 3. `: jazor 58 . aitingk , ale teke literarne myto ćišinskego kategorija : prizaŕske bórkowy amt`
210
 
211
  **Context Size 2:**
212
 
213
- 1. `kategorija : sedlišćo w dolnej łužycy . wótkaze lisćina galiskich słowow pśi wordgumbo nastawk pśi i...`
214
- 2. `) jo družyna droznow . samica jo brunocarna , mjaztym až se w šyrokem źělu pódpołnocneje afriki`
215
- 3. `) . města nejwětše města su : santiago de cuba ) jo historiska slězyna japańskeje tragedije .`
216
 
217
  **Context Size 3:**
218
 
219
- 1. `kategorija : sedlišćo w pólskej kategorija : pomorske wójwodstwo kategorija : sedlišćo w českej kate...`
220
- 2. `: sedlišćo w baden - württembergskej kategorija : rěka w českej , ako na pśikład za staty ,`
221
- 3. `. kategorija : sad kategorija : bomy kategorija : hybridy`
222
 
223
  **Context Size 4:**
224
 
225
- 1. `kategorija : sedlišćo w argentinskej kategorija : stolica w europje kategorija : rěka , alfabetiski ...`
226
- 2. `kategorija : roź . 1757 kategorija : wum . 1913`
227
- 3. `kategorija : wum . 1985 kategorija : słowakski spiwaŕ kategorija : muž`
228
 
229
 
230
  ### Key Findings
231
 
232
- - **Best Predictability:** Context-4 with 95.9% predictability
233
  - **Branching Factor:** Decreases with context size (more deterministic)
234
- - **Memory Trade-off:** Larger contexts require more storage (232,636 contexts)
235
  - **Recommendation:** Context-3 or Context-4 for text generation
236
 
237
  ---
@@ -247,36 +346,36 @@ Below are text samples generated from each Markov chain model:
247
 
248
  | Metric | Value |
249
  |--------|-------|
250
- | Vocabulary Size | 32,309 |
251
- | Total Tokens | 432,054 |
252
- | Mean Frequency | 13.37 |
253
  | Median Frequency | 3 |
254
- | Frequency Std Dev | 142.47 |
255
 
256
  ### Most Common Words
257
 
258
  | Rank | Word | Frequency |
259
  |------|------|-----------|
260
- | 1 | a | 12,388 |
261
- | 2 | w | 12,290 |
262
- | 3 | jo | 11,552 |
263
- | 4 | kategorija | 7,674 |
264
- | 5 | na | 4,664 |
265
- | 6 | z | 4,262 |
266
- | 7 | se | 3,646 |
267
- | 8 | wót | 3,524 |
268
- | 9 | su | 2,927 |
269
- | 10 | do | 2,441 |
270
 
271
  ### Least Common Words (from vocabulary)
272
 
273
  | Rank | Word | Frequency |
274
  |------|------|-----------|
275
- | 1 | 1474wjerchojstwo | 2 |
276
- | 2 | wolgast5 | 2 |
277
- | 3 | 1478wjerchojstwo | 2 |
278
- | 4 | 1592 | 2 |
279
- | 5 | 1625wjerchojstwo | 2 |
280
  | 6 | zachdniego | 2 |
281
  | 7 | gdanskiego | 2 |
282
  | 8 | podzially | 2 |
@@ -287,24 +386,24 @@ Below are text samples generated from each Markov chain model:
287
 
288
  | Metric | Value |
289
  |--------|-------|
290
- | Zipf Coefficient | 0.9658 |
291
- | R² (Goodness of Fit) | 0.995856 |
292
  | Adherence Quality | **excellent** |
293
 
294
  ### Coverage Analysis
295
 
296
  | Top N Words | Coverage |
297
  |-------------|----------|
298
- | Top 100 | 30.4% |
299
- | Top 1,000 | 57.0% |
300
- | Top 5,000 | 77.2% |
301
- | Top 10,000 | 85.9% |
302
 
303
  ### Key Findings
304
 
305
- - **Zipf Compliance:** R²=0.9959 indicates excellent adherence to Zipf's law
306
- - **High Frequency Dominance:** Top 100 words cover 30.4% of corpus
307
- - **Long Tail:** 22,309 words needed for remaining 14.1% coverage
308
 
309
  ---
310
  ## 5. Word Embeddings Evaluation
@@ -317,24 +416,121 @@ Below are text samples generated from each Markov chain model:
317
 
318
  ![t-SNE Sentences](visualizations/tsne_sentences.png)
319
 
320
- ### Model Comparison
321
 
322
- | Model | Vocab Size | Dimension | Avg Norm | Std Norm | Isotropy |
323
- |-------|------------|-----------|----------|----------|----------|
324
- | **mono_32d** | 11,406 | 32 | 4.255 | 0.918 | 0.8252 🏆 |
325
- | **mono_64d** | 11,406 | 64 | 4.511 | 0.859 | 0.5783 |
326
- | **mono_128d** | 11,406 | 128 | 4.576 | 0.852 | 0.1767 |
327
- | **embeddings_enhanced** | 0 | 0 | 0.000 | 0.000 | 0.0000 |
 
 
 
 
 
 
 
 
 
 
 
328
 
329
  ### Key Findings
330
 
331
- - **Best Isotropy:** mono_32d with 0.8252 (more uniform distribution)
332
- - **Dimension Trade-off:** Higher dimensions capture more semantics but reduce isotropy
333
- - **Vocabulary Coverage:** All models cover 11,406 words
334
- - **Recommendation:** 100d for balanced semantic capture and efficiency
335
 
336
  ---
337
- ## 6. Summary & Recommendations
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
338
 
339
  ![Performance Dashboard](visualizations/performance_dashboard.png)
340
 
@@ -342,11 +538,12 @@ Below are text samples generated from each Markov chain model:
342
 
343
  | Component | Recommended | Rationale |
344
  |-----------|-------------|-----------|
345
- | Tokenizer | **32k BPE** | Best compression (4.29x) with low UNK rate |
346
- | N-gram | **5-gram** | Lowest perplexity (508) |
347
- | Markov | **Context-4** | Highest predictability (95.9%) |
348
  | Embeddings | **100d** | Balanced semantic capture and isotropy |
349
 
 
350
  ---
351
  ## Appendix: Metrics Glossary & Interpretation Guide
352
 
@@ -536,7 +733,8 @@ If you use these models in your research, please cite:
536
  author = {Kamali, Omar},
537
  title = {Wikilangs: Open NLP Models for Wikipedia Languages},
538
  year = {2025},
539
- publisher = {HuggingFace},
 
540
  url = {https://huggingface.co/wikilangs}
541
  institution = {Omneity Labs}
542
  }
@@ -552,7 +750,8 @@ MIT License - Free for academic and commercial use.
552
  - 🤗 Models: [huggingface.co/wikilangs](https://huggingface.co/wikilangs)
553
  - 📊 Data: [wikipedia-monthly](https://huggingface.co/datasets/omarkamali/wikipedia-monthly)
554
  - 👤 Author: [Omar Kamali](https://huggingface.co/omarkamali)
 
555
  ---
556
  *Generated by Wikilangs Models Pipeline*
557
 
558
- *Report Date: 2025-12-30 08:33:54*
 
1
  ---
2
  language: dsb
3
+ language_name: Lower Sorbian
4
  language_family: slavic_west
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-slavic_west
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.367
37
  - name: best_isotropy
38
  type: isotropy
39
+ value: 0.8231
40
  - name: vocabulary_size
41
  type: vocab
42
+ value: 0
43
+ generated: 2026-01-04
44
  ---
45
 
46
+ # Lower Sorbian - Wikilangs Models
47
  ## Comprehensive Research Report & Full Ablation Study
48
 
49
+ This repository contains NLP models trained and evaluated by Wikilangs, specifically on **Lower Sorbian** 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.295x | 3.30 | 0.1090% | 314,655 |
94
+ | **16k** | 3.690x | 3.69 | 0.1221% | 280,957 |
95
+ | **32k** | 4.049x | 4.05 | 0.1339% | 256,086 |
96
+ | **64k** | 4.367x 🏆 | 4.37 | 0.1445% | 237,425 |
97
 
98
  ### Tokenization Examples
99
 
100
  Below are sample sentences tokenized with each vocabulary size:
101
 
102
+ **Sample 1:** `Andrew Garfield (* 20. awgusta Los Angeles) jo amerikański grajaŕ. Eksterne wótk...`
103
 
104
  | Vocab | Tokens | Count |
105
  |-------|--------|-------|
106
+ | 8k | `▁andre wgar fi el d (*2 0 ... (+12 more)` | 22 |
107
+ | 16k | `▁andre wgar fi eld (*2 0 . ... (+11 more)` | 21 |
108
+ | 32k | `▁andrew ▁gar field(*2 0 .awgustalos ... (+9 more)` | 19 |
109
+ | 64k | `▁andrewgarfield(*2 0 . awgustalos ▁angeles ... (+8 more)` | 18 |
 
 
110
 
111
+ **Sample 2:** `Pabianice jo město w Pólskej, w łódźskem wójwodstwje, we wokrejsu Pabianice. W l...`
112
 
113
  | Vocab | Tokens | Count |
114
  |-------|--------|-------|
115
+ | 8k | `▁pa bia nice ▁jo ▁město ▁w ▁pólskej , ▁w ▁łódźskem ... (+26 more)` | 36 |
116
+ | 16k | `▁pa bia nice ▁jo ▁město ▁w ▁pólskej , ▁w ▁łódźskem ... (+26 more)` | 36 |
117
+ | 32k | `▁pabianicejoměstowpólskej , ▁w ▁łódźskem wójwodstwje , ... (+22 more)` | 32 |
118
+ | 64k | `▁pabianicejoměstowpólskej , ▁w ▁łódźskem wójwodstwje , ... (+22 more)` | 32 |
119
 
120
+ **Sample 3:** `Żukowo (kaš. Żukòwò, nim. Zuckau) jo město w Pólskej, kótarež lažy w pomorskem w...`
 
 
121
 
122
  | Vocab | Tokens | Count |
123
  |-------|--------|-------|
124
+ | 8k | `▁ż u kowo ( kaš . ▁ż uk ò w ... (+22 more)` | 32 |
125
+ | 16k | `▁ż u kowo ( kaš . ▁ż uk ò w ... (+22 more)` | 32 |
126
+ | 32k | `▁żukowo( kaš . ▁ż ukòwò , ▁nim . ▁zu ... (+17 more)` | 27 |
127
+ | 64k | `▁żukowo ▁( kaš . ▁żukòwò ,nim . zu ckau ... (+16 more)` | 26 |
128
 
129
 
130
  ### Key Findings
131
 
132
+ - **Best Compression:** 64k achieves 4.367x compression
133
+ - **Lowest UNK Rate:** 8k with 0.1090% 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 | 4,470 | 12.13 | 8,572 | 17.8% | 48.2% |
151
+ | **2-gram** | Subword | 446 🏆 | 8.80 | 3,440 | 54.0% | 97.7% |
152
+ | **3-gram** | Word | 5,728 | 12.48 | 9,797 | 15.0% | 41.9% |
153
+ | **3-gram** | Subword | 4,110 | 12.01 | 24,943 | 18.0% | 57.3% |
154
+ | **4-gram** | Word | 10,398 | 13.34 | 16,574 | 10.9% | 31.5% |
155
+ | **4-gram** | Subword | 21,363 | 14.38 | 109,172 | 8.1% | 29.6% |
156
+ | **5-gram** | Word | 7,815 | 12.93 | 11,757 | 11.1% | 34.9% |
157
+ | **5-gram** | Subword | 57,069 | 15.80 | 221,040 | 5.0% | 20.1% |
158
 
159
  ### Top 5 N-grams by Size
160
 
161
+ **2-grams (Word):**
162
+
163
+ | Rank | N-gram | Count |
164
+ |------|--------|-------|
165
+ | 1 | `až do` | 933 |
166
+ | 2 | `w lěśe` | 890 |
167
+ | 3 | `jo był` | 874 |
168
+ | 4 | `jo se` | 751 |
169
+ | 5 | `w pólskej` | 720 |
170
+
171
+ **3-grams (Word):**
172
+
173
+ | Rank | N-gram | Count |
174
+ |------|--------|-------|
175
+ | 1 | `jo město w` | 444 |
176
+ | 2 | `w lěśe jo` | 408 |
177
+ | 3 | `w pólskej w` | 301 |
178
+ | 4 | `jo how bydliło` | 290 |
179
+ | 5 | `město w pólskej` | 280 |
180
+
181
+ **4-grams (Word):**
182
+
183
+ | Rank | N-gram | Count |
184
+ |------|--------|-------|
185
+ | 1 | `jo město w pólskej` | 278 |
186
+ | 2 | `lěśe jo how bydliło` | 271 |
187
+ | 3 | `w lěśe jo how` | 271 |
188
+ | 4 | `město w pólskej w` | 265 |
189
+ | 5 | `luźi galerija w pólskej` | 195 |
190
+
191
+ **5-grams (Word):**
192
 
193
  | Rank | N-gram | Count |
194
  |------|--------|-------|
195
+ | 1 | `w lěśe jo how bydliło` | 271 |
196
+ | 2 | `jo město w pólskej w` | 264 |
197
+ | 3 | `oslwokrejs górne błota łužyca bramborska` | 123 |
198
+ | 4 | `spohn was blüht denn da` | 92 |
199
+ | 5 | `bechtle spohn was blüht denn` | 92 |
200
 
201
+ **2-grams (Subword):**
202
 
203
  | Rank | N-gram | Count |
204
  |------|--------|-------|
205
+ | 1 | `a _` | 64,101 |
206
+ | 2 | `e _` | 45,814 |
207
+ | 3 | `_ w` | 44,765 |
208
+ | 4 | `_ s` | 35,936 |
209
+ | 5 | `o _` | 35,677 |
210
 
211
+ **3-grams (Subword):**
212
 
213
  | Rank | N-gram | Count |
214
  |------|--------|-------|
215
+ | 1 | `j o _` | 13,646 |
216
+ | 2 | `_ j o` | 12,615 |
217
+ | 3 | `_ a _` | 11,980 |
218
+ | 4 | `n a _` | 11,930 |
219
+ | 5 | `s k e` | 11,746 |
220
+
221
+ **4-grams (Subword):**
222
+
223
+ | Rank | N-gram | Count |
224
+ |------|--------|-------|
225
+ | 1 | `_ j o _` | 11,352 |
226
+ | 2 | `s k i _` | 7,449 |
227
+ | 3 | `s k e j` | 6,203 |
228
+ | 4 | `_ w ó t` | 6,170 |
229
+ | 5 | `s k a _` | 4,852 |
230
+
231
+ **5-grams (Subword):**
232
+
233
+ | Rank | N-gram | Count |
234
+ |------|--------|-------|
235
+ | 1 | `_ w ó t _` | 3,402 |
236
+ | 2 | `s e r b s` | 3,221 |
237
+ | 3 | `e r b s k` | 3,202 |
238
+ | 4 | `_ s e r b` | 2,762 |
239
+ | 5 | `a _ j o _` | 2,563 |
240
 
241
 
242
  ### Key Findings
243
 
244
+ - **Best Perplexity:** 2-gram (subword) with 446
245
  - **Entropy Trend:** Decreases with larger n-grams (more predictable)
246
+ - **Coverage:** Top-1000 patterns cover ~20% 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.6397 | 1.558 | 3.41 | 79,306 | 36.0% |
263
+ | **1** | Subword | 1.0660 | 2.094 | 8.70 | 993 | 0.0% |
264
+ | **2** | Word | 0.1672 | 1.123 | 1.33 | 269,674 | 83.3% |
265
+ | **2** | Subword | 0.9899 | 1.986 | 5.80 | 8,629 | 1.0% |
266
+ | **3** | Word | 0.0539 | 1.038 | 1.08 | 355,887 | 94.6% |
267
+ | **3** | Subword | 0.8277 | 1.775 | 3.86 | 50,014 | 17.2% |
268
+ | **4** | Word | 0.0234 🏆 | 1.016 | 1.03 | 383,185 | 97.7% |
269
+ | **4** | Subword | 0.6176 | 1.534 | 2.51 | 193,064 | 38.2% |
270
+
271
+ ### Generated Text Samples (Word-based)
272
+
273
+ Below are text samples generated from each word-based Markov chain model:
274
+
275
+ **Context Size 1:**
276
+
277
+ 1. `a hiri słowo jo był historiski region region region iv december dartford engelska 6 kulojte až`
278
+ 2. `w pomorskem wójewódstwje we chicago homepage lfn english creoles spoken in 3 349 300 źiśi ze`
279
+ 3. `jo jano 13 v werner měškank serbski słownik za literaturu w pólskej w prien am nordrand`
280
+
281
+ **Context Size 2:**
282
+
283
+ 1. `až do drjowku w lěśe jo how bydliło 2 467 luźi galerija w pólskej w kujawsko pomorskem`
284
+ 2. `w lěśe wóna jo była hanka krawcec cłonkojstwo domowinje pśisłušaju slědujuce towaristwa župy budyšyn...`
285
+ 3. `jo był dolnołužyska wjas pla chóśebuza wót lěta pśecej na pjerwjejšnych systemach by mógło se snaź d...`
286
 
287
+ **Context Size 3:**
288
+
289
+ 1. `jo město w pólskej w podkarpatskem wójwodstwje we wokrejsu chełmno w lěśe jo how bydliło 57 458 luźi`
290
+ 2. `w lěśe jo w sankt petersburgu jo był jaden z nejwuznamnjejšych zastupnikow tak pomjenjonego bergaŕsk...`
291
+ 3. `w pólskej w kujawsko pomorskem wójwodstwje we wokrejsu leżajsk w lěśe jo how bydliło 127 602 luźi ek...`
292
+
293
+ **Context Size 4:**
294
+
295
+ 1. `jo město w pólskej w lublińskem wójwodstwje we wokrejsu hrubieszów w lěśe jo how bydliło 13 766 luźi...`
296
+ 2. `lěśe jo how bydliło 65 149 luźi historiski centrum jo na lisćinje unesco mě w drugich rěcach vilnius...`
297
+ 3. `w lěśe jo how bydliło 3 223 luźi galerija eksterne wótkaze biała rawska pól biała rawska pól w pólsk...`
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. `_zojejost_łnja_s`
307
+ 2. `aropynderoveiin.`
308
+ 3. `epruroni_dpekaru`
309
 
310
  **Context Size 2:**
311
 
312
+ 1. `a_kótka_źiw_mil_w`
313
+ 2. `e_da_kuchórbski_t`
314
+ 3. `_w_sertika_wu_re_`
315
 
316
  **Context Size 3:**
317
 
318
+ 1. `jo_spis_krěpojcne_`
319
+ 2. `_jo_septemata_kral`
320
+ 3. `_a_wótšy_pśeder_wi`
321
 
322
  **Context Size 4:**
323
 
324
+ 1. `_jo_kupki_spisowaśe`
325
+ 2. `ski_casom_stiftung_`
326
+ 3. `_wótwezeł._pěś_žołt`
327
 
328
 
329
  ### Key Findings
330
 
331
+ - **Best Predictability:** Context-4 (word) with 97.7% predictability
332
  - **Branching Factor:** Decreases with context size (more deterministic)
333
+ - **Memory Trade-off:** Larger contexts require more storage (193,064 contexts)
334
  - **Recommendation:** Context-3 or Context-4 for text generation
335
 
336
  ---
 
346
 
347
  | Metric | Value |
348
  |--------|-------|
349
+ | Vocabulary Size | 31,116 |
350
+ | Total Tokens | 390,195 |
351
+ | Mean Frequency | 12.54 |
352
  | Median Frequency | 3 |
353
+ | Frequency Std Dev | 136.48 |
354
 
355
  ### Most Common Words
356
 
357
  | Rank | Word | Frequency |
358
  |------|------|-----------|
359
+ | 1 | a | 12,373 |
360
+ | 2 | w | 12,119 |
361
+ | 3 | jo | 11,480 |
362
+ | 4 | na | 4,655 |
363
+ | 5 | z | 4,220 |
364
+ | 6 | se | 3,637 |
365
+ | 7 | wót | 3,522 |
366
+ | 8 | su | 2,923 |
367
+ | 9 | do | 2,438 |
368
+ | 10 | za | 1,989 |
369
 
370
  ### Least Common Words (from vocabulary)
371
 
372
  | Rank | Word | Frequency |
373
  |------|------|-----------|
374
+ | 1 | wikowje | 2 |
375
+ | 2 | kšace | 2 |
376
+ | 3 | gotował | 2 |
377
+ | 4 | moderěrował | 2 |
378
+ | 5 | procowarjow | 2 |
379
  | 6 | zachdniego | 2 |
380
  | 7 | gdanskiego | 2 |
381
  | 8 | podzially | 2 |
 
386
 
387
  | Metric | Value |
388
  |--------|-------|
389
+ | Zipf Coefficient | 0.9483 |
390
+ | R² (Goodness of Fit) | 0.996724 |
391
  | Adherence Quality | **excellent** |
392
 
393
  ### Coverage Analysis
394
 
395
  | Top N Words | Coverage |
396
  |-------------|----------|
397
+ | Top 100 | 30.7% |
398
+ | Top 1,000 | 56.8% |
399
+ | Top 5,000 | 76.7% |
400
+ | Top 10,000 | 85.6% |
401
 
402
  ### Key Findings
403
 
404
+ - **Zipf Compliance:** R²=0.9967 indicates excellent adherence to Zipf's law
405
+ - **High Frequency Dominance:** Top 100 words cover 30.7% of corpus
406
+ - **Long Tail:** 21,116 words needed for remaining 14.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.8231 🏆 | 0.3397 | N/A | N/A |
432
+ | **mono_64d** | 64 | 0.5887 | 0.3131 | N/A | N/A |
433
+ | **mono_128d** | 128 | 0.1790 | 0.3018 | N/A | N/A |
434
+ | **aligned_32d** | 32 | 0.8231 | 0.3455 | 0.0460 | 0.2420 |
435
+ | **aligned_64d** | 64 | 0.5887 | 0.3066 | 0.0660 | 0.3060 |
436
+ | **aligned_128d** | 128 | 0.1790 | 0.3019 | 0.0860 | 0.3460 |
437
 
438
  ### Key Findings
439
 
440
+ - **Best Isotropy:** mono_32d with 0.8231 (more uniform distribution)
441
+ - **Semantic Density:** Average pairwise similarity of 0.3181. Lower values indicate better semantic separation.
442
+ - **Alignment Quality:** Aligned models achieve up to 8.6% R@1 in cross-lingual retrieval.
443
+ - **Recommendation:** 128d aligned for best cross-lingual performance
444
 
445
  ---
446
+ ## 6. Morphological Analysis (Experimental)
447
+
448
+ This section presents an automated morphological analysis derived from the statistical divergence between word-level and subword-level models. By analyzing where subword predictability spikes and where word-level coverage fails, we can infer linguistic structures without supervised data.
449
+
450
+ ### 6.1 Productivity & Complexity
451
+
452
+ | Metric | Value | Interpretation | Recommendation |
453
+ |--------|-------|----------------|----------------|
454
+ | Productivity Index | **5.000** | High morphological productivity | Reliable analysis |
455
+ | Idiomaticity Gap | **0.741** | 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
+
465
+ #### Productive Suffixes
466
+ | Suffix | Examples |
467
+ |--------|----------|
468
+ | `-a` | trilogija, rinetta, kenija |
469
+ | `-e` | gališćinje, evidence, hercegowinje |
470
+ | `-je` | gališćinje, hercegowinje, wótstoje |
471
+ | `-ch` | reichenbach, proch, žurnalistiskich |
472
+ | `-ka` | hypotetiska, francoska, wěrika |
473
+ | `-ki` | monotypiski, wólšynki, keltiski |
474
+ | `-ow` | dokusow, wunjow, basnikow |
475
+ | `-nje` | gališćinje, hercegowinje, wótchylenje |
476
+
477
+ ### 6.3 Bound Stems (Lexical Roots)
478
+
479
+ 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.
480
+
481
+ | Stem | Cohesion | Substitutability | Examples |
482
+ |------|----------|------------------|----------|
483
+ | `šćin` | 1.95x | 41 contexts | češćinu, češćina, češćiny |
484
+ | `jenj` | 1.71x | 62 contexts | jenje, mjenju, mjenja |
485
+ | `ótar` | 2.17x | 19 contexts | kótara, kótaru, kótare |
486
+ | `skej` | 1.53x | 56 contexts | českej, wuskej, irskej |
487
+ | `měst` | 1.87x | 25 contexts | městy, města, město |
488
+ | `rbsk` | 1.95x | 17 contexts | srbská, serbsku, serbsko |
489
+ | `owan` | 1.70x | 26 contexts | głowan, cowanje, źěkowano |
490
+ | `kóta` | 2.17x | 12 contexts | kótara, kótaru, kótare |
491
+ | `iski` | 1.63x | 25 contexts | niski, bliski, leniski |
492
+ | `iske` | 1.46x | 36 contexts | niske, aziske, bliske |
493
+ | `erbs` | 1.90x | 14 contexts | herbst, serbsku, serbsko |
494
+ | `imsk` | 1.72x | 16 contexts | nimska, nimsko, nimske |
495
+
496
+ ### 6.4 Affix Compatibility (Co-occurrence)
497
+
498
+ This table shows which prefixes and suffixes most frequently co-occur on the same stems, revealing the 'stacking' rules of the language's morphology.
499
+
500
+ *No significant affix co-occurrences detected.*
501
+
502
+
503
+ ### 6.5 Recursive Morpheme Segmentation
504
+
505
+ Using **Recursive Hierarchical Substitutability**, we decompose complex words into their constituent morphemes. This approach handles nested affixes (e.g., `prefix-prefix-root-suffix`).
506
+
507
+ | Word | Suggested Split | Confidence | Stem |
508
+ |------|-----------------|------------|------|
509
+ | wóznamjenjenje | **`wóznam-je-nje-nje`** | 7.5 | `wóznam` |
510
+ | biologowka | **`biolog-ow-ka`** | 6.0 | `biolog` |
511
+ | pósćonych | **`pósćony-ch`** | 4.5 | `pósćony` |
512
+ | wótstojecych | **`wótstojecy-ch`** | 4.5 | `wótstojecy` |
513
+ | pomorskeje | **`pomorske-je`** | 4.5 | `pomorske` |
514
+ | halšterje | **`halšter-je`** | 4.5 | `halšter` |
515
+ | nejlěpšych | **`nejlěpšy-ch`** | 4.5 | `nejlěpšy` |
516
+ | kamjentnych | **`kamjentny-ch`** | 4.5 | `kamjentny` |
517
+ | pódpołnocnje | **`pódpołnoc-nje`** | 4.5 | `pódpołnoc` |
518
+ | spominanje | **`spomina-nje`** | 4.5 | `spomina` |
519
+ | pódwjacorneje | **`pódwjacorne-je`** | 4.5 | `pódwjacorne` |
520
+ | organiskeje | **`organiske-je`** | 4.5 | `organiske` |
521
+ | wótpósłańcka | **`wótpósłańc-ka`** | 4.5 | `wótpósłańc` |
522
+ | chinskeje | **`chinske-je`** | 4.5 | `chinske` |
523
+ | twarjenjach | **`twarjenja-ch`** | 4.5 | `twarjenja` |
524
+
525
+ ### 6.6 Linguistic Interpretation
526
+
527
+ > **Automated Insight:**
528
+ The language Lower Sorbian shows high morphological productivity. The subword models are significantly more efficient than word models, suggesting a rich system of affixation or compounding.
529
+
530
+ > **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.
531
+
532
+ ---
533
+ ## 7. Summary & Recommendations
534
 
535
  ![Performance Dashboard](visualizations/performance_dashboard.png)
536
 
 
538
 
539
  | Component | Recommended | Rationale |
540
  |-----------|-------------|-----------|
541
+ | Tokenizer | **64k BPE** | Best compression (4.37x) |
542
+ | N-gram | **2-gram** | Lowest perplexity (446) |
543
+ | Markov | **Context-4** | Highest predictability (97.7%) |
544
  | Embeddings | **100d** | Balanced semantic capture and isotropy |
545
 
546
+
547
  ---
548
  ## Appendix: Metrics Glossary & Interpretation Guide
549
 
 
733
  author = {Kamali, Omar},
734
  title = {Wikilangs: Open NLP Models for Wikipedia Languages},
735
  year = {2025},
736
+ doi = {10.5281/zenodo.18073153},
737
+ publisher = {Zenodo},
738
  url = {https://huggingface.co/wikilangs}
739
  institution = {Omneity Labs}
740
  }
 
750
  - 🤗 Models: [huggingface.co/wikilangs](https://huggingface.co/wikilangs)
751
  - 📊 Data: [wikipedia-monthly](https://huggingface.co/datasets/omarkamali/wikipedia-monthly)
752
  - 👤 Author: [Omar Kamali](https://huggingface.co/omarkamali)
753
+ - 🤝 Sponsor: [Featherless AI](https://featherless.ai)
754
  ---
755
  *Generated by Wikilangs Models Pipeline*
756
 
757
+ *Report Date: 2026-01-04 02:35:27*
models/embeddings/aligned/dsb_128d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:44d5e48685a3f6634762f9d640be037f055cde481781bb0f0d0d7db242549891
3
+ size 1034871950
models/embeddings/aligned/dsb_128d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "dsb", "dim": 128, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/dsb_128d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:292973cad54ffbfb67fbdb195461d778020da4f9f4937d7a2029a168f7c5565b
3
+ size 65664
models/embeddings/aligned/dsb_128d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "dsb",
3
+ "dimension": 128,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 2894,
7
+ "vocab_size": 10440
8
+ }
models/embeddings/aligned/dsb_32d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:219809436b8357d45d070c67fa33443687fa4b37032640fa3568d2294e0073b8
3
+ size 258854030
models/embeddings/aligned/dsb_32d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "dsb", "dim": 32, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/dsb_32d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:be16301266ab3358f75636b55076ae6198c1bcb4a786fb822487c6991d261dd8
3
+ size 4224
models/embeddings/aligned/dsb_32d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "dsb",
3
+ "dimension": 32,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 2894,
7
+ "vocab_size": 10440
8
+ }
models/embeddings/aligned/dsb_64d.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:38d8f796364be353447c2c77dd18cd77fbe362a7edc792dbef86324ea3dc2841
3
+ size 517526670
models/embeddings/aligned/dsb_64d.meta.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"lang": "dsb", "dim": 64, "max_seq_len": 512, "is_aligned": true}
models/embeddings/aligned/dsb_64d.projection.npy ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:dbcbd4592b3c876a2ba35cfa0bf8d8d6d29218bbb5e7c880a1d6584b55575d26
3
+ size 16512
models/embeddings/aligned/dsb_64d_metadata.json ADDED
@@ -0,0 +1,8 @@
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "language": "dsb",
3
+ "dimension": 64,
4
+ "version": "aligned",
5
+ "hub_language": "en",
6
+ "seed_vocab_size": 2894,
7
+ "vocab_size": 10440
8
+ }
models/embeddings/monolingual/dsb_128d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:69c984e87d1636c608606c4c5465d8002825ca2f54d231f3d0a0277f593edecb
3
- size 1035879476
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:44d5e48685a3f6634762f9d640be037f055cde481781bb0f0d0d7db242549891
3
+ size 1034871950
models/embeddings/monolingual/dsb_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": 11406
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": 10440
15
  }
models/embeddings/monolingual/dsb_32d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:081fb3a085c2c647fb4256975b1946eef7c9db9c3214387b4f47c18933cc0175
3
- size 259119668
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:219809436b8357d45d070c67fa33443687fa4b37032640fa3568d2294e0073b8
3
+ size 258854030
models/embeddings/monolingual/dsb_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": 11406
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": 10440
15
  }
models/embeddings/monolingual/dsb_64d.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:811da793a1d91d94aecf05624b1782db2a0780ebddab0716c5a7449a1314bee9
3
- size 518039604
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:38d8f796364be353447c2c77dd18cd77fbe362a7edc792dbef86324ea3dc2841
3
+ size 517526670
models/embeddings/monolingual/dsb_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": 11406
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": 10440
15
  }
models/subword_markov/dsb_markov_ctx1_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e75991d06d216913d5349e487fb7f5dda5adf4a84e1112c7d75804a41f526651
3
- size 78473
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:436c54ec357fb0763cb0fa733bc0d9b76ece24f29c3e7c54a45c45b049e148d5
3
+ size 68396
models/subword_markov/dsb_markov_ctx1_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 1,
3
  "variant": "subword",
4
  "language": "dsb",
5
- "unique_contexts": 1062,
6
- "total_transitions": 3435229
7
  }
 
2
  "context_size": 1,
3
  "variant": "subword",
4
  "language": "dsb",
5
+ "unique_contexts": 993,
6
+ "total_transitions": 3036522
7
  }
models/subword_markov/dsb_markov_ctx2_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:d2d04158c387dad22bea4d026f6486e27063cbccf1b5b267c23067200f38df80
3
- size 474937
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cf8c66b2f77c86ec521fc7217c756384af0d18bbcf9b0d8a2730634967f26a23
3
+ size 384677
models/subword_markov/dsb_markov_ctx2_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "dsb",
5
- "unique_contexts": 10184,
6
- "total_transitions": 3431780
7
  }
 
2
  "context_size": 2,
3
  "variant": "subword",
4
  "language": "dsb",
5
+ "unique_contexts": 8629,
6
+ "total_transitions": 3033131
7
  }
models/subword_markov/dsb_markov_ctx3_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:65e073c2672b04e0cc6a210d14c210bd5f5b2d610e9df300eec4e645bb58b544
3
- size 1661127
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ec822035fb412125284dd467c486f26ea20024799da89ad39855500832b0909d
3
+ size 1385595
models/subword_markov/dsb_markov_ctx3_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "dsb",
5
- "unique_contexts": 60186,
6
- "total_transitions": 3428331
7
  }
 
2
  "context_size": 3,
3
  "variant": "subword",
4
  "language": "dsb",
5
+ "unique_contexts": 50014,
6
+ "total_transitions": 3029740
7
  }
models/subword_markov/dsb_markov_ctx4_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:8e1e13ba8381c4b0aeedbfd268e3df569421c02c0509adce385934b61c9d4134
3
- size 4548151
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a2799c7de3f7a71ac3bd4755535b089956b3956e85f98305a147b00e57292674
3
+ size 3794359
models/subword_markov/dsb_markov_ctx4_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "dsb",
5
- "unique_contexts": 232636,
6
- "total_transitions": 3424882
7
  }
 
2
  "context_size": 4,
3
  "variant": "subword",
4
  "language": "dsb",
5
+ "unique_contexts": 193064,
6
+ "total_transitions": 3026349
7
  }
models/subword_ngram/dsb_2gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:54ab8a0b169ac29131c7497aab72ed0c6262588ee25933132b96a9ea893c6cab
3
- size 52880
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:746b922edca237142efcbd8f0a2604d0bc113fc7492d8d2132521b3bfa37b718
3
+ size 45593
models/subword_ngram/dsb_2gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "dsb",
5
- "unique_ngrams": 4003,
6
- "total_ngrams": 3435229
7
  }
 
2
  "n": 2,
3
  "variant": "subword",
4
  "language": "dsb",
5
+ "unique_ngrams": 3440,
6
+ "total_ngrams": 3036522
7
  }
models/subword_ngram/dsb_3gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:491b077d6277a92677cbfb36b213f6c9845b6625d639c685caaf3c81b098ae71
3
- size 355310
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:aafff3e6d0a5d49cc78d1782ea111c41a440abaac93567a6bf42e0d2b8ef7c96
3
+ size 303856
models/subword_ngram/dsb_3gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "dsb",
5
- "unique_ngrams": 29259,
6
- "total_ngrams": 3431780
7
  }
 
2
  "n": 3,
3
  "variant": "subword",
4
  "language": "dsb",
5
+ "unique_ngrams": 24943,
6
+ "total_ngrams": 3033131
7
  }
models/subword_ngram/dsb_4gram_subword.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:e0210a38e1f600c563d26ca91f697d6f95cf6c35633b5d062baf24f897ca3ea6
3
- size 1444626
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:2abb409c94e0aeed705ed22a3fcd724bf52f441f36328a3429e4afdc66c159f4
3
+ size 1242812
models/subword_ngram/dsb_4gram_subword_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "dsb",
5
- "unique_ngrams": 127625,
6
- "total_ngrams": 3428331
7
  }
 
2
  "n": 4,
3
  "variant": "subword",
4
  "language": "dsb",
5
+ "unique_ngrams": 109172,
6
+ "total_ngrams": 3029740
7
  }
models/subword_ngram/dsb_5gram_subword.parquet ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:de69022eb2dd2a5cdaebc53519477c8f8fc3713ae4325ba2d493b8abe4562b8b
3
+ size 2555147
models/subword_ngram/dsb_5gram_subword_metadata.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "n": 5,
3
+ "variant": "subword",
4
+ "language": "dsb",
5
+ "unique_ngrams": 221040,
6
+ "total_ngrams": 3026349
7
+ }
models/tokenizer/dsb_tokenizer_16k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:83223ed94450b083f445917ad19d45108f784776f35590e24106f870e89fc048
3
- size 509210
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:f450890dd63280defd15857196d9e6c71c97ea5f5fd59cb2b9bba9938ab713c8
3
+ size 512642
models/tokenizer/dsb_tokenizer_16k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/dsb_tokenizer_32k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:385d9c2bd426307bc0210de4e33f8ef09b6d82186b16307f29650deb8b0128a5
3
- size 785019
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:a02834e9aaaec4da88204cbbcb026a0d36f29083c0a5a9feb0277ef838fc7254
3
+ size 789886
models/tokenizer/dsb_tokenizer_32k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/dsb_tokenizer_64k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:be1039984143149d1392ae5a765816e6ff2af6dad234612968afce460c6ae6d9
3
- size 1380290
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:ad041a92ae3179f3718bcb864966e84846b5f19fe718d3055ef75582461abc58
3
+ size 1397025
models/tokenizer/dsb_tokenizer_64k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/tokenizer/dsb_tokenizer_8k.model CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:230d8ebcf4cbf468966a99ee03e43588c6326a65ab777732705c0175ce721003
3
- size 372857
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:654c08cb20974ff3a4b64ea86a20bd26d208687795ee4243654e854197027768
3
+ size 373991
models/tokenizer/dsb_tokenizer_8k.vocab CHANGED
The diff for this file is too large to render. See raw diff
 
models/vocabulary/dsb_vocabulary.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:87ff7058d1987d1d5ac416a3afd9abb9662e91efa908990e180308c27a05e007
3
- size 548787
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b75512214fe0946039a8216e6100a74a504dc95745bbd72f667b8d1ea1f2729d
3
+ size 537376
models/vocabulary/dsb_vocabulary_metadata.json CHANGED
@@ -1,16 +1,17 @@
1
  {
2
  "language": "dsb",
3
- "vocabulary_size": 32309,
 
4
  "statistics": {
5
- "type_token_ratio": 0.17291342948830685,
6
  "coverage": {
7
- "top_100": 0.2721360928748627,
8
- "top_1000": 0.5094544574264923,
9
- "top_5000": 0.6904536774001329,
10
- "top_10000": 0.7675997326806216
11
  },
12
- "hapax_count": 51263,
13
- "hapax_ratio": 0.6133992246206863,
14
- "total_documents": 3449
15
  }
16
  }
 
1
  {
2
  "language": "dsb",
3
+ "vocabulary_size": 31116,
4
+ "variant": "full",
5
  "statistics": {
6
+ "type_token_ratio": 0.18104502121060073,
7
  "coverage": {
8
+ "top_100": 0.2729781508005291,
9
+ "top_1000": 0.5055808967750764,
10
+ "top_5000": 0.682700816494093,
11
+ "top_10000": 0.7613510924599736
12
  },
13
+ "hapax_count": 48265,
14
+ "hapax_ratio": 0.6080170317834243,
15
+ "total_documents": 3391
16
  }
17
  }
models/word_markov/dsb_markov_ctx1_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:578726324c9438985c16ae29b0fba1e4d2c95ea67256780dc13e4597c96325ed
3
- size 2811261
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:e720612de97bb0cc8b9d9579b46438fbc250d4c04655167cbb4dda7aebbdc7b7
3
+ size 2583382
models/word_markov/dsb_markov_ctx1_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "dsb",
5
- "unique_contexts": 83705,
6
- "total_transitions": 642857
7
  }
 
2
  "context_size": 1,
3
  "variant": "word",
4
  "language": "dsb",
5
+ "unique_contexts": 79306,
6
+ "total_transitions": 435069
7
  }
models/word_markov/dsb_markov_ctx2_word.parquet CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:4d179629dada8b928138f75fd99ce884b747702d0d96c228aee1ff738dbbb6de
3
- size 5734522
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:705c1a49a9dd1d5570181c4a3554a2b3af42707817a799b45653e480300f19b1
3
+ size 5168511
models/word_markov/dsb_markov_ctx2_word_metadata.json CHANGED
@@ -2,6 +2,6 @@
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "dsb",
5
- "unique_contexts": 299024,
6
- "total_transitions": 639409
7
  }
 
2
  "context_size": 2,
3
  "variant": "word",
4
  "language": "dsb",
5
+ "unique_contexts": 269674,
6
+ "total_transitions": 431678
7
  }