Skip to main content
https://madewithlove.now.sh/vn?heart=true&colorB=%23d5481d https://img.shields.io/pypi/v/vietnam-number https://img.shields.io/badge/python-3.9|3.10|3.11|3.12|3.13|3.14-blue https://img.shields.io/badge/license-GPLv3-brightgreen.svg https://img.shields.io/badge/chat-on%20facebook-informational

https://user-images.githubusercontent.com/66929261/100044430-424d1800-2e42-11eb-8875-3b5abbf25ade.png

Vietnam-number là một thư viện Python mã nguồn mở hỗ trợ cho việc xữ lý chữ số trong Tiếng Việt.

Support

Description

Văn nói - Văn viết

  • Hỗ trợ cho cả văn viết và văn nói thông dụng.

Số có giá trị lớn

  • Hỗ trợ chuyển đổi chử số từ 0 đến 999.999.999.999

Từ ngữ dân gian

  • Hỗ trợ các từ ngữ dân gian, vùng miền:

  • Vd: ‘tỷ - tỏi’, ‘triệu - chai, củ’, ‘nghìn - ngàn’, ‘trăm - lít’ , ‘bốn - tư’…

Cách đọc đơn

  • Hỗ trợ chuyển đổi văn bản chữ số sang số theo cách đọc từng số:

  • Vd: ‘không một hai ba bốn năm sáu bảy tám chín’ = 0123456789

Cách đọc đôi

  • Hỗ trợ chuyển đổi văn bản chữ số sang số theo cách đọc từng cặp số:

  • Vd: ‘không một hai ba bốn mươi lăm sáu mươi bảy tám mươi chín’ = 0123456789

Cài đặt

Cài đặt vietnam-number bằng lệnh:

$ pip install vietnam-number

Tính năng

1. Chữ số sang số có từ liên kết.

https://img.shields.io/badge/feature-word%20to%20number-orange
Chuyển đổi Chữ số sang Số có các từ liên kết (‘mươi’, ‘trăm’, ‘nghìn’, ‘triệu’, ‘tỷ’).
Sử dụng phù hợp trong các tình huống như: đơn vị tiền tệ, số tuổi…
>>> # -*- coding: utf-8 -*-
>>> from vietnam_number import w2n
>>> text = 'một triệu không trăm tám mươi lăm nghìn ba trăm ba mươi hai'

>>> w2n(text)
1085332

# Văn nói vắn tắt
>>> text_1 = 'một triệu tư'
>>> text_2 = 'nghàn hai'

>>> w2n(text_1)
1400000

>>> w2n(text_2)
1200

# Hỗ trợ số có giá trị lớn
>>> text = 'chín trăm năm mươi ba tỷ lẽ tám mươi bảy triệu'

>>> w2n(text)
953087000000

# Văn nói đặt biệt
# Chỉ áp dụng cho chữ số có từ liên kết.
# Trường hợp không có từ liên kết chỉ áp dụng cho các số có giá trị từ 0 đến 999
>>> text_1 = 'ba bốn mươi hai'
>>> text_2 = 'ba mươi bảy năm'

>>> w2n(text_1)
342

>>> w2n(text_1)
375

# Từ ngữ dân gian
>>> text = 'bảy củ'

>>> w2n(text)
7000000

2. Chữ số sang số không có từ liên kết.

https://img.shields.io/badge/feature-word%20to%20number-orange
Chuyển đổi Chữ số sang Số không có từ liên kết.
Sử dụng phù hợp trong các tình huống một dãy nhiều chữ số khác nhau như: số chứng minh thư, số visa, số thẻ ATM, số điện thoại, tài khoản ngân hàng…
>>> # -*- coding: utf-8 -*-
>>> from vietnam_number import w2n_single, w2n_couple

# Văn nói cho cách đọc đơn từng số một.
>>> text = 'không tám không chín một hai ba bốn năm sáu'

>>> w2n_single(text)
0809123456

# Cách đọc đôi từng cặp số.
# Bắt buộc số ban đầu phải là số kết hợp bởi từng cặp số,
# hay nói cách khác số ban đầu phải có số lượng chữ số chia hết cho 2.
# Trong trường hợp đặt biệt này, dãy số có thể có hoặc không có từ liên kết hàng chục là từ 'mươi'...
# vd:
#  032 -> 'không ba mươi hai' -> không được phép (số lượng phần tử số ban đầu lẽ) -> đầu ra không chính xác.
#  0324 -> 'không ba mươi hai bốn' -> không được phép (không phải cách đọc từng cặp số một) -> đầu ra không chính xác
#  0324 -> 'không ba hai mươi bốn' -> Ok
>>> text = 'hai mươi ba bảy tám mươi bốn năm bốn chín mươi mốt mười hai bảy năm'

>>> w2n_couple(text)
20378454911275

3. Số sang chữ số có từ liên kết

https://img.shields.io/badge/feature-number%20to%20word-yellow
Chuyển đổi Số sang Chữ số cần có các từ liên kết như (‘mươi’, ‘trăm’, ‘nghìn’, ‘triệu’, ‘tỷ’).
Sử dụng phù hợp trong các trường hợp như: giá sản phẩm, đơn vị tiền tệ, số tuổi…,
Hỗ trợ văn nói cho các từ như ‘một - mốt’, ‘năm - lăm’, ‘lẽ - linh’…
>>> # -*- coding: utf-8 -*-
>>> from vietnam_number import n2w

>>> number = '115205201211'
>>> n2w(number)
'một trăm mười lăm tỷ hai trăm lẽ năm triệu hai trăm lẽ một nghìn hai trăm mười một'


# hỗ trợ một số trường hợp có cách đọc đặc biệt
>>> list_number = ['111', '200', '101', '121', '815', '805', '825']
>>> for element in list_number:
...      print(n2w(element))
...
'một trăm mười một'
'hai trăm'
'một trăm lẽ một'
'một trăm hai mươi mốt'
'tám trăm mười lăm'
'tám trăm lẽ năm'
'tám trăm hai mươi lăm'

4. Số sang chữ số không có từ liên kết

https://img.shields.io/badge/feature-number%20to%20word-yellow
Chuyển đổi Số sang Chữ số không cần có các từ liên kết.
Sử dụng phù hợp trong các trường hợp một chuỗi nhiều số khác nhau như: số chứng minh thư, số visa, số thẻ ATM, số điện thoại, tài khoản ngân hàng…
>>> # -*- coding: utf-8 -*-
>>> from vietnam_number import n2w_single

# Chuyển đổi từng số một.
>>> number = '0908123456'
>>> n2w_single(number)
'không chín không tám một hai ba bốn năm sáu'

# Hỗ trợ cho số có đầu số là '+84'
>>> number = '+84908123456'
>>> n2w_single(number)
'không chín không tám một hai ba bốn năm sáu'

Tính Năng Trong Tương Lai

  • Hỗ trợ số thập phân.

  • Hỗ trợ số âm.

  • Chuyển đổi số thứ tự

  • Chuyển đổi ngày tháng năm

  • Chuyển đổi đơn vị đo khối lượng (g - kg - yến - tạ - tấn)

  • Chuyển đổi đơn vị đo độ dài (mm - cm - m - km)

Đóng Góp

Thông báo lỗi :beetle: tại https://github.com/ngthuong45/vietnam-number/issues

Nếu bạn phát hiện một lỗi mới, vui lòng thông báo đính kèm các thông tin:

  • Thông tin hệ điều hành của bạn.

  • Những thiết lập ở local nếu có.

  • Các bước chi tiết dẫn đến phát hiện lỗi.


Để lại một sao :star: nếu thư viện giúp ích được phần nào cho công việc của bạn nhé!.

Release files for vietnam_number 1.0.6

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vietnam_number 1.0.6
File Size Uploaded
vietnam_number-1.0.6.tar.gz 14.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vietnam_number 1.0.6
File Interpreter ABI Platform
vietnam_number-1.0.6-py3-none-any.whl Python 3 none any Details

Total release size: 36.4 kB

Release files / vietnam_number-1.0.6.tar.gz

Download URL vietnam_number-1.0.6.tar.gz
Size 14.5 kB
Tags Source
SHA-256 checksum
How to use checksums
41f71bba119a35df2534dfe1dca660a762c37a351da2da75205c73eb4db8a6e4
BLAKE2b-256 checksum
How to use checksums
0949669dad6e1c498063ab00e60790d0d438f8337b90bc501eccdbae4bb1e522
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.4 CPython/3.13.7 Darwin/25.1.0

Release files / vietnam_number-1.0.6-py3-none-any.whl

Download URL vietnam_number-1.0.6-py3-none-any.whl
Size 21.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0a0c001ad2357ce95095ab6c928de183bc844ed3f9ed0e35ec443d0c869e12b2
BLAKE2b-256 checksum
How to use checksums
40316b65514ff282b27638847e1618b3826d92d6d2551ee0dffaad3b8f046075
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via poetry/2.1.4 CPython/3.13.7 Darwin/25.1.0

Release history Release notifications | RSS feed

This release

1.0.6 This release

2 release files

1.0.5

2 release files

1.0.4

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page