# uznltk

**uznltk** — bu O‘zbek tiliga mo‘ljallangan yengil va qulay NLP (Natural Language Processing) kutubxonadir. Matn tozalash, morfologik tahlil, raqam va matn konversiyalari, bo‘g‘inlarga ajratish va boshqa ko‘plab funksiyalarni o‘z ichiga oladi.

## 🔗 Havolalar

- [PyPI sahifasi](https://pypi.org/project/uznltk)
- [GitHub sahifasi](https://github.com/UlugbekSalaev/uznltk)

## 👤 Mualliflar

- **Salaev Ulug'bek** – ulugbek0302@gmail.com
- **Omanov Jasur** – jasuromonov77@gmail.com
- **Zaripboyev Ollabergan** – dewel000per@gmail.com

## 🔧 O‘rnatish

```bash
pip install uznltk
```

## 🚀 Foydalanish

```python
from uznltk import *
```

## 📚 Funksiyalar

### `clean_text(text)`

O‘zbek tiliga xos belgilarni (g‘, o‘, ’) to‘g‘rilaydi.

```python
clean_text("O'zbekistonda ta'lim kuchli rivojlanmoqda")
# Natija: "O‘zbekistonda ta’lim kuchli rivojlanmoqda"
```

---

### `solid_sign(text)`

(’)-belgisiga ega so‘zlarni ro‘yxat ko‘rinishida qaytaradi.

```python
solid_sign("ta'lim bo'lishi oldindan ma'lum edi")
# Natija: ['ta’lim', 'ma’lum']
```

---

### `lemmatize(text)` va `stem_word(text)`

So‘z ildizini aniqlaydi.

```python
lemmatize("mexanizatorlashtirilganlardan")
# Natija: "mexanizatorlashtirilgan"
```

---

### `number_to_text(number)`

Raqamni o‘zbek tilidagi matnga aylantiradi.

```python
number_to_text(54)
# Natija: "ellik to‘rt"
```

---

### `text_to_number(text)`

Matndagi raqamni son shakliga o‘tkazadi.

```python
text_to_number("yetmish olti")
# Natija: 76
```

---

### `download(name)`

Turli resurslarni yuklab oladi (masalan: kitoblar, yangiliklar).

```python
download("book")
```

---

### `clean_stopword(text)`

Matndan stop-so‘zlarni olib tashlaydi.

```python
clean_stopword("salom dunyo, biz sen va u bilan bugun maktabga bordik")
# Natija: "salom dunyo, bugun maktabga bordik"
```

---

### `syllables(text)`

So‘zlarni bo‘g‘inlarga ajratadi.

```python
syllables("Bizga ma’lum ishlar yuz bermoqda!")
# Natija: ['Biz-ga', 'ma’-lum', 'ish-lar', 'yuz', 'ber-moq-da!']
```

---

### `hyphenation(text)`

Har bir so‘zni bo‘g‘inlarga ajratib ro‘yxat shaklida beradi.

```python
hyphenation("salom dunyo")
# Natija: ['sa-lom dunyo', 'salom dun-yo']
```

---

### `count_syllable(text)`

Matndagi bo‘g‘inlar sonini hisoblaydi.

```python
count_syllable("Salom Dunyo")
# Natija: 4
```

---

### `count_text(text)`

Matndagi so‘zlar sonini hisoblaydi.

```python
count_text("Salom Dunyo")
# Natija: 2
```

---

### `split_sentences(text)`

Matndagi gaplarni ro‘yxatga ajratadi.

```python
split_sentences("Salom Dunyo. Bugun ob-havo qisman bulutli")
# Natija: ['Salom Dunyo', 'Bugun ob-havo qisman bulutli']
```

---

### `split_words(text)`

Matndagi faqat so‘zlarni (IP, email, emoji, URLlarsiz) ro‘yxatga ajratadi.

```python
split_words("sen 192.168.1.18 va helloworld@example.com elektron manzilidasan. Manba https://pypi.org")
# Natija: ['sen', 'va', 'elektron', 'manzilidasan', 'Manba']
```

---

## 💡 Foydali ma’lumot

- Kutubxona butunlay **O‘zbek tili uchun** mo‘ljallangan.
- Raqamlar bilan ishlash, lemmatizatsiya va bo‘g‘inlash kabi asosiy NLP komponentlarini o‘z ichiga oladi.

