Tizim qanday ishlaydi
Omonim — yozilishi bir xil, ma’nosi har xil so‘z. Masalan, “yoz” fasl ham, “xat yozmoq” ham bo‘lishi mumkin. Tizim gapdagi bunday so‘zlarni topadi va qaysi ma’noda ishlatilganini kontekstga qarab aniqlaydi.
Tahlil bosqichlari
-
Omonimni topish
Gapdagi har bir so‘z lug‘at bilan solishtiriladi. Qo‘shimchalar (masalan, yozdi, otni) morfologik qoidalar orqali ajratilib, so‘zning lug‘at shakli aniqlanadi.
-
Kontekstni o‘qish
Topilgan so‘zning atrofidagi to‘rttadan so‘z olinadi. Ma’noni aynan shu yaqin so‘zlar belgilaydi.
-
Ma’noni tanlash
Har bir omonim uchun alohida o‘qitilgan model kontekstga eng mos ma’noni tanlaydi va lug‘atdagi izohini qaytaradi.
Modellar
Modellar oldindan o‘qitilgan va server ishga tushganda bir marta yuklanadi. Tahlil paytida ular qayta o‘qitilmaydi.
- LinearSVC
- Chiziqli tayanch vektorlar usuli. Notebookdagi asosiy model.
- LogisticRegression
- Logistik regressiya: har bir ma’no uchun ehtimollikni baholaydi.
- MultinomialNB
- Naiv Bayes: so‘zlar chastotasiga tayanadigan tezkor model.
- RandomForestClassifier
- Tasodifiy o‘rmon: ko‘plab qaror daraxtlari ovozi.
Dasturchilar uchun API
Tizimni boshqa dasturlarga ulash uchun JSON interfeysi mavjud.
POST /api/analyze/ — gapni tahlil qilish
{
"sentence": "Yoz kelib, u darsni yozdi.",
"model": "LinearSVC",
"all_models": false
}
GET /api/models/ — mavjud modellar ro‘yxati
GET /api/health/ — xizmat holati