Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -137,29 +137,64 @@ All fertility and CPT metrics include **bootstrap 95% confidence intervals** (n=
|
|
| 137 |
### Morph Edit Distance Heatmap
|
| 138 |

|
| 139 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 140 |
## Repository Structure
|
| 141 |
|
| 142 |
```
|
| 143 |
daa-tokenizers/
|
| 144 |
βββ README.md # This file
|
| 145 |
βββ script.py # Benchmark script (reproducible)
|
|
|
|
| 146 |
βββ tokenizer_results.csv # Full metrics table
|
| 147 |
βββ tokenizer_results.json # Full metrics (JSON)
|
| 148 |
βββ bootstrap_ci.csv # Bootstrap 95% CIs
|
|
|
|
|
|
|
| 149 |
βββ benchmark_report.md # Detailed report
|
| 150 |
βββ morphology/
|
| 151 |
β βββ farasa_segmentations.json # Cached Farasa morph segmentations (~100MB)
|
| 152 |
-
βββ tokenizers/ # Raw tokenizer JSON files (
|
| 153 |
-
βββ transformers_tokenizers/ #
|
| 154 |
β βββ shared_bpe_8000/
|
| 155 |
β βββ shared_bpe_16000/
|
| 156 |
β βββ ...
|
| 157 |
β βββ concat_bpe_8000_tokenizer_ar/
|
| 158 |
β βββ concat_bpe_8000_tokenizer_az/
|
| 159 |
-
β
|
| 160 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 161 |
βββ fertility_overall_comparison_v2.png
|
| 162 |
βββ bootstrap_ci_forest.png
|
|
|
|
| 163 |
βββ morph_edit_distance_ar_heatmap_v2.png
|
| 164 |
βββ ...
|
| 165 |
```
|
|
|
|
| 137 |
### Morph Edit Distance Heatmap
|
| 138 |

|
| 139 |
|
| 140 |
+
## Comparison with Existing Tokenizers
|
| 141 |
+
|
| 142 |
+
We compared our best tokenizer per vocabulary size against five existing Arabic and Darija tokenizers from HuggingFace:
|
| 143 |
+
|
| 144 |
+
| Tokenizer | Source | V | Fertility β | Disparity β | EM (Ar) | EM (Az) |
|
| 145 |
+
|-----------|--------|---|-------------|-------------|---------|---------|
|
| 146 |
+
| **Ours: concat BPE 8K** | Darija-specific | 8K | **1.625** | **0.089** | **99.9%** | **99.6%** |
|
| 147 |
+
| **Ours: concat BPE 16K** | Darija-specific | 16K | **1.443** | **0.084** | **99.9%** | **99.6%** |
|
| 148 |
+
| **Ours: concat BPE 32K** | Darija-specific | 32K | **1.270** | **0.084** | -- | -- |
|
| 149 |
+
| CaMeLBERT-MSA | MSA | 30K | 2.289 | 0.427 | 29.9% | 38.9% |
|
| 150 |
+
| Asafaya-BERT | MSA | 32K | 2.143 | 0.358 | 19.9% | 15.2% |
|
| 151 |
+
| Aranizer-SP-86k | MSA | 86K | 1.918 | 0.368 | 99.8% | 99.6% |
|
| 152 |
+
| DarijaBERT-ar | Darija | 80K | 1.761 | 0.410 | 13.7% | 8.0% |
|
| 153 |
+
| DarijaBERT-az | Darija | 110K | 1.575 | 0.055 | 14.8% | 8.0% |
|
| 154 |
+
|
| 155 |
+
Key results:
|
| 156 |
+
- Our **8K** tokenizer (1.625) outperforms all MSA tokenizers (2.143β2.289) by **29β45%** in fertility, despite being 4β11Γ smaller in vocabulary
|
| 157 |
+
- Our **32K** tokenizer (1.270) outperforms **all** external tokenizers including DarijaBERT-az (1.575) by **19%**
|
| 158 |
+
- All external tokenizers (except DarijaBERT-az) exhibit cross-script disparity > 0.35; our tokenizers maintain β€ 0.089
|
| 159 |
+
- Our tokenizers achieve >99% exact match; most external BERT-based tokenizers fail to reconstruct Darija text (<40%)
|
| 160 |
+
- `eval_and_compare.py` β Reproducible comparison script
|
| 161 |
+
- `external_comparison.csv` / `.json` β Full comparison results
|
| 162 |
+
|
| 163 |
+

|
| 164 |
+
|
| 165 |
## Repository Structure
|
| 166 |
|
| 167 |
```
|
| 168 |
daa-tokenizers/
|
| 169 |
βββ README.md # This file
|
| 170 |
βββ script.py # Benchmark script (reproducible)
|
| 171 |
+
βββ eval_and_compare.py # External tokenizer comparison script
|
| 172 |
βββ tokenizer_results.csv # Full metrics table
|
| 173 |
βββ tokenizer_results.json # Full metrics (JSON)
|
| 174 |
βββ bootstrap_ci.csv # Bootstrap 95% CIs
|
| 175 |
+
βββ external_comparison.csv # Comparison with external tokenizers
|
| 176 |
+
βββ external_comparison.json # Comparison with external tokenizers (JSON)
|
| 177 |
βββ benchmark_report.md # Detailed report
|
| 178 |
βββ morphology/
|
| 179 |
β βββ farasa_segmentations.json # Cached Farasa morph segmentations (~100MB)
|
| 180 |
+
βββ tokenizers/ # Raw tokenizer JSON files (40 files)
|
| 181 |
+
βββ transformers_tokenizers/ # 32 dirs for transformers library
|
| 182 |
β βββ shared_bpe_8000/
|
| 183 |
β βββ shared_bpe_16000/
|
| 184 |
β βββ ...
|
| 185 |
β βββ concat_bpe_8000_tokenizer_ar/
|
| 186 |
β βββ concat_bpe_8000_tokenizer_az/
|
| 187 |
+
β βββ ...
|
| 188 |
+
β βββ concat_bpe_32000_tokenizer_ar/ # Newly trained
|
| 189 |
+
β βββ concat_bpe_32000_tokenizer_az/ # Newly trained
|
| 190 |
+
β βββ concat_unigram_32000_tokenizer_ar/
|
| 191 |
+
β βββ concat_unigram_32000_tokenizer_az/
|
| 192 |
+
β βββ concat_wordpiece_32000_tokenizer_ar/
|
| 193 |
+
β βββ concat_wordpiece_32000_tokenizer_az/
|
| 194 |
+
βββ plots/ # 25 visualization PNGs
|
| 195 |
βββ fertility_overall_comparison_v2.png
|
| 196 |
βββ bootstrap_ci_forest.png
|
| 197 |
+
βββ external_comparison.png
|
| 198 |
βββ morph_edit_distance_ar_heatmap_v2.png
|
| 199 |
βββ ...
|
| 200 |
```
|