uzbek_morph — Rule-based morphological analyzer for the Uzbek language
Author: Ulugbek Salaev Model Page: 🌐 http://uzmorph.uz/models/uzbek_morph
uzbek_morph is a high-precision hybrid morphological analyzer and lemmatizer for the Uzbek language. It features a rule-based engine and a corpus of 145,844 unique surface forms.
🌟 Key Features
-
📏 Rule-Based Analysis Engine:
- Step-by-step affix stripping using linguistic and morphophonemic rules to accurately extract canonical lemmas for out-of-vocabulary words.
-
📚 Extensive Vocabulary Coverage (145,844+ Unique Forms):
- Comprehensive grammatical and lexical coverage across Nouns, Verbs, Adjectives, Adverbs, Pronouns, Numerals, and Conjunctions.
-
🔄 Morphophonemic Sound Change Rules:
- Consonantal Lenition:
g'➔q: qulog'im ➔quloq, tarmog'i ➔tarmoq, qobig'ida ➔qobiqg➔k: eshigim ➔eshik, yuragida ➔yurak, bilagidan ➔bilak
- Vowel Syncope / Elision:
- burni ➔
burun, shahrimizga ➔shahar, qornida ➔qorin, ko'nglimiz ➔ko'ngil, og'zidan ➔og'iz
- burni ➔
- Consonantal Lenition:
-
🔗 Compound & Auxiliary Verb Contextual Parser:
- Intelligent rule chain for Uzbek converb (
-ib/-b) + auxiliary verb constructions (uxlab oldi,aytib keldi,yozib berdi,kulib yubordi), disambiguating auxiliary verbs likeoldiintoolmoq(verb) rather than noun or adjective.
- Intelligent rule chain for Uzbek converb (
-
👤 Pronoun & Numeral Paradigms:
- Complete inflected personal/demonstrative pronouns (menga, senga, unga, bunga, shunga, bunda, shunda, bundan, shundan) and numerals (birinchi, ikkinchi, ikkala, uchala).
-
⚡ Flexible & Unified API (
analyze):- Single
analyze()entry point that seamlessly processes single words, compound phrases, or complete sentences.
- Single
📦 Installation
pip install uzbek_morph
💻 Usage Code Snippets
1. Quickstart (Default Tabular Display):
import uzbek_morph
# Single Word:
uzbek_morph.analyze("kitoblarimizga")
# Compound Phrase:
uzbek_morph.analyze("uxlab oldi")
# Full Sentence:
uzbek_morph.analyze("Men kecha go'zal shahrimizga kitob sotib olgani bordim")
2. Programmatic Data Processing:
Set print_result=False to receive a list of structured dictionaries without printing the console table:
from uzbek_morph import analyze
data = analyze("Men kecha go'zal shahrimizga bordim", print_result=False)
for item in data:
print(f"Word: {item['word']} | Lemma: {item['lemma']} | Tag: {item['tags']} | Source: {item['source']}")
📄 License & Author
Author: Ulugbek Salaev Distributed under the MIT License.
Note: Data schema adheres to UniMorph morphosyntactic specifications.
Metadata
Release files for uzbek-morph 1.0.0
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 | Actions Reset |
|---|---|---|---|---|
| uzbek_morph-1.0.0-py3-none-any.whl | Python 3 | none | any | Details for uzbek_morph-1.0.0-py3-none-any.whl |
Release files / uzbek_morph-1.0.0-py3-none-any.whl
| Download URL | uzbek_morph-1.0.0-py3-none-any.whl |
|---|---|
| Size | 729.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
3be9a2d757cf77bbb5e8fc01a62cdd62b8c2084e9693c28f9a7c76cc9ba248f5
|
|
BLAKE2b-256 checksum How to use checksums |
140aefe6daad36228d300f4ea2d70c4678685319203e3bc3c976e75a3d40698b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.0
|
Security for uzbek-morph 1.0.0
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.