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 |
|
| Số có giá trị lớn |
|
| Từ ngữ dân gian |
|
| Cách đọc đơn |
|
| Cách đọc đôi |
|
Cài đặt vietnam-number bằng lệnh:
>>> # -*- 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>>> # -*- 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>>> # -*- 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'>>> # -*- 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'- 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)
Thông báo lỗi 🪲 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 ⭐ nếu thư viện giúp ích được phần nào cho công việc của bạn nhé!.
