w2n2w
Convert words to numbers and back again.
Compatible with Python 3.6 and up.
Why is this a thing?
There was one repo called word2number by Akshay Nagpal which converted words to numbers.
There was another repo called num2word by MUKESHSIHAG which converted numbers to words.
To my knowledge there wasn't one that did both (also word2number appears un-maintained).
So I forked and re-wrote word2number and here we are.
What does it do?
Converts number words like "forty three" to integers/floats.
import w2n2w
print(w2n2w.word_to_num('forty three'))
> 43
print(w2n2w.word_to_num('twenty-two point nine one'))
> 22.91
print(w2n2w.word_to_num(('one hundred and twenty three million'
' four hundred and fifty six thousand'
' seven hundred and eighty nine')))
> 123456789
print(w2n2w.word_to_num('negative twelve'))
> -12
print(w2n2w.word_to_num('12 thousand and thirty 8'))
> 12038
print(w2n2w.word_to_num('seventy first'))
> 71
It can also convert numbers into words
import w2n2w
from pprint import pprint
print(w2n2w.num_to_word(1234))
> 'one thousand two hundred and thirty four'
# use pprint here to make long line more readable
pprint(w2n2w.num_to_word(123456789))
> ('one hundred and twenty three million four hundred and fifty six thousand '
> 'seven hundred and eighty nine')
print(w2n2w.num_to_word(1.52))
> 'one point five two'
print(w2n2w.num_to_word(-0.999))
> 'negative zero point nine nine nine'
print(w2n2w.num_to_word(0))
> 'zero'
In theory this library can handle any real number (positive or negative) but for numbers greater than or equal to one undecillion (10^36) you will start to face issues, as these numbers are represented in terms of the highest order of magnitude this library knows.
So 10^36 is represented as 10^33 * 1000 or 'one thousand decillion'.
Things to bear in mind
Some examples may produce unexpected behaviour.
import w2n2w
print(w2n2w.word_to_num('one two three'))
> 6
print(w2n2w.word_to_num('thousandth'), w2n2w.word_to_num('one thousandth'))
> 1000, 0.001
print(w2n2w.word_to_num('third'), w2n2w.word_to_num('one third'))
> 3, 0.3333333333333
print(w2n2w.word_to_num('forty seventh'), w2n2w.word_to_num('forty sevenths'))
> 47, 5.7142857142857135
Metadata
Release files for w2n2w 0.3.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| w2n2w-0.3.1.tar.gz | 10.7 kB | Without provenance | Details for w2n2w-0.3.1.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| w2n2w-0.3.1-py3-none-any.whl | Python 3 | none | any | Details for w2n2w-0.3.1-py3-none-any.whl |
Total release size: 20.7 kB
Release files / w2n2w-0.3.1.tar.gz
| Download URL | w2n2w-0.3.1.tar.gz |
|---|---|
| Size | 10.7 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
9b63fea69cb9f51d6a59b35e8eb06b75923ee7354cdd6f5264c13c35d934ff4b
|
|
BLAKE2b-256 checksum How to use checksums |
eb36051e9d38aae71dc4ae36ca6bfa05a38820192ed994dc14565a191223bfb0
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.4
|
Release files / w2n2w-0.3.1-py3-none-any.whl
| Download URL | w2n2w-0.3.1-py3-none-any.whl |
|---|---|
| Size | 9.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7ca11956d0797ccd4203531680e59f001028e7eb8ad5a3f6d538a6ed7a8e0644
|
|
BLAKE2b-256 checksum How to use checksums |
6f9f2b66a111df998c7c5e1ea071531f251958784d0fce5a54d48ce24b4a40fb
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/3.2.0 pkginfo/1.5.0.1 requests/2.25.0 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.48.2 CPython/3.8.4
|
Security for w2n2w 0.3.1
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.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.