Skip to main content

Africa Bitext Builder

Africa Bitext Builder

Africa Bitext Builder

Africa Bitext Builder is a Python library for discovering, inspecting, and compiling sentence-aligned parallel and monolingual text corpora across 690+ African languages.

📚 Documentation.


Quickstart

1. Discover Languages & Check Public Domain Status

Use the LanguageRegistry class to inspect supported languages, available translations, and their 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)

When the requested languages have verified Public Domain versions available (e.g., Twi ↔ English), simply pass the language codes:

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 available (such as Swahili), or you require a specific translation, you may explicitly pass version IDs discovered via 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 restricts corpus construction exclusively to verified Public Domain (PD) and Creative Commons translations.

  • If a language has no Public Domain translations indexed, CorpusBuilder will refuse to run by default, in order to prevent unintentional copyright infringement.
  • Bible version IDs (source_version_ids or target_version_ids) may be explicitly specified using 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 obtaining any necessary permissions or licenses from the relevant copyright holders. The maintainers assume no legal responsibility or liability for the 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.11.tar.gz (435.0 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.11-py3-none-any.whl (118.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: africa_bitext_builder-0.1.11.tar.gz
  • Upload date:
  • Size: 435.0 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.11.tar.gz
Algorithm Hash digest
SHA256 45c5109a56522da8c67f3a4aba28b6313ce8ae5147375c35741e02a5a6f7bc11
MD5 7eef52cd6ad2d1939d5c3d161d1d8a09
BLAKE2b-256 17c4aa7ff81b0e1e17a65fb9d9f637dc62918838a78d5448cafa5205cd660748

See more details on using hashes here.

File details

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

File metadata

  • Download URL: africa_bitext_builder-0.1.11-py3-none-any.whl
  • Upload date:
  • Size: 118.7 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.11-py3-none-any.whl
Algorithm Hash digest
SHA256 a73af424a2a52686ff7be26baafacebd28cffa295f0b24a5f74f862b78083ee4
MD5 30ac105758a57dfe39bc4dfb3b64be4b
BLAKE2b-256 09ba10369c67feef6442fd5e05b5cc6cff43cd6b49bf80eac7e642d848aa24c6

See more details on using hashes here.

Release history Release notifications | RSS feed

0.1.13

2 files

0.1.12

2 files

This release

0.1.11 This release

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

0.1.2

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