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

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))
Tokenization examples (click to expand)

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

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

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

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

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

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

Load Word Embeddings

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

import pyarrow.parquet as pq

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

Models Overview

Performance Dashboard

Category Assets
Tokenizers BPE at 8k, 16k, 32k, 64k vocab sizes
N-gram models 2 / 3 / 4 / 5-gram (word & subword)
Markov chains Context 1–5 (word & subword)
Embeddings 32d, 64d, 128d — mono & aligned
Vocabulary Full frequency list + Zipf analysis
Statistics Corpus & model statistics JSON

Metrics Summary

Component Model Key Metric Value
Tokenizer 8k BPE Compression 3.48x
Tokenizer 16k BPE Compression 3.76x
Tokenizer 32k BPE Compression 3.98x
Tokenizer 64k BPE Compression 4.17x 🏆
N-gram 2-gram (subword) Perplexity 428 🏆
N-gram 2-gram (word) Perplexity 7,415
N-gram 3-gram (subword) Perplexity 3,823
N-gram 3-gram (word) Perplexity 5,775
N-gram 4-gram (subword) Perplexity 20,320
N-gram 4-gram (word) Perplexity 8,149
N-gram 5-gram (subword) Perplexity 63,356
N-gram 5-gram (word) Perplexity 7,702
Markov ctx-1 (subword) Predictability 0.0%
Markov ctx-1 (word) Predictability 14.2%
Markov ctx-2 (subword) Predictability 18.4%
Markov ctx-2 (word) Predictability 77.3%
Markov ctx-3 (subword) Predictability 19.7%
Markov ctx-3 (word) Predictability 93.8%
Markov ctx-4 (subword) Predictability 33.7%
Markov ctx-4 (word) Predictability 97.9% 🏆
Vocabulary full Size 79,667
Vocabulary full Zipf R² 0.9989
Embeddings mono_32d Isotropy 0.8215 🏆
Embeddings mono_64d Isotropy 0.8006
Embeddings mono_128d Isotropy 0.6555
Embeddings aligned_32d Isotropy 0.8215
Embeddings aligned_64d Isotropy 0.8006
Embeddings aligned_128d Isotropy 0.6555
Alignment aligned_32d R@1 / R@5 / R@10 0.8% / 5.8% / 10.8%
Alignment aligned_64d R@1 / R@5 / R@10 3.8% / 10.0% / 20.0%
Alignment aligned_128d R@1 / R@5 / R@10 4.4% / 15.6% / 24.2% 🏆

📊 Full ablation study, per-model breakdowns, and interpretation guide →


About

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

A project by Wikilangs · Maintainer: Omar Kamali · Omneity Labs

Citation

@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

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. 🙋 Ask for provider support

Dataset used to train wikilangs/ary