CoolFace
Datasetpublic

PuristanLabs1/GSM8K_Urdu

GSM8K Urdu: Grade School Math Word Problems in Urdu Dataset Description GSM8K Urdu is a high quality Urdu mathematical reasoning dataset replicating GSM8K dataset by OpenAI GSM8K (Grade School Math 8K), containing 6,365 grade school math word problems with step by step reasoning in Urdu script (اردو). This dataset is specifically adapted for Pakistani Islamic cultural context with appropriate content modifications. Dataset Summary Total Examples: 6… See the full description on the dataset page: https://huggingface.co/datasets/PuristanLabs1/GSM8K_Urdu.

sourceHugging Facemitupdated 10mo agoView on Hugging Face
4likes18downloads
Dataset Card

GSM8K Urdu: Grade School Math Word Problems in Urdu

Dataset Description

GSM8K Urdu is a high quality Urdu mathematical reasoning dataset replicating GSM8K dataset by OpenAI GSM8K (Grade School Math 8K), containing 6,365 grade school math word problems with step by step reasoning in Urdu script (اردو). This dataset is specifically adapted for Pakistani Islamic cultural context with appropriate content modifications.

Dataset Summary

  • —Total Examples: 6,365 math word problems
  • —Language: Urdu (اردو) with English mathematical formulas preserved
  • —Source: GSM8K dataset by OpenAI
  • —Cultural Adaptation: Modified for Pakistani Islamic values
  • —Gender Handling: Proper pronoun consistency with Urdu names

Key Features

✅ Cultural Appropriateness: Content adapted for Pakistani Islamic context

✅ Mathematical Accuracy: All formulas and calculations preserved exactly

✅ Gender Consistency: Pronouns correctly matched with Urdu names

✅ Step-by-Step Reasoning: Complete chain-of-thought explanations in Urdu

Dataset Structure

Data Fields

FieldTypeDescription
IDintUnique identifier for each problem
Question (Urdu)stringUrdu translation of the question
Reasoning (Urdu)stringUrdu translation of the reasoning

Data Splits

SplitExamples
Full Dataset6,365

Example

json
{
  "ID": 0,
  "Question (Urdu)": "فاطمہ نے اپریل میں اپنے 48 دوستوں کو کلپس بیچے، اور پھر اس نے مئی میں آدھے کلپس بیچے۔ فاطمہ نے اپریل اور مئی میں کل کتنے کلپس بیچے؟",
  "Reasoning (Urdu)": "فاطمہ نے مئی میں 48/2 = <<48/2=24>>24 کلپس بیچے۔\nفاطمہ نے اپریل اور مئی میں مجموعی طور پر 48+24 = <<48+24=72>>72 کلپس بیچے۔",
}

Cultural Adaptations

The dataset has been carefully adapted for Pakistani Islamic cultural context:

Original ContentReplacementReason
Wine, Beer, AlcoholRooh Afza, Juice, LassiIslamic prohibition
Pork, Bacon, HamChicken, Beef, MuttonHalal dietary laws
Casino, Lottery, GamblingHalal business activitiesIslamic prohibition
Interest/UsuryProfitIslamic finance principles
Dating, Boyfriend/GirlfriendFriend, CousinCultural appropriateness
ChurchMosqueReligious context

Usage

Loading with Hugging Face Datasets

python
from datasets import load_dataset

# Load the full dataset
dataset = load_dataset("PuristanLabs1/GSM8K_Urdu")

# Access a single example
example = dataset['train'][0]
print(f"Question (Urdu): {example['Question (Urdu)']}")
print(f"Reasoning (Urdu): {example['Reasoning (Urdu)']}")

Loading with Pandas

python
import pandas as pd

# Load from Hugging Face
from datasets import load_dataset
dataset = load_dataset("PuristanLabs1/GSM8K_Urdu")
df = dataset['train'].to_pandas()

# Or load directly from file
df = pd.read_csv("gsm8k_urdu.csv")

# Filter examples with cultural replacements
cultural_examples = df[df['Cultural Replacements'] != 'None']
print(f"Examples with cultural adaptations: {len(cultural_examples)}")

Using for Training

python
from datasets import load_dataset
from transformers import AutoTokenizer, AutoModelForCausalLM

# Load dataset
dataset = load_dataset("PuristanLabs1/GSM8K_Urdu")

# Load Urdu-capable model
tokenizer = AutoTokenizer.from_pretrained("google/gemma-2-2b")
model = AutoModelForCausalLM.from_pretrained("google/gemma-2-2b")

# Prepare training examples
def format_example(example):
    return f"سوال: {example['Question (Urdu)']}\n\nجواب: {example['Reasoning (Urdu)']}"

# Format dataset
formatted_dataset = dataset.map(
    lambda x: {"text": format_example(x)}
)

Use Cases

1. Mathematical Reasoning in Urdu

Train language models to solve math word problems in Urdu with step-by-step reasoning.

python
# Fine-tune a model for Urdu math reasoning
from transformers import Trainer, TrainingArguments

training_args = TrainingArguments(
    output_dir="./urdu-math-model",
    num_train_epochs=3,
    per_device_train_batch_size=4,
    learning_rate=2e-5,
)

trainer = Trainer(
    model=model,
    args=training_args,
    train_dataset=formatted_dataset,
)

trainer.train()

2. Chain-of-Thought Prompting

Use as few-shot examples for prompting LLMs to solve Urdu math problems.

python
# Few-shot prompting example
few_shot_examples = dataset['train'][:3]

prompt = "یہ ریاضی کے مسائل حل کریں:\n\n"
for ex in few_shot_examples:
    prompt += f"سوال: {ex['Question (Urdu)']}\n"
    prompt += f"حل: {ex['Reasoning (Urdu)']}\n\n"

prompt += f"سوال: {new_question}\nحل:"

3. Educational Applications

Build educational tools for Urdu speaking students in Pakistan.

python
# Create a math tutoring chatbot
def solve_math_problem(question_urdu):
    # Use the dataset to find similar problems
    similar = find_similar_problems(question_urdu, dataset)
    
    # Generate solution using the reasoning pattern
    solution = generate_solution(question_urdu, similar)
    
    return solution

4. Evaluation Benchmark

Evaluate Urdu language models on mathematical reasoning tasks.

python
# Evaluate model performance
from sklearn.metrics import accuracy_score

def evaluate_model(model, dataset):
    predictions = []
    ground_truth = []
    
    for example in dataset:
        pred = model.generate(example['Question (Urdu)'])
        predictions.append(extract_answer(pred))
        ground_truth.append(extract_answer(example['Reasoning (Urdu)']))
    
    accuracy = accuracy_score(ground_truth, predictions)
    return accuracy

5. Multilingual Research

Study cross lingual transfer learning between English and Urdu for mathematical reasoning.

python
# Compare English vs Urdu reasoning
def compare_reasoning(example):
    english_reasoning = example['Original Reasoning']
    urdu_reasoning = example['Reasoning (Urdu)']
    
    # Analyze reasoning patterns
    analyze_reasoning_structure(english_reasoning, urdu_reasoning)

Limitations

  • —Formulas in English: Mathematical formulas remain in English notation (e.g., <<48/2=24>>)
  • —Cultural Context: Adapted specifically for Pakistani Islamic context
  • —Name Distribution: Limited set of Urdu names used
  • —Translation Variance: Some nuances may differ from human translation
  • —Domain: Limited to grade school level mathematics

Ethical Considerations

  • —Cultural Sensitivity: Content carefully reviewed and adapted for Islamic values
  • —Educational Use: Designed for educational purposes in Pakistan
  • —Bias Mitigation: Gender balanced name distribution
  • —Transparency: All cultural replacements documented in dataset

Citation

If you use this dataset, please cite:

bibtex
@dataset{gsm8k_urdu,
  title={GSM8K Urdu: Grade School Math Word Problems in Urdu},
  author={PuristanLabs/PuristanLabs1},
  year={2025},
  publisher={Hugging Face},
  howpublished={\url{https://huggingface.co/datasets/PuristanLabs1/GSM8K_Urdu}}
}

Original GSM8K dataset:

bibtex
@article{cobbe2021training,
  title={Training Verifiers to Solve Math Word Problems},
  author={Cobbe, Karl and Kosaraju, Vineet and Bavarian, Mohammad and Chen, Mark and Jun, Heewoo and Kaiser, Lukasz and Plappert, Matthias and Tworek, Jerry and Hilton, Jacob and Nakano, Reiichiro and Hesse, Christopher and Schulman, John},
  journal={arXiv preprint arXiv:2110.14168},
  year={2021}
}

License

This dataset is released under the MIT License, following the original GSM8K dataset license.

Contact

For questions, issues, or contributions, please open an issue on the dataset repository.

Acknowledgments

  • —Original GSM8K dataset by OpenAI