Skip to main content

A small library to convert text numbers to digits in a string

Project description

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=True is 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_threshold parameter
  • 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

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

text2digits-0.1.2.tar.gz (22.6 kB view details)

Uploaded Source

Built Distribution

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

text2digits-0.1.2-py3-none-any.whl (25.9 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: text2digits-0.1.2.tar.gz
  • Upload date:
  • Size: 22.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for text2digits-0.1.2.tar.gz
Algorithm Hash digest
SHA256 02053020819cbb30248f3d71a3eb27459f4907d2300c220235bf0fe0749a7ab0
MD5 1380cc157d929f0ab2e746614e7b5a31
BLAKE2b-256 5d418a321db651235ca63795b6c9f9b08f4ff60592779d1e75a29933e7a6b5c0

See more details on using hashes here.

Provenance

The following attestation bundles were made for text2digits-0.1.2.tar.gz:

Publisher: publish.yml on ShailChoksi/text2digits

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

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

File metadata

  • Download URL: text2digits-0.1.2-py3-none-any.whl
  • Upload date:
  • Size: 25.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for text2digits-0.1.2-py3-none-any.whl
Algorithm Hash digest
SHA256 49a7d615777d37dec3eef66bd7f23deef55315029bbe71dfb5b4bc3d1d1d6e3c
MD5 254b0dd096d99ae03ff80f2b7285753f
BLAKE2b-256 b1e84abe384d43a4b8d558c79cd32e833afee10a5402799d940b58eb68eead49

See more details on using hashes here.

Provenance

The following attestation bundles were made for text2digits-0.1.2-py3-none-any.whl:

Publisher: publish.yml on ShailChoksi/text2digits

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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