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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
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 uzbek_morph-1.0.0-py3-none-any.whl.
File metadata
- Download URL: uzbek_morph-1.0.0-py3-none-any.whl
- Upload date:
- Size: 729.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via:
twine/7.0.0 CPython/3.12.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3be9a2d757cf77bbb5e8fc01a62cdd62b8c2084e9693c28f9a7c76cc9ba248f5
|
|
| MD5 |
70ed5db7aafe83e794645847bc128574
|
|
| BLAKE2b-256 |
140aefe6daad36228d300f4ea2d70c4678685319203e3bc3c976e75a3d40698b
|