Skip to main content

uzbek_morph — Rule-based morphological analyzer for the Uzbek language

Python Version License: MIT

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

  1. 📏 Rule-Based Analysis Engine:

    • Step-by-step affix stripping using linguistic and morphophonemic rules to accurately extract canonical lemmas for out-of-vocabulary words.
  2. 📚 Extensive Vocabulary Coverage (145,844+ Unique Forms):

    • Comprehensive grammatical and lexical coverage across Nouns, Verbs, Adjectives, Adverbs, Pronouns, Numerals, and Conjunctions.
  3. 🔄 Morphophonemic Sound Change Rules:

    • Consonantal Lenition:
      • g'q: qulog'imquloq, tarmog'itarmoq, qobig'idaqobiq
      • gk: eshigimeshik, yuragidayurak, bilagidanbilak
    • Vowel Syncope / Elision:
      • burniburun, shahrimizgashahar, qornidaqorin, ko'nglimizko'ngil, og'zidanog'iz
  4. 🔗 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 like oldi into olmoq (verb) rather than noun or adjective.
  5. 👤 Pronoun & Numeral Paradigms:

    • Complete inflected personal/demonstrative pronouns (menga, senga, unga, bunga, shunga, bunda, shunda, bundan, shundan) and numerals (birinchi, ikkinchi, ikkala, uchala).
  6. ⚡ Flexible & Unified API (analyze):

    • Single analyze() entry point that seamlessly processes single words, compound phrases, or complete sentences.

📦 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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

uzbek_morph-1.0.0-py3-none-any.whl (729.2 kB view details)

Uploaded Python 3

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

Hashes for uzbek_morph-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 3be9a2d757cf77bbb5e8fc01a62cdd62b8c2084e9693c28f9a7c76cc9ba248f5
MD5 70ed5db7aafe83e794645847bc128574
BLAKE2b-256 140aefe6daad36228d300f4ea2d70c4678685319203e3bc3c976e75a3d40698b

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page