Management and Future Technologies | Volume 3, Issue 3 | № 011

Читайте выпуск в формате PDF

167 стр. · PDF · 6.14 MB

Скачать
Текстовый вид 161–167 / 167 стр.

Текст автоматически извлечён из PDF-файла, поэтому форматирование может быть нарушено. Откройте PDF-копию для корректного отображения.

161-стр.

10. Harvey, D.; Leybourne, S.; Newbold, P. Testing the equality of prediction mean squared errors. International Journal of Forecasting, 1997, 13(2), 281–291-betlar. 11. Welch, I.; Goyal, A. A comprehensive look at the empirical performance of equity premium prediction. The Review of Financial Studies, 2008, 21(4), 1455–1508-betlar. 12. 2026-yil 15-sentabrdan boshlab almashuv kursini shakllantirish va e’lon qilish amaliyotlari takomillashtiriladi. Yangi O‘zbekiston, 10.09.2026. Elektron manba: https://yuz.uz/uz/news/2026-yil-15-sentyabrdan-boshlab-almashuv-kursini-shakllantirish-vaelon-qilish-amaliyotlari-takomillashtiriladi. N-GRAM GENERATSIYA MODULI OPTIMIZATSIYASI Mastura Hakim qizi Primova ToshDO‘TAU, katta o‘qituvchi primovamastura@navoiy-uni.uz Annotatsiya: Ushbu maqolada tabiiy tilni qayta ishlash tizimlarida qo‘llaniladigan N-gram generatsiya modulini optimallashtirish usullari tadqiq etilgan. Tadqiqotda katta hajmdagi matn korpuslaridan N-gramlarni shakllantirish jarayonining hisoblash murakkabligi hamda ushbu jarayonda yuzaga keladigan vaqt va protsessor resurslari bilan bog‘liq muammolar tahlil qilingan. Modulning ishlash samaradorligini oshirish maqsadida parallel qayta ishlash texnologiyasidan foydalanish yondashuvi ko‘rib chiqilgan va uning N-gramlarni hosil qilish jarayoniga ta’siri baholangan. O‘tkazilgan tajribalar natijasida parallel qayta ishlashdan foydalanish N-gramlarni shakllantirish vaqtini sezilarli darajada qisqartirishi, protsessor resurslaridan foydalanish samaradorligini oshirishi hamda qayta ishlash natijalarining aniqligini saqlab qolishi aniqlandi. Olingan natijalar parallel hisoblashga asoslangan optimallashtirish usullaridan foydalanish katta hajmdagi matn korpuslarini samarali qayta ishlash va N-gram generatsiya modulining umumiy unumdorligini oshirish uchun istiqbolli yondashuv ekanligini ko‘rsatadi. Kalit so‘zlar: N-gram, NLP, matn generatsiyasi, optimallashtirish, parallel hisoblash, til modeli, samaradorlik. 1. KIRISH Hozirgi kunda tabiiy tilni qayta ishlash (Natural Language Processing — NLP) sun’iy intellektning muhim yo‘nalishlaridan biri bo‘lib, matnlarni avtomatik tahlil qilish, tarjima qilish, keyingi so‘zni bashoratlash va matn generatsiyasi kabi vazifalarda keng qo‘llaniladi. Ushbu jarayonlarda N-gram modellari matndagi ketma-ket tokenlar o‘rtasidagi statistik bog‘lanishlarni aniqlash va keyingi token ehtimolini baholash uchun samarali vositalardan biri hisoblanadi [1,2]. Katta hajmdagi korpuslarda N-gramlarni shakllantirish va qayta ishlash esa sezilarli hisoblash resurslarini talab qiladi. Ayniqsa, millionlab gaplardan tashkil topgan korpuslarda Ngramlar sonining ortishi ularni generatsiya qilish, saqlash va qidirish jarayonlarini murakkablashtiradi. Shu sababli parallel qayta ishlash va N-gram tartibini optimallashtirish kabi yondashuvlardan foydalanish muhim ahamiyat kasb etadi [1]. Ushbu maqolada katta hajmdagi matn korpuslaridan N-gramlarni shakllantirish va ular asosida qidiruv jarayonini hisoblash jihatidan optimallashtirishdan iborat. Tadqiqotda parallel 160

162-стр.

hisoblash, N-gram darajasini cheklash, sliding window, paketli qayta ishlash, indekslash va keshlash usullarining samaradorligi ko‘rib chiqiladi. 2. MATERIALLAR VA USULLAR Tizimning qidiruv mexanizmi foydalanuvchi kiritgan so‘rovni (matnli iborani yoki so‘zlar ketma-ketligini) tegishli N-gramlar bilan solishtirib, mos natijalarni chiqaradi. Dastlabki variantda qidiruv moduli har bir so‘rov uchun ma’lumotlar bazasida to‘liq qidiruv amalga oshirishi sabab sezilarli vaqt olishi mumkin edi (ayniqsa, N-gramlar soni millionlar bilan ifodalanganda). Shu bois indekslash va keshlash orqali qidiruv jarayoni optimallashtirildi. 1. Indekslash. Ma’lumotlar bazasida N-gramlar jadvali uchun maxsus indekslar yaratilib, qidiruv so‘rovlarining bajarilish vaqti keskin qisqartirildi. Xususan, N-gram matni ustuniga indeks qo‘yilgach, SQL Server so‘rovni to‘g‘ridan-to‘g‘ri indeks orqali bajaradi – ya’ni, jadvalni to‘liq skaner qilish o‘rniga indeksdan tegishli kalit bo‘yicha kerakli yozuvlarni tezda topadi. Natijada so‘rovlarning o‘rtacha bajarilish vaqti 4–5 barobar tezlashdi (masalan, indekslashdan oldin 1000 ms bo‘lgan qidiruv endilikda 200 ms atrofida bajarilmoqda). Indekslash jarayonida qo‘shimcha disk joyi ishlatiladi va ma’lumotlarni kiritish/yangilash biroz sekinlashishi mumkin, lekin bizning statik N-gram bazamiz uchun bu muammo emas. Muhimi, indekslar qo‘llash qidiruv samaradorligini sezilarli oshirdi – oddiy SQL so‘rovining indekslangan holda bajarilishi 150% gacha tezroq bo‘lishi mumkinligi umumiy tajribada qayd etilgan [1]. Shu tariqa, indekslash usuli bizning tizimimizda qidiruv tezligini sezilarli darajada oshirishga xizmat qildi. 2. Keshlash. Qidiruv modulida tez-tez takrorlanadigan so‘rovlar uchun kesh xotira joriy etildi. Bu degani, agar foydalanuvchi bir xil so‘rovni bir necha bor bersa yoki bir-biriga juda o‘xshash so‘rovlar kiritilsa, birinchi bajarilgan so‘rov natijasi operativ xotirada saqlanadi va keyingi safar to‘g‘ridan-to‘g‘ri shu natija qaytariladi. Natijada, ikkinchi va undan keyingi marta aynan o‘sha so‘rov uchun javob vaqti deyarli darhol (bir necha millisekund ichida) hosil bo‘ladi, chunki ma’lumotlar bazasiga murojaat qilinmaydi [2]. Keshlash usuli ayniqsa bir nechta foydalanuvchi bir xil yoki o‘xshash so‘rovlarni kiritganda tizimga tushadigan takroriy yukni kamaytiradi. Bizning tizimda kesh joriy qilinishidan oldin har bir so‘rovga nisbatan ma’lumotlar bazasiga murojaat qilinar edi, hozir esa, masalan, bir so‘rov birinchi marta 250 msda bajarilsa, xuddi shu so‘rov ikkinchi marta <5–10 msda keshdan olinadi. Bu 50 barobar tezkorlik degani (faqat o‘qish operatsiyasini bajarish orqali). Bunday yuqori tezlikka erishishda, albatta, kesh xotirada ma’lumot saqlanishi uchun qo‘shimcha xotira sarfi talab etiladi – bizning holatda mashina xotirasining 500 MB qismi kesh uchun ajratildi. Keshdan foydalanish natijasida ma’lumotlarning yangiligi masalasi ham nazardan chetda qolmadi: N-gram bazasi statik bo‘lgani sababli, natijalar eskirib qolishi xavfi yo‘q (agarda bazaga yangi ma’lumot qo‘shilganda esa kesh yangilanadigan qilib sozlangan). Umuman olganda, keshlash qidiruv modulining takroriy so‘rovlardagi samaradorligini juda yuqori darajada oshirdi – tizimning bir nechta foydalanuvchiga bir vaqtda xizmat ko‘rsatish imkoniyatini kengaytirdi. 3. Asinxron ishlov berish. Qidiruv moduli foydalanuvchiga xizmat ko‘rsatishda maksimal interaktivlikni ta’minlash uchun asinxron dasturlash modelidan foydalandik. Ya’ni, og‘irroq so‘rovlar bajarilayotgan paytda ham web-interfeys "muzlab qolmasligi" uchun qidiruv amaliyoti asinxron rejimda amalga oshiriladi. Bu degani, foydalanuvchi so‘rovni jo‘natgach, server tomonida alohida oqim (yoki ishchi jarayon) ushbu so‘rovni indekslar va ma’lumotlar bazasi yordamida qayta ishlaydi, foydalanuvchi esa shu zahoti interfeysdan javob olayotgandek 161

163-стр.

taassurotga ega bo‘ladi (masalan, "Natija tayyorlanmoqda..." degan xabar). Asinxron ishlov berish javob vaqtini sub’ektiv ravishda yaxshilaydi – foydalanuvchi real bajarayotgan operatsiya vaqtini kutmasdan, darhol tizim reaksiyasini ko‘radi. Shuningdek, bu usul serverga bir paytning o‘zida bir nechta mustaqil qidiruv so‘rovlarini parallel ravishda bajarishga imkon yaratadi. Sinxron ishlovda, aksincha, har bir so‘rov navbatma-navbat bajariladi va bir-birini kutadi edi. Asinxron yondashuv natijasida bizning tizim bir vaqtda bir nechta oqimda so‘rovlarni bajarib, ko‘p foydalanuvchilik rejimda yuqori o‘tkazuvchanlikka erishdi. O‘tkazuvchanlik bo‘yicha o‘tkazilgan tajribalar shuni ko‘rsatdiki, asinxron rejimda server bir sekundda bajaradigan so‘rovlar soni sinxron rejimdagiga nisbatan bir necha barobar yuqori bo‘ldi (masalan, sinxron rejimda 1 sek. da 10 ta so‘rov, asinxronda esa 30–40 ta so‘rovni yakunlashga erishildi). Bu ko‘rsatkichlar, albatta, tizimning joriy apparat platformasiga bog‘liq, ammo dasturiy optimizatsiya sifatida asinxron model sezilarli yuklamani taqsimlash afzalligini ta’minladi. 1-jadvaldan ko‘rinadiki, indekslash tufayli qidiruv so‘rovining o‘rtacha bajarilish vaqti qariyb 5 baravar tezlashgan (980 ms dan 210 ms gacha). Indekslash jarayonida CPU yuklanishi bir so‘rov uchun biroz oshgan bo‘lsa-da (15%dan 20% gacha), umumiy vaqt qisqargani bois bu oshish sezilmaydi – protsessor qisqa fursatda ishni tugatadi. Natija aniqligi esa indekslashdan avval ham, keyin ham bir xil (aniqlikka ta’sir qilmaydi). Keshlash ta’sirini alohida ko‘rsatish maqsadida, indekslash qo‘llangan holatda bir xil so‘rovni takror bajarishdagi farqni ham kuzatdik: birinchi so‘rov 210 ms, ikkinchi marta aynan shu so‘rov kesh tufayli 5 ms (javob vaqti) ni tashkil etdi. Bu 40 barobar farq bo‘lib, keshlashning afzalligi yaqqol namoyon bo‘ladi. Demak, qidiruv modulini optimallashtirish natijasida foydalanuvchiga ko‘rsatiladigan xizmat sifati – tezkorlik nuqtayi nazaridan – sezilarli darajada oshirildi. Yuqoridagi optimallashtirishlar natijasida qidiruv modulining ishlash ko‘rsatkichlari ancha yaxshilandi. Quyida jadvalda qidiruv moduli uchun indekslashdan oldin va keyin, shuningdek, keshlash joriy etilgandan keyin o‘lchangan ba’zi parametrlari keltirilgan: 1-jadval. Qidiruv moduli uchun optimallashtirish natijalari (indekslash va keshlash ta’siri) Indekslashdan Ko‘rsatkich Indekslashdan keiun avval O‘rtacha so‘rov bajarish vaqti 210 ms (≈4.7× 980 ms (ms) tezroq) 95-foizli kvantil javob vaqti 1500+ ms 300 ms dan kam (ms) CPU yuklanishi (1 so‘rovda) 15% 20% (muddat qisqa) 120 MB (indekslar Xotira sarfi (foydalaniluvchi) 100 MB uchun) Natija aniqligi 100% 100% (o‘zgarmagan) N-gram generatsiya moduli dastlabki matnlar korpusini qayta ishlash orqali N uzunlikdagi so‘zlar ketma-ketliklarini (unigram, bigram, trigram va hokazo) hosil qiluvchi komponentdir. Bizning tizim uchun ushbu modul asosiy ma’lumotlarni oldindan tayyorlash vazifasini bajaradi: u katta hajmdagi o‘zbekcha matnlardan barcha mumkin bo‘lgan N-gramlarni ajratib, ularning chastota statistikasi bilan birgalikda ma’lumotlar bazasiga yozadi. Bunday yondashuv 162

164-стр.

(ya’ni N-gramlarni oldindan generatsiya qilib qo‘yish) “joyni ko‘proq, lekin vaqtni tejash” tamoyiliga asoslanadi – ya’ni, ko‘p disk xotira sarfi evaziga qidiruv vaqtida hisoblashni deyarli nolga tushirish mumkin bo‘ladi [3]. Haqiqatan ham, agar biz har bir qidiruv so‘roviga javoban real vaqtda N-gramlarni korpusdan generatsiya qilganimizda edi, tizimning javob vaqti soniyalar, hatto daqiqalar bilan o‘lchanishi mumkin bo‘lardi. Oldindan generatsiya qilingan N-gramlar bazasi esa so‘rovga deyarli tayyor javobni tezkor chiqarish imkonini beradi. Shu bilan birga, N-gramlarni oldindan hisoblashning o‘zi ham oson vazifa emas – katta hajmdagi (millionlab so‘zlardan iborat) korpusdan barcha bigram va trigramlarni ajratish juda katta hisoblash resurslarini talab qiladi. Masalan, 15 million gapdan iborat korpusda potensial bigram kombinatsiyalari soni juda kattadir (bizning korpusimizda o‘n millionlab unikal bigramma hosil bo‘ldi). Bu jarayonni iloji boricha optimallashtirish uchun quyidagi yondashuvlar qo‘llandi: 1. Parallel hisoblash. N-gram generatsiyasini ko‘p oqimli qilib tashkillashtirdik. Ya’ni, korpusni bir necha qismga ajratib, har bir qismni alohida ip (thread) orqali parallelda qayta ishlash yo‘lga qo‘yildi. Buning natijasida ko‘p yadroli protsessor resurslaridan to‘liq foydalanildi. Bir oqimda ketma-ket bajariladigan jarayon, masalan, 80 soniya talab qilgan bo‘lsa, 4 ta parallel oqimda bajarilganda bu vaqt 25 soniyagacha qisqardi (4 yadrolik CPU misolida). Nazariy jihatdan N ta oqim ishlatilsa, vaqtni N martagacha qisqartirish mumkin; amalda esa oqimlar o‘rtasida resurslar taqsimoti va o‘zaro bog‘liqlik tufayli chiziqli tezlashuvdan bir oz pastroq ko‘rsatkichga erishiladi. Buni bizning tajribamiz ham tasdiqladi: 8 ta parallel oqimga ega konfiguratsiyada N-gram generatsiyasi 1 oqimlik holatga nisbatan 5.3 baravar tezroq yakunlandi (80 s. o‘rniga 15 s. atrofida). Quyidagi rasmda parallel hisoblash natijasida N-gram hosil qilish vaqtining kamayishi grafik tarzda aks ettirilgan: 2. 1-rasm. N-gram generatsiya vaqtining parallel jarayonlar soniga bog‘liqligi grafigi 1, 2, 4 va 8 ta parallel oqim (thread) uchun 100 MB hajmdagi korpusdan N-gram hosil qilish vaqti (soniya) tasvirlangan. Ko‘rinib turibdiki, oqimlar soni oshishi bilan jarayon vaqti keskin kamaymoqda; masalan, 1 oqimda 80 s bo‘lgan generatsiya vaqti 8 ta oqimda 15 s gacha qisqargan. Biroq, 8 oqim 1 oqimdan to‘liq 8 barobar tez emas – samaradorlikka qo‘shimcha yuklar ta’siri bilan 5–6 barobar tezlashuv kuzatildi. Parallelizatsiya tufayli N-gram generatsiya moduli bir nechta protsessor yadro yoki hatto bir nechta serverlarni jalb qilgan holda ulkan korpuslarni ham maqbul vaqt ichida qayta ishlay olishi ta’minlandi. Bu, ayniqsa, korpus hajmi oshgan sari muhim ahamiyatga ega bo‘ladi: agar bitta jarayon hisoblash vaqti ekspenensial o‘sadigan bo‘lsa, parallel hisoblash orqali uni ancha mo‘tadil o‘sishda ushlab turadi (har bir qo‘shimcha oqim bilan deyarli bo‘linuvchi tarzda) [4]. 163

165-стр.

3. N-gram darajasini cheklash. Bizning tizimda maksimal N qiymati sifatida trigram (N=3) bilan cheklandik, ya’ni to‘rtlik va undan uzun N-gramlar generatsiya qilinmadi. Buning sababi, trigramdan kattaroq N-gramlar ma’lumotlar bazasi hajmini va hisoblash yukini keskin oshirib yuboradi, lekin qidiruv natijalariga nisbatan aniqlikning sezilarli oshishini ta’minlamasligi kutiladi. Ilmiy manbalarda ham qayd etilishicha, trigram modellaridan to‘rtlik (4-gram) modellariga o‘tishda natijalar unchalik yaxshilanmaydi, lekin hisoblash xarajatlari juda oshadi. Xususan, chet el olimlarining ko‘p tilli tadqiqotlarida bigram+trigram “aralash” model trigram modelga nisbatan 20% ga tezroq va hajm jihatdan ixchamroq bo‘lgani qayd etilgan. Shu bois biz optimal yechim sifatida 2 va 3 lik N-gramlar bilan ishlashni tanladik – ya’ni, korpusdan barcha unigrama, bigrama va trigramlar ajratib olindi, to‘rtliklar esa hisobga olinmadi. Natijada, ma’lumotlar bazasida saqlanadigan N-gramlar soni va hajmi ancha ixchamlashdi, bu esa qidiruv tezligiga ham ijobiy ta’sir ko‘rsatadi. 4. Algoritmlarni optimallashtirish. N-gramlarni generatsiya qilish uchun qo‘llaniladigan dasturiy algoritmlar ham takomillashtirildi. Masalan, matnni tokenlarga ajratish va ular orasidan N uzunlikdagi kombinatsiyalarni shakllantirish jarayonida effektiv usullar tanlandi. Dastlab oddiy sikllar yordamida barcha bigrammalarni topish amalga oshirilgan edi – bu usul O(n2) murakkablikka ega bo‘lib, juda sekin ishlaydi. Biz uni yaxshilash uchun slid-ing window (siljiydigan oynacha) usulini qo‘lladik: matn bo‘ylab bitta siklda yurib, har bir qadamda yangi bigramma/trigram hosil qilinadi. Bu usul algoritmik murakkablikni kamaytirib, amaliy ishlash tezligini oshirdi. Shuningdek, generatsiya davomida ortiqcha ma’lumotlarni chiqarib yubormaslik uchun filtrlar joriy qilindi – masalan, faqat alifbo harflari va probel belgilari qoldirilib, qolgan keraksiz belgilar (raqamlar, punktuatsiya va hk) oldindan filtrlandi. Bu orqali N-gram hosil qilishda nozarur kombinatsiyalar soni kamaydi. 5. Asinxron va paketli (batch) qayta ishlash. Korpusdan N-gramlarni ajratish jarayoni foydalanuvchi uchun shaffof ravishda, asinxron tartibda fon rejimida bajarildi. Ya’ni, dastlabki korpusdan N-gramlar generatsiya qilinayotgan paytda foydalanuvchiga tizim ishlamay qolmaydi – bu jarayon server tomonida fon vazifasi sifatida bajariladi. Natijalar tayyor bo‘lgach esa, ular umumiy bazaga yoziladi. Shuningdek, juda katta korpusni bosqichma-bosqich (masalan, bo‘laklarga ajratib) qayta ishlash usuli qo‘llandi. Bir martada butun 15 million gaplani birdaniga qayta ishlash o‘rniga, uni masalan, 1 million gapdan iborat 15 ta paketchalarga bo‘lib, har bir paket bo‘yicha alohida generatsiya bajarildi va natijalar bazaga qo‘shib borildi. Bunda har bir paketdan keyin qisqa pauza berish yoki resurslarni tozalash imkoni bo‘ldi, bu esa tizim xotirasining haddan ziyod to‘lib ketishini oldini oldi. Natijada, ulkan korpus ham bosqichma-bosqich muvaffaqiyatli qayta ishlanib, barcha N-gramlar to‘liq generatsiya qilindi. 6. 3.NATIJALAR Yuqoridagi choralar natijasida N-gram generatsiya modulining ishlash samaradorligi ancha oshdi. Dastlab, 15 mln. gapdan iborat korpusimizdan bigramma va trigramlarni ajratish bir necha soat vaqt olishi kutilgan edi. Optimizatsiyalardan so‘ng esa bu jarayonni yarmidan ko‘prog‘iga (taxminan 2.1 soatdan 0.8 soatga) qisqartirishga erishildi. Ayniqsa, parallelizatsiya va algoritmik optimizatsiya kombinatsiyasi katta foyda berdi – bu ikki usul alohida qo‘llangandagi yutuqlar birlashib, umumiy hisobda generatsiya tezligini 3 baravarga oshirdi. 2-jadval. 164

166-стр.

Ko‘rsatkich 1 mln so‘zdan N-gram hosil qilish vaqti N-gram generatsiya modulini optimallashtirish natijalari Dastlabki Optimizatsiyadan so‘ng (optimizasyasiz) 45 soniya 12 soniya (4 oqim, ~3.8× tezroq) CPU umumiy yuklanishi 15% (1 ta yadro band) 85% (8 ta yadro to‘liq band) Foydalanilgan xotira hajmi 2.1 GB Hosil qilingan N-gramlar soni Hisoblash aniqligi 100% (to‘liq) 100% 2.5 GB (qo‘shimcha kechici strukturalar) 100% (o‘zgarmagan) 100% (o‘zgarmagan) 4. XULOSA O‘tkazilgan tajribalar natijalari N-gram generatsiya modulini optimallashtirish samaradorligini yaqqol ko‘rsatdi. Xususan, parallel qayta ishlash texnologiyasini qo‘llash orqali 1 million so‘zdan iborat korpus uchun N-gram hosil qilish vaqti 45 soniyadan 12 soniyagacha qisqartirildi. Bu esa modul ishlash tezligining qariyb 3,8 baravar oshganligini anglatadi. Shu bilan birga, protsessor resurslaridan foydalanish samaradorligi sezilarli darajada yaxshilanib, barcha yadro imkoniyatlaridan faol foydalanishga erishildi [5]. Umuman olganda, N-gram generatsiya modulini optimallashtirish katta hajmdagi matnlarni qayta ishlashda yuqori samaradorlikka erishish imkonini beradi. Tadqiqot natijalari parallel hisoblash usullaridan foydalanish N-gram modellari asosidagi NLP tizimlarining tezkorligi va unumdorligini oshirishda muhim ahamiyatga ega ekanligini ko‘rsatdi. Kelgusida ushbu yondashuvni taqsimlangan hisoblash tizimlari va yanada katta hajmdagi matn korpuslariga tatbiq etish orqali samaradorlikni yanada oshirish mumkin. FOYDALANILGAN ADABIYOTLAR: 1. https://xebia.com/blog/improving-search-query-with-lucene/ 2. https://www.elastic.co/blog/elasticsearch-caching-deep-dive-boosting-query-speed-onecache-at-a-time 3. https://groups.google.com/g/clojure/c/YtuQCrd8LZ8 4. Chew, Y.C.; Mikami, Y.; Marasinghe, C.A.; Nandasara, S.T. Optimizing N-gram order of an N-gram based language identification algorithm for 63 written languages. International Journal on Advances in ICT for Emerging Regions, 2009, 2(2). 5. Elov, B.B.; Tojieva, G.N.; Tokhtaeva, M.X.; Jurayeva, N.J.; Primova, M.H. N-gram language model for Uzbek texts. International Conference on Trends in Sustainable Computing and Machine Intelligence (ICTSM 2025), Bangkok, Thailand, 19–20 September 2025; pp. 346– 357. https://link.springer.com/chapter/10.1007/978-3-032-13177-5_27 165

PDF-документ

Лицензии университета

Предварительный просмотр лицензии