Muammo — RAG Skanerlangan Hujjatni Ko'rmaydi
RAG tizimining "ko'r nuqtasi"
RAG qo'llanmasida ko'rganimizdek, butun pipeline matn ustida quriladi: matnni chunk larga bo'lamiz, embedding qilamiz, qidiramiz. Lekin bitta yashirin shart bor — hujjatdan matnni olish imkoni bo'lishi kerak.
Real loyihada esa shunday hodisa yuz beradi:
Mijoz: "Mana 2000 ta shartnoma, hammasini bilim bazasiga qo'shing"
Siz: pdfplumber bilan ochasiz...
extract_text() -> "" (bo'sh satr!)
Hamma PDF — skanerlangan. Matn qatlami yo'q.
Bu xato emas. PDF ikki xil bo'ladi, va farqini tushunish juda muhim.
PDF ning ikki turi: matn qatlami bor va yo'q
Digital PDF — Word/LaTeX dan eksport qilingan. Ichida haqiqiy matn bor: har bir harf, uning shrifti va koordinatasi saqlangan. Ctrl+F bilan qidirsa bo'ladi, sichqoncha bilan belgilab nusxa olsa bo'ladi.
Skanerlangan PDF — qog'oz hujjat skanerdan o'tgan. Ichida faqat rasm bor: har sahifa — bitta katta fotosurat. Kompyuter uchun bu piksellar to'plami, "matn" degan tushuncha umuman yo'q.
Digital PDF ichida: Skanerlangan PDF ichida:
"Shartnoma" (matn obyekti) [1240 x 1754 piksel rasm]
font: Times, x: 120, y: 340 matn qayerda? nima yozilgan?
PDF buni BILMAYDI.
Tekshirish oson: PDF ni oching va matnni sichqoncha bilan belgilashga urinib ko'ring. Belgilanmasa — skanerlangan.
Bu muammo qayerda uchraydi?
O'zbekistondagi real ish muhitida — deyarli hamma joyda:
- Davlat idoralari arxivi — buyruqlar, qarorlar, yozishmalar: 90% skanerlangan
- Shartnomalar — imzo va muhr uchun chop etiladi, keyin skanerlanadi
- Eski hujjatlar — 2010-yilgacha bo'lgan deyarli hamma narsa
- Telefon suratlari — xodim hujjatni kamerada olib yuboradi
- Rus va o'zbek aralash — bitta hujjatda ikki til, lotin va kirill aralash
Agar RAG tizimingiz bularni o'qiy olmasa, bilim bazasining kattagina qismi — shunchaki yo'q. Foydalanuvchi "2019-yilgi shartnomada nima deyilgan?" deb so'raydi, tizim esa "ma'lumot topilmadi" deydi. Ma'lumot bor edi — tizim uni ko'ra olmadi.
OCR nima?
OCR — Optical Character Recognition (optik belgilarni tanish) — rasm ichidagi harflarni topib, ularni oddiy matnga aylantirish texnologiyasi.
Kirish: rasm (piksellar) Chiqish: matn (satrlar)
[skanerlangan sahifa.png] --> "ShARTNOMA № 45
Toshkent sh. 2024-yil 15-yanvar
«Nihol» MChJ nomidan..."
OCR — yangi texnologiya emas. Tesseract 1985-yilda HP laboratoriyasida boshlangan, 2006-yildan Google qo'llab-quvvatlaydi. Lekin oxirgi yillarda ikki inqilob yuz berdi:
- Deep learning — neyron tarmoqlar klassik algoritmlarni siqib chiqardi (aniqlik keskin oshdi)
- VLM (Vision Language Model) — endi LLM ning o'zi rasmni "ko'radi" va o'qiydi
Bu qo'llanmada ikkalasini ham o'rganamiz va qachon qaysi birini ishlatishni aniq bilib olamiz.
Bu qo'llanma nimani o'rgatadi
Yo'l xaritamiz — xuddi RAG qo'llanmasidagi kabi, muammodan production gacha:
| Bob | Mavzu | Natija |
|---|---|---|
| 2 | OCR ichki arxitekturasi | Texnologiyani tushunasiz |
| 3 | Preprocessing (OpenCV) | Rasmni OCR uchun tayyorlaysiz |
| 4 | Tesseract | Asosiy ish qurolini o'zlashtirasiz |
| 5 | EasyOCR va PaddleOCR | Muqobillarni bilasiz |
| 6 | VLM bilan OCR | Eng zamonaviy usulni qo'llaysiz |
| 7 | Skanerlangan PDF pipeline | To'liq PDF oqimini qurasiz |
| 8 | OCR → RAG integratsiyasi | RAG tizimiga ulaysiz |
| 9 | CER/WER — sifatni o'lchash | Natijani raqam bilan baholaysiz |
| 10 | Hands-on: to'liq modul | Production-ready kod yozasiz |
Xulosa
| Tushuncha | Asosiy fikr |
|---|---|
| Ikki xil PDF | Digital (matn bor) va skanerlangan (faqat rasm) — extract_text() bo'sh qaytarsa, skanerlangan |
| Muammo ko'lami | Real arxivlarning katta qismi skanerlangan — usiz bilim bazasi chala |
| OCR | Rasm → matn. Klassik (Tesseract) va zamonaviy (deep learning, VLM) avlodlari bor |
| Maqsad | RAG ingestion pipeline'iga "ko'z" qo'shish |
Bu bobni bepul o'qidingiz.
Kitob o'rgatadi, lekin sizning kodingiz nega ishlamaganini ayta olmaydi. Kursda uy vazifangiz tekshiriladi.