UzTransliterator
State-of-the-art Machine Transliteration Tool for Uzbek Language (Cyrillic ↔ Latin ↔ New Latin)
UzTransliterator is an open-source Python package that provides high-accuracy, rule-based machine transliteration between the three writing scripts of the Uzbek language: Cyrillic, Latin, and New Latin.
Features
- Transliteration Between 3 Uzbek Scripts: Full support for bidirectional transliteration between all 3 writing scripts used in Uzbek:
cyr(Cyrillic),lat(Latin), andnlt(New Latin). - Rule-based & Statistical Engine: Correctly handles context-sensitive rules (such as
Е/е,Ц/ц,Ё/Ю/Я, Roman numerals, dates, hyphenation, and exception words). - Lightweight & Fast: Direct Python library execution without external API dependencies.
Installation
Install the package via PyPI:
pip install UzTransliterator
Usage
from UzTransliterator import UzTransliterator
# Initialize transliterator object
obj = UzTransliterator()
# Transliterate from Cyrillic to Latin
latin_text = obj.transliterate("мактаб", from_="cyr", to="lat")
print(latin_text) # Output: maktab
# Transliterate from Cyrillic to New Latin (Yangi Lotin)
new_latin_text = obj.transliterate("Ўзбекистон шаҳарлари va g‘azal", from_="cyr", to="nlt")
print(new_latin_text) # Output: Özbekiston şaharlari va g‘azal
# Transliterate from Latin to New Latin
nlt_text = obj.transliterate("O‘zbekiston, g‘alaba, shahar, chelak", from_="lat", to="nlt")
print(nlt_text) # Output: Özbekiston, ğalaba, şahar, çelak
# Transliterate from New Latin to Cyrillic
cyr_text = obj.transliterate("Özbekiston şaharlari", from_="nlt", to="cyr")
print(cyr_text) # Output: Ўзбекистон шаҳарлари
Script Direction Options (from_ and to)
Supported script codes:
cyr— Cyrillic (Кирилл)lat— Latin (Lotin)nlt— New Latin (Yangi Lotin)
Available direction pairs:
from_='cyr', to='lat'from_='cyr', to='nlt'from_='lat', to='cyr'from_='lat', to='nlt'from_='nlt', to='cyr'from_='nlt', to='lat'
Web Interface
https://uzmorph.uz/models/uztranslit
New Latin Alphabet Reform (Yangi Lotin)
According to the reformed Uzbek Latin alphabet legislation, character mappings are updated as follows:
| Latin | New Latin | Cyrillic Equivalent |
|---|---|---|
G‘, g‘ |
Ğ, ğ |
Ғ, ғ |
O‘, o‘ |
Ö, ö |
Ў, ў |
Sh, sh |
Ş, ş |
Ш, ш |
Ch, ch |
Ç, ç |
Ч, ч |
Scopus Publication & Citation
If you use UzTransliterator in your academic research or projects, please cite our Scopus-indexed research paper:
Salaev, U., Kuriyozov, E., & Gómez-Rodríguez, C. (2022). A Machine Transliteration Tool Between Uzbek Alphabets. CEUR Workshop Proceedings, Vol-3315, pp. 42–50.
📄 Scopus Link: https://www.scopus.com/inward/record.uri?eid=2-s2.0-85146119140&partnerID=40&md5=be670d829670d883b2f8326559ce954a
@CONFERENCE{Salaev202242,
author = {Salaev, Ulugbek and Kuriyozov, Elmurod and Gómez-Rodríguez, Carlos},
title = {A Machine Transliteration Tool Between Uzbek Alphabets},
year = {2022},
journal = {CEUR Workshop Proceedings},
volume = {3315},
pages = {42 – 50},
url = {https://www.scopus.com/inward/record.uri?eid=2-s2.0-85146119140&partnerID=40&md5=be670d829670d883b2f8326559ce954a}
}
License
Distributed under the MIT License. See LICENSE for details.
Metadata
Release files for UzTransliterator 2.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| uztransliterator-2.0.1-py3-none-any.whl | Python 3 | none | any | Details |
Release files / uztransliterator-2.0.1-py3-none-any.whl
| Download URL | uztransliterator-2.0.1-py3-none-any.whl |
|---|---|
| Size | 17.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7968258d0ac31a6fd48d95e864c6f7efc5503c3b543bfb8db9b9122e9c2e81a4
|
|
BLAKE2b-256 checksum How to use checksums |
ae7392f1ae75e2201d924b3e0b191cfb52f9f544e36c839009c25ef1b60ada15
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.0
|