Skip to main content

PyPI - Version PyPI - Python Version PyPI - Downloads codecov

abbr2words

Multilingual, context-aware abbreviation expansion for text normalization and speech.

This standalone package was extracted from the abbreviation framework and language registries in kokorog2p. It has no runtime dependencies and uses a flat package layout (no src/ directory).

Supported languages

  • Czech (cs)
  • German (de)
  • English (en)
  • Spanish (es)
  • French (fr)
  • Italian (it)
  • Portuguese (pt)

Locale forms such as de-DE, en_GB, and pt-BR are accepted and currently map to their base-language registry.

Installation

python -m pip install abbr2words

For development:

python -m pip install -e ".[dev]"
pytest

API

from abbr2words import abbr2words

text = "Prof. Klein kommt ggf. am Fr."
print(abbr2words(text, lang="de"))
# Professor Klein kommt gegebenenfalls am Freitag

Context can be disabled:

abbr2words("Fr. Klein", lang="de", context=False)
# Freitag Klein

Use an isolated mutable registry for project-specific entries:

from abbr2words import Expander

expander = Expander("de")
expander.add("KI", "Künstliche Intelligenz", case_sensitive=True)
print(expander("KI hilft."))

Consumers that need the shared language registry can use get_shared_expander() and reset_expanders(). Expander and get_expander() remain isolated mutable registries.

Command line

python -m abbr2words --lang de "Prof. Klein kommt ggf."
printf 'Prof. Klein kommt ggf.' | abbr2words --lang de

Scope

abbr2words expands known abbreviations and a reviewed inventory of unit symbols when a numeric quantity immediately precedes the complete unit expression. It preserves numeric values and does not spell ordinary numbers, parse dates, convert currencies, convert measurements, or perform unit conversion. Unit support is not universal UCUM support.

abbr2words("500 g", lang="en")
# "500 gram"

abbr2words("section g", lang="en")
# "section g"

Examples

The repository includes runnable examples for abbreviation-only expansion and for composing abbr2words with num2words:

python -m pip install "abbr2words[examples]"
python examples/abbreviations.py
python examples/full_text_demo.py --sample german

abbr2words itself expands abbreviations only. The optional examples show how to combine it with num2words for broader speech-text normalization, including output such as 500 g -> five hundred grams. The full-text demo is example code, not part of the stable public API. See examples/README.md for the complete command reference.

Versioning

The package version is derived from Git tags by setuptools-scm. Use tags in the form v0.2.0, v0.3.0, and so on; the corresponding package version is generated automatically during builds. A checkout without tags falls back to 0.2.0.

For a release, commit the changes, create an annotated tag, and build from that tag:

git tag -a v0.2.0 -m "Release 0.2.0"
uv build

License

Apache License 2.0. See LICENSE and NOTICE.

Download files

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

Source Distribution

abbr2words-0.1.1.tar.gz (77.0 kB view details)

Uploaded Source

Built Distribution

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

abbr2words-0.1.1-py3-none-any.whl (38.7 kB view details)

Uploaded Python 3

File details

Details for the file abbr2words-0.1.1.tar.gz.

File metadata

  • Download URL: abbr2words-0.1.1.tar.gz
  • Upload date:
  • Size: 77.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for abbr2words-0.1.1.tar.gz
Algorithm Hash digest
SHA256 00101ff9fd0f1ddce905eb1fb044793759c424161623672834378fc49b0f1933
MD5 d6b37e93e2c1e3a0a5c8b591d08015fe
BLAKE2b-256 fcf0702085d4a96fd5442363bc482e9e5a8bca75c3ae8fdd155be964de3fd396

See more details on using hashes here.

File details

Details for the file abbr2words-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: abbr2words-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 38.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for abbr2words-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 ebdb715579d01879e30d754c50d2d0cd82070acedba5d2e7402aa32b0e171cb8
MD5 c03b098a6da4254465daca0d2112522c
BLAKE2b-256 a3454a36d180c3ecf2447e205b97f845e445799953d963504c00ad2c81e0dc66

See more details on using hashes here.

Release history Release notifications | RSS feed

0.2.9

2 files

0.2.8

2 files

0.2.7

2 files

0.2.6

2 files

0.2.5

2 files

0.2.4

2 files

0.2.3

2 files

0.2.2

2 files

0.2.1

2 files

0.2.0

2 files

This release

0.1.1 This release

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