Skip to main content

Africa Bitext Builder

A Python library for discovering, inspecting, and compiling sentence-aligned parallel and monolingual text corpora across 690+ African languages. 📚 Read the Full Documentation

Quickstart

1. Discover Languages & Check Public Domain Status

Use LanguageRegistry to inspect supported languages, available translations, and their legal licensing status:

from africa_bitext_builder.registry import LanguageRegistry

reg = LanguageRegistry()

# Check if a language is supported by its ISO-639 code
swh = reg.resolve("swh")
print(swh)
# <Language code='swh' name='Swahili' region='African' versions=13 (PD: 0)>

# Inspect Public Domain vs. Copyrighted translations
print("Public Domain versions:", [v.id for v in swh.public_domain_versions])
print("All available versions:", [v.id for v in swh.bible_versions])

2. Build a Parallel Corpus

Case A: Public Domain Only (Default)

If the requested languages have verified Public Domain versions (e.g., Twi ↔ English), pass the language codes without version IDs:

from africa_bitext_builder.builder import CorpusBuilder

builder = CorpusBuilder(
    source_lang="twi",
    target_lang="en",
    limit=5000,
)

# Saves automatically to 'corpora/twi_en_parallel.csv'
out_file = builder.download("corpora/")
print(f"Saved: {out_file}")

Case B: Supplying Non-Public Domain Version IDs (User's Own Risk)

If a language has no Public Domain versions (like Swahili) or you want a specific translation, pass the version IDs explicitly discovered from the registry:

from africa_bitext_builder.builder import CorpusBuilder

# Explicitly selecting Swahili (ID: 1627) and French Louis Segond 1910 (ID: 93 - PD)
builder = CorpusBuilder(
    source_lang="swh",
    target_lang="fr",
    source_version_ids=[1627],  # Explicit opt-in
    target_version_ids=[93],    # French Louis Segond (PD)
    limit=1000,
    sample=True,
    seed=42,
)

# Provide a specific .csv file path or a directory path
out_file = builder.download("data/corpora/swahili_french.csv")
print(f"Saved: {out_file}")

3. Build a Monolingual Corpus

Extract deduplicated sentences for a single language:

from africa_bitext_builder.builder import CorpusBuilder

builder = CorpusBuilder(
    source_lang="amh",
    source_version_ids=[206],  # Explicit version opt-in
    mode="monolingual",
    limit=5000,
)
out_file = builder.download("corpora/amharic.csv")

Data Source & Acknowledgements


⚠️ Licensing & Safety Notice

By default, this library builds corpora restricted exclusively to verified Public Domain (PD) / Creative Commons translations.

  • If a language has no Public Domain translations indexed, CorpusBuilder will refuse to run by default to prevent unintentional copyright infringement.
  • You may explicitly specify Bible version IDs (source_version_ids or target_version_ids) using the metadata retrieved via LanguageRegistry.
  • Important Notice on Copyrighted Versions: Supplying version IDs that are not in the public domain is done entirely at your own risk. You are solely responsible for ensuring you have obtained all necessary permissions or licenses from the relevant copyright holders. We assume no legal responsibility or liability for your extraction, use, or redistribution of copyrighted translations.

Download files

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

Source Distribution

africa_bitext_builder-0.1.2.tar.gz (201.2 kB view details)

Uploaded Source

Built Distribution

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

africa_bitext_builder-0.1.2-py3-none-any.whl (118.6 kB view details)

Uploaded Python 3

File details

Details for the file africa_bitext_builder-0.1.2.tar.gz.

File metadata

  • Download URL: africa_bitext_builder-0.1.2.tar.gz
  • Upload date:
  • Size: 201.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for africa_bitext_builder-0.1.2.tar.gz
Algorithm Hash digest
SHA256 e5ca837bdf107e25c359bec3b5638ee59572f1e687c788e0fee6d7521948f900
MD5 9c7401edaae816e8a364e28e61b4d5b2
BLAKE2b-256 2f93ed0bf85174ca5540affc0e6cc3f868859208e25cd0680dde82195dda0876

See more details on using hashes here.

File details

Details for the file africa_bitext_builder-0.1.2-py3-none-any.whl.

File metadata

  • Download URL: africa_bitext_builder-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 118.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.12.2 {"installer":{"name":"uv","version":"0.12.2","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"CachyOS Linux","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for africa_bitext_builder-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 45f76335f7a42fea4b3a962c1ade548e99c2678f2d1c8e06b806129a1b70568f
MD5 b5155cedcad96264dfc3d2e230de30f5
BLAKE2b-256 9e7f53da1e0cd95eb1ba65bea7a23293d2e347d884477a4830d4af306fdc307f

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.13

2 files

0.1.12

2 files

0.1.11

2 files

0.1.10

2 files

0.1.9

2 files

0.1.8

2 files

0.1.7

2 files

0.1.6

2 files

0.1.5

2 files

0.1.4

2 files

0.1.3

2 files

This release

0.1.2 This release

2 files

0.1.1

2 files

0.1.0

2 files

Supported by

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