CoolFace
Modelpublic

wikilangs/ary

sourceHugging Facemitupdated 7mo agoView on Hugging Face
0likes
Model Card

Moroccan Arabic — Wikilangs Models

Open-source tokenizers, n-gram & Markov language models, vocabulary stats, and word embeddings trained on Moroccan Arabic Wikipedia by Wikilangs.

🌐 Language Page · 🎮 Playground · 📊 Full Research Report

Language Samples

Example sentences drawn from the Moroccan Arabic Wikipedia corpus:

آيت ميلك جماعة ترابية قروية كاينة في إقليم اشتوكة آيت باها، جهة سوس ماسة، ساكنين فيها نسمة، على حسب الإحصاء العام ويب
أورو هي لفلوس لي كاتخدًم بزاف ديال الدول ديال الاتحاد الأوروپي. هاد الدول تافقو يخدًمو الأورو مبعد المعاهدة ديال ماستريخت عام شوف حتى الاتحاد الأوروپي مصادر
إيلبا (ب ، إيصولا د إيلبا) هي واحد الجزيرة تابعة للطاليان و تيسكن فيها تقريبا 30.000 واحد. جات ف البحر البيض المتوسط مابين طوسكانيا و كورسيكا. مصادر ف الطاليان ݣزيرة
حرب كردستان لعراق هي واحد الحرب ف كردستان لعراق سالات بالربح ديال لعراق. بدات ف عام و سالات ف و ربح فيها لعراق مين كان حاكمو حزب لبعث. مصادر
الدارجة التطوانية هي الدارجة لي كيهضرو الناس د المدينة د تطوان و النواحي ديالا، و عندها تأثيرات من العربية د الأندلس و اللهجة الجبلية لي قريبا لها. مصادر د داريجة

Quick Start

Load the Tokenizer

python
import sentencepiece as spm

sp = spm.SentencePieceProcessor()
sp.Load("ary_tokenizer_32k.model")

text = "قريش هيا قبيلة ؤلا أجموع قبلي لي، علا حساب لمصادر لإسلامية، كانت ف مكة ؤ كاينتام"
tokens = sp.EncodeAsPieces(text)
ids    = sp.EncodeAsIds(text)

print(tokens)  # subword pieces
print(ids)     # integer ids

# Decode back
print(sp.DecodeIds(ids))

<details> <summary><b>Tokenization examples (click to expand)</b></summary>

Sample 1: قريش هيا قبيلة ؤلا أجموع قبلي لي، علا حساب لمصادر لإسلامية، كانت ف مكة ؤ كاينتام…

VocabTokensCount
8k▁ق ريش ▁هيا ▁قبيلة ▁ؤلا ▁أج موع ▁ق بلي ▁لي … (+19 more)29
16k▁قريش ▁هيا ▁قبيلة ▁ؤلا ▁أج موع ▁ق بلي ▁لي ، … (+16 more)26
32k▁قريش ▁هيا ▁قبيلة ▁ؤلا ▁أجموع ▁ق بلي ▁لي ، ▁علا … (+15 more)25
64k▁قريش ▁هيا ▁قبيلة ▁ؤلا ▁أجموع ▁قبلي ▁لي ، ▁علا ▁حساب … (+14 more)24

Sample 2: آيت ميلك جماعة ترابية قروية كاينة في إقليم اشتوكة آيت باها، جهة سوس ماسة، ساكنين…

VocabTokensCount
8k▁آيت ▁ميل ك ▁جماعة ▁ترابية ▁قروية ▁كاينة ▁في ▁إقليم ▁اشتوكة … (+16 more)26
16k▁آيت ▁ميل ك ▁جماعة ▁ترابية ▁قروية ▁كاينة ▁في ▁إقليم ▁اشتوكة … (+16 more)26
32k▁آيت ▁ميل ك ▁جماعة ▁ترابية ▁قروية ▁كاينة ▁في ▁إقليم ▁اشتوكة … (+16 more)26
64k▁آيت ▁ميلك ▁جماعة ▁ترابية ▁قروية ▁كاينة ▁في ▁إقليم ▁اشتوكة ▁آيت … (+15 more)25

Sample 3: خديجة بنت علي بن أبي طالب، هي بنت علي بن أبي طالب. مصادر د نسا

VocabTokensCount
8k▁خديجة ▁بنت ▁علي ▁بن ▁أبي ▁طالب ، ▁هي ▁بنت ▁علي … (+7 more)17
16k▁خديجة ▁بنت ▁علي ▁بن ▁أبي ▁طالب ، ▁هي ▁بنت ▁علي … (+7 more)17
32k▁خديجة ▁بنت ▁علي ▁بن ▁أبي ▁طالب ، ▁هي ▁بنت ▁علي … (+7 more)17
64k▁خديجة ▁بنت ▁علي ▁بن ▁أبي ▁طالب ، ▁هي ▁بنت ▁علي … (+7 more)17

</details>

Load Word Embeddings

python
from gensim.models import KeyedVectors

# Aligned embeddings (cross-lingual, mapped to English vector space)
wv = KeyedVectors.load("ary_embeddings_128d_aligned.kv")

similar = wv.most_similar("word", topn=5)
for word, score in similar:
    print(f"  {word}: {score:.3f}")

Load N-gram Model

python
import pyarrow.parquet as pq

df = pq.read_table("ary_3gram_word.parquet").to_pandas()
print(df.head())

Models Overview

[image]

CategoryAssets
TokenizersBPE at 8k, 16k, 32k, 64k vocab sizes
N-gram models2 / 3 / 4 / 5-gram (word & subword)
Markov chainsContext 1–5 (word & subword)
Embeddings32d, 64d, 128d — mono & aligned
VocabularyFull frequency list + Zipf analysis
StatisticsCorpus & model statistics JSON

Metrics Summary

ComponentModelKey MetricValue
Tokenizer8k BPECompression3.48x
Tokenizer16k BPECompression3.76x
Tokenizer32k BPECompression3.98x
Tokenizer64k BPECompression4.17x 🏆
N-gram2-gram (subword)Perplexity428 🏆
N-gram2-gram (word)Perplexity7,415
N-gram3-gram (subword)Perplexity3,823
N-gram3-gram (word)Perplexity5,775
N-gram4-gram (subword)Perplexity20,320
N-gram4-gram (word)Perplexity8,149
N-gram5-gram (subword)Perplexity63,356
N-gram5-gram (word)Perplexity7,702
Markovctx-1 (subword)Predictability0.0%
Markovctx-1 (word)Predictability14.2%
Markovctx-2 (subword)Predictability18.4%
Markovctx-2 (word)Predictability77.3%
Markovctx-3 (subword)Predictability19.7%
Markovctx-3 (word)Predictability93.8%
Markovctx-4 (subword)Predictability33.7%
Markovctx-4 (word)Predictability97.9% 🏆
VocabularyfullSize79,667
VocabularyfullZipf R²0.9989
Embeddingsmono_32dIsotropy0.8215 🏆
Embeddingsmono_64dIsotropy0.8006
Embeddingsmono_128dIsotropy0.6555
Embeddingsaligned_32dIsotropy0.8215
Embeddingsaligned_64dIsotropy0.8006
Embeddingsaligned_128dIsotropy0.6555
Alignmentaligned_32dR@1 / R@5 / R@100.8% / 5.8% / 10.8%
Alignmentaligned_64dR@1 / R@5 / R@103.8% / 10.0% / 20.0%
Alignmentaligned_128dR@1 / R@5 / R@104.4% / 15.6% / 24.2% 🏆

📊 [Full ablation study, per-model breakdowns, and interpretation guide →](RESEARCH_REPORT.md)


About

Trained on wikipedia-monthly — monthly snapshots of 300+ Wikipedia languages.

A project by [Wikilangs](https://wikilangs.org) · Maintainer: Omar Kamali · Omneity Labs

Citation

bibtex
@misc{wikilangs2025,
  author    = {Kamali, Omar},
  title     = {Wikilangs: Open NLP Models for Wikipedia Languages},
  year      = {2025},
  doi       = {10.5281/zenodo.18073153},
  publisher = {Zenodo},
  url       = {https://huggingface.co/wikilangs},
  institution = {Omneity Labs}
}

Links

License: MIT — free for academic and commercial use.


Generated by Wikilangs Pipeline · 2026-03-02 12:03:27