No project description provided
Project description
vietnamese_address_parser is an experimental library for parsing and normalizing Vietnamese addresses, used in our search and data scraping tools.
Installation
pip install vietnamese_address_parser
⚠️ NOTE ⚠️
This parser integrates with the OpenStreetMap Nominatim API to enhance address accuracy through geolocation.
Because of this, some lookups may take a few seconds to complete, depending on network speed and API rate limits.
Usage in Python
Import and use the parser in your Python code:
from vietnamese_address_parser import VietnameseAddressParser
parser = VietnameseAddressParser()
address = "XVNT, P 17, Quan BT, TP. HCM, VN"
result = parser(address)
print(result)
result:
Đường Xô Viết Nghệ Tĩnh, Phường 17, Quận Bình Thạnh, Thành Phố Hồ Chí Minh, Việt Nam
General Notes
- Keep abbreviations to two segments or fewer for best search performance.
- Separate all address components with commas, in this order:
- Maximun field length is 5
{dia_chi}, {extra_field}, {phuong_xa} or {quan_huyen}, {tinh_thanh_pho}, {viet_nam}
Valid address example
TP. VT, Tỉnh BR-VTĐường XVNT, Quận Bình Thạnh, TP. HCM, VNĐường Lê Lợi, P.1, Q.1, TP. HCM67 Trần Kế Xương, Q. PN, TP. HCM218 Trần Quý Cáp, X. TL, TP. PT, Tỉnh Bình ThuậnPhú Thạnh, Tân Phú, Hồ Chí Minh, Việt Nam218 Tran Quy Cap, Thanh pho Phan Thiet, Tinh Binh Thuan43/47 Cù Chính Lan, Thanh Khê Đông, TK, ĐN
CLI Usage
When you run the command:
vietnamese_address_parser
it will print:
Vietnamese Address Parser v0.1.10
Hello! Welcome to the Vietnamese Address Parser CLI.
Usage example:
parser = VietnameseAddressParser()
result = parser("54-55 Bau Cat 4, Phuong 14, Tan Binh, Ho Chi Minh")
print(result)
⚠️ NOTE ⚠️:
This parser uses the OpenStreetMap Nominatim API for geolocation enhancement.
As a result, some lookups may take a few seconds due to network latency or rate limits
1. House Number & Street Name {dia_chi}
Format
{house_number}\s{prefix?}\.?\s{street_name}
where {prefix} is one of:
Đ.Đường
or just
{house_number}\s{street_name}
Valid Examples
123A/32 Trần Hưng Đạo45A đường Nguyễn HuệĐường Nam Kỳ Khởi NghĩaĐ. XVNT
Invalid:
Nam Kỳ Khởi Nghĩa(missing "Đường" or house_number as a prefix)
2. Phường / Xã {phuong_xa}
Format Options
{prefix}\.?\s{phuong_xa}
where {prefix} is one of:
X.XaP.PhuongTT.Thi tran
or just
{phuong_xa}
Valid Examples
P. 7P. BNP. Bến NghéPhường Bến Nghé
3. Quận / Huyện / Thị xã {quan_huyen}
Format Options
{prefix}\.?\s{quan_huyen}
where {prefix} is one of:
Q.QuanH.HuyenTX.Thi xa
or just
{quan_huyen}
4. Tỉnh / Thành Phố {tinh_thanh_pho}
Format Options
{prefix}\.?\s{tinh_thanh_pho}
where {prefix} is one of:
T.TỉnhTP.Thanh pho
or just
{tinh_thanh_pho}
5. Việt Nam (optional) {viet_nam}
Format Options
{country}
or just blank
How does it work?
Given an address string consisting of up to 5 fields:
{dia_chi}, {extra_field}, {phuong_xa} or {quan_huyen}, {tinh_thanh_pho}, {viet_nam},
-
We first expand abbreviations (e.g.,
"T."to"Tỉnh","TP"to"Thành phố"), and expand names of common cities (e.g.,"HCM"to"Thành phố Hồ Chí Minh"). -
Next, we use administrative division data from https://danhmuchanhchinh.gso.gov.vn/
to expand abbreviations within the following three fields:{phuong_xa}or{quan_huyen},{tinh_thanh_pho} -
Then, if no abbreviation or full preffix or missing accent (diacritic) is detected, the address is returned as-is.
-
Otherwise, we use the OpenStreetMap Nominatim API to obtain additional address details. We then use this information to correct abbreviated or unaccented or no preffix address segments.
-
Since the API results are often inconsistent, we only apply updates if the normalized version (abbreviated and accent-stripped) of the returned address is consistent with the original input.
-
If the OpenStreetMap API cannot be reached or no useful result is obtained, we return the address at the last successfully processed step.
End of Guide.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file vietnamese_address_parser-0.1.10.tar.gz.
File metadata
- Download URL: vietnamese_address_parser-0.1.10.tar.gz
- Upload date:
- Size: 62.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c8200d880ffe6554f22b549ce84311c33078203b01ee275138707a996cdb17df
|
|
| MD5 |
58af6cf072621d23ec306198cedcb65f
|
|
| BLAKE2b-256 |
65a2857ef99d34523c39e6247cea74b2d96f2d881112c1868fc63496a24d04cf
|
File details
Details for the file vietnamese_address_parser-0.1.10-py3-none-any.whl.
File metadata
- Download URL: vietnamese_address_parser-0.1.10-py3-none-any.whl
- Upload date:
- Size: 61.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
257df498eddb6ba3f9ad073ade480c6c7928bc9cea0488218dcc3733be9de7f6
|
|
| MD5 |
6d83e23d96f75b7ab82ef5a40f70d2af
|
|
| BLAKE2b-256 |
528bb16eb2588b58ec49ba73b083caf51d46a0ffb2ec9f93ebc40cb71902277f
|