Installation
pip3 install text2digits
Usage
Python 3 only!
from text2digits import text2digits
t2d = text2digits.Text2Digits()
t2d.convert("twenty ten and twenty one")
> 2010 and 21
It can handle a variety of phrases. Spoken/Informal and formal language:
"A random string" -> 'A random string'
"I am thirty six years old with a child that is four. I would like to get him four cars!" -> 'I am 36 years old with a child that is 4. I would like to get him 4 cars!'
"I was born in twenty ten" -> 'I was born in 2010'
"I was born in nineteen sixty four" -> 'I was born in 1964'
"I am the fourth cousin" -> 'I am the 4 cousin'
"I am twenty nine" -> 'I am 29'
"it was twenty ten and was negative thirty seven degrees" -> 'it was 2010 and was negative 37 degrees'
"thirty twenty one" -> '3021'
"one thousand six hundred sixty six" -> '1666'
"one thousand and six hundred and sixty six" -> '1666'
"sixteen sixty six" -> '1666'
"eleven hundred twelve" -> '1112'
"Sixteen and seven" -> '16 and 7'
"twenty ten and twenty one" -> '2010 and 21'
"I was born in nineteen ninety two and am twenty six years old!" -> 'I was born in 1992 and am 26 years old!'
"three forty five" -> '345'
I find this useful if using Alexa/Lex to convert audio to text and have to convert the text to digits.
Known Limitations
- Negative numbers: the word
"negative"is preserved as-is rather than being converted to a unary minus (e.g."negative five"→"negative 5", not"-5"). - Ordinal-to-digit conversion is lossy by default: ordinal suffixes are dropped unless
add_ordinal_ending=Trueis passed (e.g."third"→"3", not"3rd").
What Is Supported
- Decimal literals adjacent to scale words:
"2.5 thousand"→"2500","1.2345 hundred"→"123.45" - Indian number system scales: lakh, crore, arab, kharab
- Ordinals: first, second, …, twentieth, hundredth, thousandth, …
- Spelling correction via
similarity_thresholdparameter - Year-style concatenation:
"twenty ten"→"2010"
Acknowledgements
I have heavily used code from the SO answers from here: https://stackoverflow.com/questions/493174/is-there-a-way-to-convert-number-words-to-integers and improved upon them
Release files for text2digits 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| text2digits-0.1.2.tar.gz | 22.6 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| text2digits-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 48.5 kB
Release files / text2digits-0.1.2.tar.gz
| Download URL | text2digits-0.1.2.tar.gz |
|---|---|
| Size | 22.6 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
02053020819cbb30248f3d71a3eb27459f4907d2300c220235bf0fe0749a7ab0
|
|
BLAKE2b-256 checksum How to use checksums |
5d418a321db651235ca63795b6c9f9b08f4ff60592779d1e75a29933e7a6b5c0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.
Transparency logRelease files / text2digits-0.1.2-py3-none-any.whl
| Download URL | text2digits-0.1.2-py3-none-any.whl |
|---|---|
| Size | 25.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
49a7d615777d37dec3eef66bd7f23deef55315029bbe71dfb5b4bc3d1d1d6e3c
|
|
BLAKE2b-256 checksum How to use checksums |
b1e84abe384d43a4b8d558c79cd32e833afee10a5402799d940b58eb68eead49
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Apr 28, 2026.
Transparency log