NLP DA SAVOL JAVOB TIZIMLARINI YARATISH TURLARI VA BOSQICHLARI Sharipov Sardor Xolnazarovich
magistr, UMFT,Toshkent
umft@gmail.com
Annotatsiya. Ushbu maqola sun'iy intellekt va tilshunoslikning kompyuterlar va inson (tabiiy) tili o‘rtasidagi o‘zaro ta'sirga oid bo‘lib, savol – javob tizimini yaratishda modelni tanlash, o‘rgatish, sinash, takomillashtirish va eng ohirida amaliyotda qo’llashni o‘rgatish mumkin.
Abstract. This article is about the interaction between computers and human (natural) language in artificial intelligence and linguistics, and how to choose, train, test, improve, and finally put it into practice when building a question-answer system can be taught. Kalit so‘zlar:Model, internet, savol-javob, ma’lumot to‘plash, qo‘ng‘iroq, tizimini yaratish, tabiiy tilni qayta ishlash. Keywords: Model, internet, question and answer, data collection, call, system creation, natural Language Processing. Hozirgi kunda insoniyat hayotida turmush darajasini yengillashtirish uchun axborot texnologiyalaridan foydalanish jadal suratlarda rivojlanib bormoqda. Albatta bu yerda asosiy ahamiyatga ega bo‘lgan sohalardan biri bu sun’iy intellektdir. Suniiy intellektning rivojlanib borayotgan sohalaridan biri bu Natural Language Processing (NLP)dir.
NLP - bu kompyuter fanlari, sun'iy intellekt va tilshunoslikning kompyuterlar va inson (tabiiy) tili o‘rtasidagi o‘zaro ta'sirga oid bo‘limi. Tabiiy tillar - bu odamlar gapiradigan tillar [1].
NLP - bu sun'iy intellekt va tilshunoslik birlashmasi bo‘lib, u kompyuterlarga inson tilida yozilgan so‘zlarni yoki so‘zlarni tushunishga bag‘ishlangan [2].
Tabiiy tilni qayta ishlash vazifalari ham o‘z o‘rnida ko‘plab qismlarga ajratiladi, masalan: savollarga javob berish, o‘qishni tushunish kabi amallar.
Savol-javob (Question Answering - QA) tizimlarini yaratish murakkab masalalardan biridir. Masalaning qo‘yilishiga qarab QA tizimlari turli usullarda yaratiladi. Masalan, birorta tashkilot uchun call markazlariga eng ko‘p uchraydigan savollarga javob beruvchi tizim, umumiy savollarga javob beruvchi tizim, berilgan savolga xa yoki yo‘q deb javob beruvchi tizim va boshqalar. Bu esa o‘z navbatida har bir tanlangan obyekt uchun alohida yondashuvni talab qiladi.
Ushbu maqolada NLP sohasidagi QA tizimi turlari, QA tizimini yaratish bosqichlari keltirilib o‘tiladi.
Savol javob tizimini yaratish usullari NLPning yo‘nalishlaridan biri boʻlib, odamlar tomonidan berilgan savollarga avtomatik javob beradigan tizimlarni qurishdir [3]. QA tizimining umumiy ko‘rinishini 1-rasmda keltirilgan.
1-rasm. Savol-javob(QA) tizimining tuzilishi.
Yagona domen tizimlari ma'lum bir sohadagi savollarga javob berish uchun qo‘llaniladigan tizimlardir. Ushbu tizimlar bitta tor mutaxassislik sohasiga e'tibor qaratish uchun mo‘ljallangan.
Ochiq domen tizimlari yagona domen QA tizimlarining tab’iy kengaytmasidir. Faqat bitta tor mutaxassislik sohasiga e'tibor qaratish o‘rniga ular umumiy savollarga javob berishga mo‘ljallangan.
Ha/Yo‘q javoblar bu QA tizimining eng oddiy namunasidir. Bu asosan savol va kontekst ma'lumotlariga asoslangan matnni tasniflash bilan bog‘liq.
Ekstraktiv savolga javob yangi tabiiy tilda javob yaratish o‘rniga, tizim shunchaki javobni o‘z ichiga olgan tahlil qilingan matnning bir qismini topadi va qaytaradi. Ushbu turdagi tizimlar matn yaratishdagi xatolarga qarshi mustahkamdir. Boshqa tomondan, agar javob matnda to‘g‘ridan-to‘g‘ri ko‘rsatilmagan bo‘lsa, lekin satrlar orasida nazarda tutilgan bo‘lsa, javobni izlab topishi mumkin [4].
Generativ savolga javob berish QA tizimining eng murakkab turi bo‘lib, u har bir savolga tabiiy tilda yangi javoblarni yaratadi. Lekin, bu ekstraktiv yondashuvga nisbatan ancha ko‘proq hisoblash amallarini va vaqtni talab qiladi.
Savol-javob tizimini yaratish bosqichlari. Savol-javob tizimini yaratish bosqichlari qo‘yidagi 2-rasmda keltirilgan ketma-ketlik asosida olib boriladi.
2-rasm. Savol-javob tizimini yaratish bosqichlari
Ma'lumot to‘plash bosqichi eng murakkab bosqichlardan hisoblanib, ma’lumotlarni yig‘ishni o‘z ichiga oladi. Buning asosiy ma’lumotlar manbai - muayyan amaliy masalani hal qilish uchun zarur bo‘lgan ma’lumotlarni o‘z ichiga olgan obyekt tushuniladi.
Ma’lumotlarni to‘plash matn yoki hujjatlar shaklida katta hajmdagi ma'lumotlarni to‘plash bilan boshlanadi. Bu ma'lumotlar kitoblar, internet saytlardan, maqolalar, tez-tez so‘raladigan savollar va boshqalar kabi turli manbalardan bo‘lishi mumkin. Hozirgi paytda savol-javob tizimini yaratish uchun ko‘plab tillarda The Stanford Question Answering Dataset (SQuAD) kabi ma’lumotlar bazalari mavjud, ammo afsuski o‘zbek tilidagi ma’lumotlar yetarli darajada emas.
Ma'lumotlarga dastlabki ishlov berish bosqichida yaratilayotgan QA tizimining aniqlilik darajasini oshirish maqsadida to‘plangan matnlar ichida matn ma’nosiga ta’sir qilmaydigan ma'lumotlar tozalanadi va oldindan qayta ishlanadi. Bular stop words (to‘xtatuvchi so‘zlar), shovqin va nomuvofiqliklar (ba’zi bir belgilar qo‘shilib ketishi, so‘zlardagi xatoliklar) bo‘lishi mumkin.
Ma'lumotlarni taqdim etish bosqichida N-gramm, termin chastotalari yoki TF-IDF (termin chastotaga teskari hujjat chastotasi manosini anglatadi yoki ma’lumotlar to‘plamidagi korpus deb ham ataladi) kabi usullardan foydalangan holda matnni raqamli vektorlarga aylantirish kabi amallar bajariladi.
Modelni tanlash bosqichida neyron tarmoq qoidalariga asoslangan tizim yoki ma'lumot qidirish tizimi kabi vazifa uchun mos model tanlanadi.
Modelni o‘rgatish bosqichida savollar va javoblar o‘rtasidagi munosabatlarni o‘rganish uchun tanlangan modelni oldindan qayta ishlangan ma'lumotlarga o‘rgatiladi.
Sinov va baholash QA tizimining aniqlik darajasini baholash uchun modelni alohida ma'lumotlar to‘plamida qanday aniqlikda ishlayotganligi sinab ko‘riladi.
Modelni takomillashtirish bosqichida baholash natijalariga asoslanib, arxitektura, giperparametrlar yoki o‘qitish jarayoniga o‘zgartirishlar kiritish orqali model aniqlanadi.
Amaliyotga tadbiq etish bosqichi modelni foydalanuvchilarga taqdim etish uchun veb-sayt yoki mobil ilova kabi muhitda joylashtiriladi [5].
Bu umumiy sxema bo‘lib, amalga oshirishning aniq tafsilotlari vazifaning murakkabligi, ma'lumotlar hajmiga qarab o‘zgaradi.
Olib borilgan tajribada biz savol-javob tizimini yaratish obyekti sifatida Samarqand shahar davlat xizmatlari markazi (SSHDXM)ni tanladik. SSHDXMda xizmat ko‘rsatuvchi operatorlar bir vaqtning o‘zida SSHDXMga tashrif buyurgan mijozlarga xizmat ko‘rsatish bilan birga qo‘ng‘iroqlarga ham javob beradi. Qo‘ng‘iroqlarning katta qismi mazmun jihatdan o‘xshash bo‘lib, operatorlar bu xildagi savollarga javoblari takrorlanadi. Savol-javob tizimini yaratish maqsadida shunday ko‘p takrorlanadigan qismiga avtomatik javob berish tizimini yaratishni maqsad qilib oldik va QA tizimini yaratishning yagona domen tizimlari usulini tanlab oldik.
Savol javob tizimini yaratishda quyidagi bosqichlarni amalga oshirdik.
Ma'lumot to‘plash bosqichida SSHDXM da so‘raladigan savollar haqida ma’lumotlarni yig‘dik va mantiqiy jihatdan berilgan savollarga o‘xshash savol-javoblarni ham qo‘shimcha yozib oldik. Yig‘ilgan ma’lumotlar asosida PostgreSQL ma’lumotlar bazasini boshqarish tizimi orqali CSV faylda shakllantirib oldik. Natijada eng ko‘p savol beriladigan sohada 2000 ta savol-javob ma’lumotlariga ega bo‘ldik (3-rasm).
3-rasm. Call markazida savol-javob tizimi uchun ma’lumotlardan namuna
Ma'lumotlarga dastlabki ishlov berish bosqichida ma’lumotlarni qo‘lda yozib chiqgan bo‘lsakda ma’lumotlarni yozishda ba’zi xatoliklar uchlashi mumkin. Masalan, qo‘shimcha belgilar qo‘shilib ketgan bo‘lishi mumkin yoki so‘zlarni yozilishda xatoliklar bo‘lishi mumkin. Bu bosqichda biz ham ma’lumotlarni pandas yordamida qayta ishlab oldik (4-rasm).
4-rasm. Ma’lumotlar tozalandagidan keyin
Ma'lumotlarni taqdim etish bosqichida qayta ishlangan ma’lumotlarni raqamli vektorlarga aylantirish kabi amallar bajariladi. Buning uchun N-gramm, TF-IDF, One-Hot encoding kabi usullardan foydalaniladi.
Modelni tanlash bosqichida qo‘yilgan masala uchun mos model tanlanadi. Masalan ma’lumotlarni qidirish yoki neyron tarmoq qoidalariga asoslangan bo‘lishi mumkin.
Modelni o‘rgatish bosqichida tayyor bo‘lgan ma’lumotni tanlangan model yordamida o‘qitiladi. O‘qitilish vaqtida ma’lumotlarni training, validation, test qismlarga ajratib olish va training qismi o‘qitish tafsiya qilinadi.
Sinov va baholash bosqichida ajratib olingan test qismidan foydalanib yaratgan model qanday darajada to‘g‘ri ishlayotganligini aniqlanadi. Aniqlilik darajasini bilish uchun RMSE (root mean square error), MAE (Mean Absolute Error) kabi usullari mavjud.
Modelni takomillashtirish bosqichida qo‘yilgan masalaning yechimining aniqlilik darajasi yetarli darajada bo‘lmasa yoki qo‘shimcha yangilik kiritish kerak bo‘lsa, masalaning yechimi uchun alohida yondashish kerak bo‘ladi.
Amaliyotga tadbiq etish bosqichida model maxsulot ko‘rinishiga keltiriladi. Bu maxsulotlar web-sayt yoki mobil ilova kabi shaklda bo‘lishi mumkin.
Xulosa qilib shuni ta’kidlash mumkinki, NLP sohasidagi savol-javob tizimlarini yaratish uchun oldindan bajariladigan amallar ketma-ketligi rejalashtirib olinadi. Savol-javob tizimlarini yaratishda ma’lumotlarni to‘plash eng dolzarb muammolardan biri hisoblanadi. Yaratilayotgan tizimning ishlash aniqliligiga ham yig‘ilgan ma’lumotlarning sifati ta’sir qiladi. Keyingi bosqichlarda ma'lumotlarga dastlabki ishlov berish, ma'lumotlarni taqdim etish, modelni tanlash, modelni o‘rgatish, sinov va baholash, modelni takomillashtirish va nihoyat joylashtirish amallari bajariladi. Lekin savol-javob tizimini yaratishdagi har bir bosqich uchun individual yechimlarni topish kerak bo‘ladi.