Skip to main content

High-performance streaming NLP dataset ingestion engine

Project description

🚀 NLP Dataset Engine

CI Status Python 3.8+ Code Style: Black

A high-performance, memory-efficient streaming engine for processing massive NLP datasets. Designed for GSoC 2026 preparation.

⚡ Features

  • Lazy Loading: Processes datasets larger than RAM using Python generators.
  • Auto-Validation: Automatically drops empty or short text records.
  • Observability: Provides detailed statistical reports on data quality.
  • CLI Interface: simple command-line usage.

🛠️ Installation

# Clone the repo
git clone [https://github.com/rgb-99/nlp-dataset-engine.git](https://github.com/rgb-99/nlp-dataset-engine.git)

# Install in editable mode
cd nlp-dataset-engine
pip install -e .[dev]

🚀 Usage

1. Ingest Data (CSV → JSONL)

Convert massive raw CSV files into clean, validated JSONL datasets for AI training. This runs in O(1) memory.

# Basic usage
nlp-engine ingest --input raw_data.csv --output clean_dataset.jsonl --col text

2. Automatic Observability & Filtering

The engine automatically enforces data quality:

  • Language Detection: Removes non-English text by default.
  • Health Report: Prints a statistical summary (drop rate, speed, count) after every run.
  • Noise Filtering: Rejects rows where >30% of characters are symbols or numbers (e.g., "### 12345"). Disable English Filtering: If you want to keep all languages (e.g., for a multilingual dataset), use the --no-english flag:
nlp-engine ingest --input global_data.csv --output clean.jsonl --no-english

3. Recursive Folder Ingestion

Process an entire directory of data files (CSVs and TXTs) at once. The engine will find all compatible files in subfolders, process them, and aggregate the statistics.

# Ingest entire folder recursively
nlp-engine ingest --input ./data/raw_dump/ --output ./data/clean_combined.jsonl

4. Advanced Production Features (Big Data)

For massive datasets (Terabytes), use these flags to manage resources and failures.

Sharding: Automatically split output into smaller chunks (e.g., 10k rows per file).

nlp-engine ingest --input ./data --output clean.jsonl --shard-size 10000
# Output: clean-0000.jsonl, clean-0001.jsonl...

5. Data Integrity & Compression

Ensure your dataset is safe, verifiable, and compact.

Compression: Use --compress to save disk space (GZIP).

nlp-engine ingest --input ./data --output final.jsonl --compress
# Output: final-0000.jsonl.gz, final-0001.jsonl.gz...

6. Benchmarking

Measure the raw throughput (rows/second) of your environment. This runs the pipeline without writing to disk to test CPU/Validation speed.

nlp-engine benchmark --input large_dataset.csv
# Output:
# 🚀 BENCHMARK RESULTS
# ⚡ Rows/Sec: 12500.0
# 💾 MB/Sec:   15.2 MB/s

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

nlp_engine_yuvraj-0.1.0.tar.gz (14.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

nlp_engine_yuvraj-0.1.0-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file nlp_engine_yuvraj-0.1.0.tar.gz.

File metadata

  • Download URL: nlp_engine_yuvraj-0.1.0.tar.gz
  • Upload date:
  • Size: 14.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.0

File hashes

Hashes for nlp_engine_yuvraj-0.1.0.tar.gz
Algorithm Hash digest
SHA256 6890f84503298f5b5cc189e2b8ac9d13096083546e80f11231b49de2dee9ba32
MD5 4a676641e5ad9a934e990b17510f9774
BLAKE2b-256 efa5f5a702c79a1912a1657613bcaeed30a944b2ca7cd7bed9f26c54983077a6

See more details on using hashes here.

File details

Details for the file nlp_engine_yuvraj-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for nlp_engine_yuvraj-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c665723813ca8f12ad37c625ce82b83da7154c8346ea731d8e12f021e4a9e011
MD5 e7550ac996bedfae6504fc4171d56eac
BLAKE2b-256 50c2e46c5c4c942ab5d7d7d09ebae1525f7d8d4c2c578e3e3fab7fc0d668cff5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page