Instructions to use vpermilp/spellman with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Libraries
- fastText
How to use vpermilp/spellman with fastText:
from huggingface_hub import hf_hub_download import fasttext model = fasttext.load_model(hf_hub_download("vpermilp/spellman", "model.bin")) - Notebooks
- Google Colab
- Kaggle
Upload README.md with huggingface_hub
Browse files
README.md
CHANGED
|
@@ -104,32 +104,32 @@ printf 'Қазақша\nHello\n' | spellman detect --lines # kaz /
|
|
| 104 |
|
| 105 |
| eval | accuracy |
|
| 106 |
|---|---|
|
| 107 |
-
| held-out mix (
|
| 108 |
-
| Tatoeba (37,051, out-of-domain) | 98.
|
| 109 |
-
| Tatoeba granularity ladder (word / pair / triple) | 66.
|
| 110 |
-
| wild Russian tweets (2,606, label-audited; 61% @mentions, 20% URLs) |
|
| 111 |
-
| COSMUS gold-labeled wild Russian (2,808, unseen) |
|
|
|
|
| 112 |
| throughput | ~3.6 µs/sample (fp16 JIT plan, CPU) |
|
| 113 |
|
| 114 |
-
On identical eval rows it beats fastText lid.176 (Tatoeba 94.90%
|
| 115 |
-
98.
|
| 116 |
-
|
| 117 |
-
|
| 118 |
-
|
| 119 |
-
|
| 120 |
-
|
| 121 |
-
(99.25 vs 98.
|
| 122 |
|
| 123 |
## Training data
|
| 124 |
|
| 125 |
-
FineWeb-2 per-language configs
|
| 126 |
-
|
| 127 |
-
|
| 128 |
-
|
| 129 |
-
|
| 130 |
-
|
| 131 |
-
|
| 132 |
-
|
| 133 |
-
twin-language protection
|
| 134 |
-
(
|
| 135 |
-
documented in the spellman repository (design doc + training guide).
|
|
|
|
| 104 |
|
| 105 |
| eval | accuracy |
|
| 106 |
|---|---|
|
| 107 |
+
| held-out mix (239,042 rows, pristine test) | 98.30% |
|
| 108 |
+
| Tatoeba (37,051, out-of-domain) | 98.42% |
|
| 109 |
+
| Tatoeba granularity ladder (word / pair / triple) | 66.7 / 86.2 / 93.3 |
|
| 110 |
+
| wild Russian tweets (2,606, label-audited; 61% @mentions, 20% URLs) | 92.56% |
|
| 111 |
+
| COSMUS gold-labeled wild Russian (2,808, unseen) | 96.79% |
|
| 112 |
+
| short-utterance referee (orthography-certified, ≤19 chars) | 89.90% |
|
| 113 |
| throughput | ~3.6 µs/sample (fp16 JIT plan, CPU) |
|
| 114 |
|
| 115 |
+
On identical eval rows it beats fastText lid.176 (Tatoeba 94.90% vs
|
| 116 |
+
98.42%) and lingua 1.8 high-accuracy on the shared languages at ~30x
|
| 117 |
+
its speed; whichlang and lingua cover only 10 and 17 of these 30
|
| 118 |
+
classes. Against open-LID SOTA GlotLID v3 it wins the wild held-out
|
| 119 |
+
workload (98.30 vs 93.58), the single-word rung (66.7 vs 43.9), the
|
| 120 |
+
wild-Russian referee (92.56 vs 82.73) and the short-utterance referee
|
| 121 |
+
(89.90 vs 71.25) while running ~100x faster; GlotLID's larger training
|
| 122 |
+
set still leads clean out-of-domain sentences (99.25 vs 98.42).
|
| 123 |
|
| 124 |
## Training data
|
| 125 |
|
| 126 |
+
FineWeb-2 per-language configs, ~104k Tatoeba sentences (CC BY 2.0 FR),
|
| 127 |
+
per-language community/parallel corpora, a wild social-media lane (1.85M
|
| 128 |
+
Ukrainian tweets, Telegram Uzbek, Chuvash CC0 web, Kazakh reviews,
|
| 129 |
+
Leipzig community crawls, cardiffnlp multilingual tweets, sentiment140,
|
| 130 |
+
2025 German-politics tweets), a verified short-utterance lane (3-19 char
|
| 131 |
+
wild rows under 2-of-3 judge consensus and orthographic twin rules), and
|
| 132 |
+
lexically-diverse rus/ukr sets selected by greedy lemma coverage
|
| 133 |
+
(pymorphy3; 93% of the top-15k lemmas in 14k rows). Every source
|
| 134 |
+
LID-hygiene-filtered with twin-language protection; the exact recipe is
|
| 135 |
+
recorded in the repository (data_mix4/manifest.json).
|
|
|