CoolFace
Datasetpublic

fr3on/egyptian-songs

Egyptian Arabic Songs Dataset ๐ŸŽต Dataset Description This dataset contains 3,063 lines of Egyptian Arabic song lyrics with English translations, spanning 280 songs from 1983-2021. The dataset features natural Egyptian Arabic dialect (ุงู„ุนุงู…ูŠุฉ ุงู„ู…ุตุฑูŠุฉ) as used in popular music, with automatic genre classification and line-type detection. Languages Source: Egyptian Arabic (ar_EG) - Colloquial dialect in music Target: English (en) Datasetโ€ฆ See the full description on the dataset page: https://huggingface.co/datasets/fr3on/egyptian-songs.

sourceHugging Facecc-by-4.0updated 9mo agoView on Hugging Face
0likes31downloads
Dataset Card

Egyptian Arabic Songs Dataset ๐ŸŽต

Dataset Description

This dataset contains 3,063 lines of Egyptian Arabic song lyrics with English translations, spanning 280 songs from 1983-2021. The dataset features natural Egyptian Arabic dialect (ุงู„ุนุงู…ูŠุฉ ุงู„ู…ุตุฑูŠุฉ) as used in popular music, with automatic genre classification and line-type detection.

Languages

  • โ€”Source: Egyptian Arabic (ar_EG) - Colloquial dialect in music
  • โ€”Target: English (en)

Dataset Summary

Egyptian Arabic music represents a rich cultural tradition and is one of the most influential Arabic music styles globally. This dataset provides:

  • โ€”Authentic Egyptian Arabic lyrics from popular songs
  • โ€”Poetic and colloquial expressions
  • โ€”Genre-classified content for theme-aware training
  • โ€”Temporal context (release years)
  • โ€”Song and album metadata for context

Dataset Structure

Data Format

Each entry contains:

json
{
  "id": "song0001_line0042",
  "arabic": "ุงู„ู…ุฏูŠู†ุฉ ู‚ู„ุจู‡ุง ุฒุญู…ุฉ ุจุงู„ู‡ู…ูˆู…",
  "english": "The heart of the city teems with sorrow.",
  "song_name": "ุงู„ู…ุฏูŠู†ุฉ",
  "album_name": "ูŠุง ุทุฑูŠู‚",
  "year": 1983,
  "song_id": 1,
  "dialect": "egyptian",
  "language": "ar",
  "language_variant": "ar_EG",
  "content_type": "song_lyrics",
  "line_type": "verse",
  "genre": "sadness"
}

Data Fields

FieldTypeDescription
idstringUnique identifier (format: songXXXX_lineYYYY)
arabicstringEgyptian Arabic lyrics line
englishstringEnglish translation
song_namestringSong title (Arabic)
album_namestringAlbum name (Arabic)
yearintRelease year
song_idintUnique song identifier
dialectstringDialect identifier (always "egyptian")
languagestringISO language code (always "ar")
language_variantstringSpecific variant code (always "ar_EG")
content_typestringContent type (always "song_lyrics")
line_typestringLine classification (verse/chorus/instrumental)
genrestringAuto-detected music theme/genre

Dataset Statistics

Overview

  • โ€”Total Lines: 3,063
  • โ€”Unique Songs: 280
  • โ€”Unique Albums: 35
  • โ€”Year Range: 1983-2021
  • โ€”Unique Genres: 9
  • โ€”Average Arabic Length: 28.6 characters
  • โ€”Average English Length: 49.2 characters

Genre Distribution

GenreCountPercentage
general1,28842.1%
romance1,09035.6%
social2247.3%
hope1284.2%
nostalgia1103.6%
sadness772.5%
celebration712.3%
spiritual591.9%
patriotic160.5%

Line Type Distribution

  • โ€”verse: 2,458 (80.2%)
  • โ€”chorus: 605 (19.8%)

Temporal Distribution

YearLines
1983115
198482
198699
198772
198849
198978
199055
199166
199298
199381
199484
199549
199673
199871
199958
200080
2001120
2003112
2004128
2005108
2007111
2009130
201017
2011129
201210
2013125
2014118
2016122
2017107
2018156
2020218
2021142

Top Songs by Line Count

Song NameLines
ูุงูƒุฑู†ูŠ ูŠุง ุญุจ29
ูŠูˆู… ุชู„ุงุช27
ุนู… ุงู„ุทุจูŠุจ22
ุงู„ุฒู…ู†21
ุฃูŠุงู… ูˆุจู†ุนูŠุดู‡ุง21
ู‡ุฏุฏ19
ุฃูˆู„ ูƒู„ ุญุงุฌุฉ19
ุฅู„ุง ู‡ูŠ18
ู‚ุงู„ุชู„ูŠ ู‚ูˆู„18
ูˆุฃู†ุง ู…ุนุงูƒ17

Genres Explained

This dataset includes automatic genre/theme classification using keyword-based detection:

  • โ€”romance - Love songs, relationships, affection
  • โ€”sadness - Melancholic themes, heartbreak, sorrow
  • โ€”nostalgia - Memories, past times, longing
  • โ€”hope - Optimistic themes, dreams, aspirations
  • โ€”social - Social commentary, life observations
  • โ€”patriotic - National pride, homeland themes
  • โ€”spiritual - Religious or spiritual content
  • โ€”celebration - Joyful occasions, festivities
  • โ€”general - General themes without specific classification

Use Cases

โœ… Recommended Use Cases

  • โ€”Egyptian Arabic Translation: Train translation models for colloquial Egyptian
  • โ€”Lyric Generation: Generate Egyptian Arabic song lyrics
  • โ€”Genre-Aware Models: Train models that understand musical themes
  • โ€”Cultural NLP: Study Egyptian culture through music
  • โ€”Dialect Research: Research Egyptian Arabic characteristics in artistic contexts
  • โ€”Music Information Retrieval: Lyrics-based music analysis
  • โ€”Cross-lingual Understanding: Arabic-English semantic alignment

โš ๏ธ Limitations

  • โ€”Domain Scope: Limited to song lyrics (poetic/artistic language)
  • โ€”Size: 3,063 lines (moderate size for specialized tasks)
  • โ€”Time Period: 1983-2021 (may not reflect modern slang)
  • โ€”Artist Coverage: Limited to specific artists/albums
  • โ€”Line Context: Individual lines may lack full song context
  • โ€”Genre Accuracy: Automatic genre detection may have errors

Loading the Dataset

Using Hugging Face Datasets

python
from datasets import load_dataset

# Load the dataset
dataset = load_dataset("fr3on/egyptian-songs")

# Access the data
print(dataset['train'][0])

# Filter by genre
romance_songs = dataset['train'].filter(lambda x: x['genre'] == 'romance')

# Filter by year
songs_80s = dataset['train'].filter(lambda x: 1980 <= x['year'] < 1990)

# Filter by song
specific_song = dataset['train'].filter(lambda x: x['song_id'] == 1)

Using Pandas

python
import pandas as pd

# Load Parquet file directly
df = pd.read_parquet("data/train-00000-of-00001.parquet")

# Analyze genres
print(df['genre'].value_counts())

# Get all lines from a specific song
song_lines = df[df['song_name'] == 'ุงู„ู…ุฏูŠู†ุฉ'].sort_values('id')

# Filter by year range
df_90s = df[(df['year'] >= 1990) & (df['year'] < 2000)]

Training Examples

Translation Model (Lyric-Aware)

python
from datasets import load_dataset
from transformers import AutoTokenizer, AutoModelForSeq2SeqLM, Seq2SeqTrainer

# Load dataset
dataset = load_dataset("fr3on/egyptian-songs")

# Load model for Arabic-English translation
model_name = "Helsinki-NLP/opus-mt-ar-en"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForSeq2SeqLM.from_pretrained(model_name)

# Tokenize
def preprocess(examples):
    inputs = tokenizer(examples['arabic'], truncation=True, max_length=128)
    targets = tokenizer(examples['english'], truncation=True, max_length=128)
    inputs['labels'] = targets['input_ids']
    return inputs

tokenized = dataset.map(preprocess, batched=True)

# Train
trainer = Seq2SeqTrainer(
    model=model,
    train_dataset=tokenized['train'],
    eval_dataset=tokenized['test']
)
trainer.train()

Genre-Aware Text Generation

python
from datasets import load_dataset
from transformers import GPT2LMHeadModel, GPT2Tokenizer

dataset = load_dataset("fr3on/egyptian-songs")

# Train separate models per genre
for genre in ['romance', 'sadness', 'hope']:
    genre_data = dataset['train'].filter(lambda x: x['genre'] == genre)
    print(f"Training {genre} model with {len(genre_data)} examples")
    # Train genre-specific model

Lyric Generation

python
from datasets import load_dataset

dataset = load_dataset("fr3on/egyptian-songs")

# Prepare for language modeling
def prepare_for_lm(example):
    return {'text': f"<|song|>{example['song_name']}<|genre|>{example['genre']}<|lyrics|>{example['arabic']}<|endoftext|>"}

lm_dataset = dataset.map(prepare_for_lm)
# Train GPT-style model for lyric generation

Data Collection & Processing

Source

  • โ€”Origin: Egyptian song lyrics with professional translations
  • โ€”Quality: Human-curated translations
  • โ€”Cultural Context: Authentic Egyptian musical heritage

Processing Pipeline

  1. 1.Extraction: Load from Excel with metadata
  2. 2.Cleaning: Remove empty/short lines, whitespace normalization
  3. 3.Deduplication: Hash-based duplicate removal
  4. 4.Genre Detection: Automatic classification using keyword matching
  5. 5.Line Type Detection: Classify verses, chorus, instrumental sections
  6. 6.Validation: Quality checks and statistics generation
  7. 7.Format Conversion: Export to JSONL and Parquet

Data Quality

  • โ€”โœ… Deduplicated using MD5 hash matching
  • โ€”โœ… Filtered lines < 3 characters
  • โ€”โœ… Removed rows with missing translations
  • โ€”โœ… Normalized whitespace
  • โ€”โœ… Validated Arabic-English text pairs
  • โ€”โœ… Preserved song/album context

Considerations for Using the Data

Egyptian Arabic in Music

Egyptian Arabic in songs has unique characteristics:

  • โ€”Poetic Language: More metaphorical and artistic than everyday speech
  • โ€”Rhyme Schemes: Traditional Arabic poetry patterns (ู‚ุงููŠุฉ)
  • โ€”Colloquialisms: Mix of formal and informal expressions
  • โ€”Cultural References: Egyptian-specific idioms and references
  • โ€”Emotional Intensity: Heightened expressive language

Recommended Training Approaches

  1. 1.Fine-tune on this dataset after pre-training on general Egyptian Arabic
  2. 2.Combine with speech data for richer dialect representation
  3. 3.Use genre filtering for domain-specific applications
  4. 4.Preserve song context when possible for narrative understanding
  5. 5.Consider temporal aspects - language evolves over decades
  6. 6.Balance genres if training general-purpose models

Ethical Considerations

  • โ€”Copyright: Original songs are copyrighted; dataset for research purposes
  • โ€”Cultural Sensitivity: Respect Egyptian cultural and musical heritage
  • โ€”Attribution: Credit original artists and composers
  • โ€”Representation: One slice of Egyptian musical culture
  • โ€”Usage: For educational, research, and non-commercial purposes

License

This dataset is released under the CC-BY-4.0 License.

โš ๏ธ Note: Original songs are copyrighted. This dataset is intended for research, education, and non-commercial use only.

Citation

If you use this dataset in your research, please cite:

bibtex
@dataset{egyptian_songs_2025,
  title={Egyptian Arabic Songs Dataset},
  author={fr3on},
  year={2025},
  publisher={Hugging Face},
  url={https://huggingface.co/datasets/fr3on/egyptian-songs}
}

Acknowledgments

  • โ€”Source: Egyptian song lyrics with translations
  • โ€”Processing: Automatic genre and line-type detection
  • โ€”Cultural Heritage: Egyptian musical tradition

Version History

  • โ€”v1.0.0 (2025-12-18): Initial release
  • โ€”3,063 lyric lines
  • โ€”280 songs from 35 albums
  • โ€”1983-2021 temporal coverage
  • โ€”9 genre categories
  • โ€”Automatic genre and line-type detection

Keywords: Egyptian Arabic, ar_EG, dialect, colloquial, music, lyrics, songs, translation, NLP, Egyptian culture, Arabic poetry, song generation

Dataset Size: 3,063 lines | Format: Parquet | License: CC-BY-4.0