Pythonda tabiiy tillarga ishlov berish kutubxonalari bilan ishlash
![MAVZU: Pythonda tabiiy tillarga ishlov berish kutubxonalari bilan ishlash
MUNDARIJA:
Kirish …………………………………………………………………………….
I.BOB Pythonda tabiiy tillarga NPL ishlov berish kutubxonalari .. ……………..
1.1. Tabiiy tilni qayta ishlash NLP……………………………...……………..
1.2. NLTK - bu Python-da tasniflash……………………………………….....
1.3.Tabiiy tillarni qayta ishlash uchun Python kutubxonalari…………………
II BOB NLP uchun Python-dan foydalaning…………………………………….
2.1. Python kutubxonasi NLTK ……………………………………………….
2.2. Matn uchun tabiiy tilni qayta ishlash asoslari …………………………….
2.3. Pythonda yozilgan mavzularni modellashtirish , o ' xshashlikni qidirish
va tabiiy tilni qayta ishlash uchun kutubxona
…………………………………………..
2.4 Matn uchun NLP asoslari……………………………………………………
III BOB Amaliy qilinga ishlar ………………………………………………………
3.1 Matnni sonli vektor tasvirlarga aylantirish…………………………………
3.2 Pythonda tabiiy tilarga ishlov berish algoritimlari………………………….
3.3 Pythonda tabiiy tillarga bilan ishlash uchun python codlari………………..
Xulosa…………...……………………………………………………………………
Foydalanilgan adabiyotlar ro’yxati……...…………………………………………](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_1.png)
![KIRISH
Insoniyat o'zining rivojlanishi tarixi haqida moddiy quvvat va axborotlarni
o'zlashtirib kelgan. Bu qilish butun bir davrlari shu bosqichning ilg' yoki texnologiya
nomi bilan atalgan. Masalan:"tosh asr” – mexnat quroli yasash uchun toshga berish
texnologiyasini egallash bochqichi, “kitob chop etish asri”-axborotni tarqatishni
yangi usulini o'zlashtirish bosqichi, “elektr asri” - quvvatning yangi turlarini
o'zlashtirish bosqichi shular jumlasidandir.
Informatika axboltaborotlarni EXM yordam tasvirlash, saqlab turish, amalga
oshirishva hisoblanadi ishlov berish usullarini o'rganadigan fandir.
EXMlarni ishlab chiqarish chiqish va undanqidiruv soxasida katta yutuqlarga
erishilgan olim VMGlushkov ta'biri bilan aytsak: yangi kabir keyin texnik jixatdan
tomonidan mamlakatlarda tegishli axborot EXM xotirasida bo'ladi.
XXI asr boshlarida ana shu axborotlardan yuborishni bilmagan kishi, XX asr davom
etish va mahsulotni bilmagan odamga o'xshab qoladi. Bundan kelib chiqqan xolda
“Informatika” fanini o'rganish ikkinchi savodxonlik bilan tengdir. Davom etish
vamahsulotni bilmaganodamga o'xshab qoladi. Bundan kelib chiqqan xolda
“Informatika” fanini o'rganish ikkinchi savodxonlik bilan tengdir.
Tabiiy tilni qayta ishlash (NLP) - bu ma'lumotlar fani va sun'iy intellekt (AI)
yaqinlashuvida joylashgan soha bo'lib, u asoslarga qisqartirilganda - bu mashinalarga
inson lahjalarini tushunish va matndan ma'no chiqarishni o'rgatish bilan bog'liq. Shu
sababli sun'iy intellekt NLP loyihalari uchun muntazam ravishda zarurdir.
Buning sababi nimada, nega ko'p kompaniyalar NLP haqida qayg'uradilar. Asosan,
ushbu yutuqlar ularga keng qamrovli bilim va kelishuvlarni taqdim etishi mumkinligi
sababli, xaridorlar buyum bilan hamkorlik qilishda duch kelishi mumkin bo'lgan til
bilan bog'liq muammolarni hal qiladi.
Tabiiy tilni qayta ishlash 1950-yillarga borib taqaladi. 1950 yilda Alan Turing
" Hisoblash mashinalari va razvedka " nomli maqolani nashr etdi, unda
hozirda Tyuring testi deb ataladigan narsa aql mezoni sifatida taklif qilingan, ammo
o'sha paytda bu sun'iy intellektdan alohida muammo sifatida ifodalanmagan
edi. Taklif etilayotgan test tabiiy tilni avtomatlashtirilgan talqin qilish va yaratishni
o'z ichiga olgan vazifani o'z ichiga oladi.](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_2.png)
![Ramziy NLP (1950-yillar - 1990-yillarning boshi)
Ramziy NLP a sosi Jon Searlning xitoy xonasi tajribasida yaxshi jamlangan:
qoidalar to'plamini (masalan, savollar va mos javoblar bilan xitoycha so'zlashuv
kitobi) hisobga olgan holda, kompyuter tabiiy tilni tushunishga (yoki boshqa NLP
vazifalariga) taqlid qiladi. ushbu qoidalarni o'zi duch keladigan ma'lumotlarga
qo'llash.
1970-yillar : 1970-yillarda ko plab dasturchilar real dunyo ma lumotlariniʻ ʼ
kompyuterda tushunarli ma lumotlarga aylantiruvchi “kontseptual
ʼ ontologiyalar ” ni
yozishni boshladilar . Masalan, MARGIE (Schank, 1975), SAM (Cullingford, 1978),
PAM (Wilensky, 1978), TaleSpin (Meehan , 1976), QALM (Lehnert, 1977), Politics
(Carbonell, 1979) va Plot18 (Lehner18)). Bu vaqt ichida birinchi
ko'plab suhbatdoshlar yozildi (masalan, PARRY ).
1980-yillar : 1980-yillar va 1990-yillarning boshlari NLPdagi ramziy usullarning
gullagan davrini nishonlaydi. Vaqtning asosiy yo'nalishlari qoidalarga asoslangan
tahlil qilish (masalan, generativ grammatikani hisoblash operatsionizatsiyasi
sifatida HPSG ni ishlab chiqish ), morfologiya (masalan, ikki darajali
morfologiya [3]
), semantika (masalan, Lesk algoritmi ), ma'lumotnomalar bo'yicha
tadqiqotlarni o'z ichiga olgan. (masalan, markazlashtirish nazariyasi doirasida ) va
tabiiy tilni tushunishning boshqa sohalari (masalan, ritorik tuzilma
nazariyasida ). Tadqiqotning boshqa yo'nalishlari davom ettirildi,
masalan, Racter va Jabberwacky bilan chatterbotlarni ishlab chiqish. . Muhim voqea
(oxir-oqibat 1990-yillarda statistik burilishga olib keldi) bu davrda miqdoriy
baholashning ortib borayotgan ahamiyati edi.
Statistik NLP (1990-2010 yillar)
1980-yillarga qadar tabiiy tillarni qayta ishlash tizimlarining ko'pchiligi qo'lda
yozilgan qoidalarning murakkab to'plamiga asoslangan edi. 1980-yillarning oxiridan
boshlab, tilni qayta ishlash uchun mashina o'rganish algoritmlarini joriy etish bilan
tabiiy tilni qayta ishlashda inqilob yuz berdi. Bunga hisoblash quvvatining barqaror
o'sishi (qarang. Mur qonuni ) va Xomskiyning tilshunoslik nazariyalari
(masalan , transformatsion grammatika ) hukmronligining asta-sekin kamayishi bilan
bog'liq edi, ularning nazariy asoslari mashinani o'rganish yondashuviga asos
bo'lgan korpus lingvistikasi turini to'xtatdi. tilni qayta ishlashga.
1990-yillar : NLP-da statistik usullar bo'yicha ko'plab dastlabki
muvaffaqiyatlar mashina tarjimasi sohasida , ayniqsa IBM Research
kompaniyasidagi ish tufayli yuzaga keldi. Ushbu tizimlar Kanada
parlamenti va Evropa Ittifoqi tomonidan ishlab chiqarilgan mavjud ko'p
tilli matnli korpusdan foydalanishga muvaffaq bo'ldi. barcha hukumat ishlarini](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_3.png)
![tegishli davlat organlarining barcha rasmiy tillariga tarjima qilishni talab qiluvchi
qonunlar natijasida. Biroq, boshqa tizimlarning aksariyati ushbu tizimlar
tomonidan amalga oshirilgan vazifalar uchun maxsus ishlab chiqilgan korpuslarga
bog'liq edi, bu esa ushbu tizimlar muvaffaqiyatining asosiy cheklovi bo'lgan (va
ko'pincha shunday bo'lib qolmoqda). Natijada, cheklangan miqdordagi
ma'lumotlardan samaraliroq o'rganish usullari bo'yicha ko'plab tadqiqotlar olib
borildi.
2000-yillar : Internetning o'sishi bilan 1990-yillarning o'rtalaridan boshlab,
ko'payib borayotgan xom (annotatsiya qilinmagan) til ma'lumotlari mavjud
bo'ldi. Shunday qilib, tadqiqot nazoratsiz va yarim nazoratli
o'rganish algoritmlariga ko'proq e'tibor qaratmoqda. Bunday algoritmlar kerakli
javoblar bilan qo'lda izohlanmagan ma'lumotlardan yoki izohli va izohsiz
ma'lumotlarning kombinatsiyasidan foydalanishi mumkin. Umuman olganda, bu
vazifa nazorat ostida o'rganishga qaraganda ancha qiyin va odatda ma'lum
miqdordagi kiritilgan ma'lumotlar uchun kamroq aniq natijalar beradi. Biroq, juda
ko'p izohsiz ma'lumotlar mavjud (shu jumladan, boshqa narsalar qatori, World
Wide Webning butun mazmuni ), agar foydalanilgan algoritm amaliy bo'lishi
uchun etarlicha vaqt murakkabligiga ega bo'lsa, bu ko'pincha past natijalarni
qoplaydi.
1.1 TABIIY TILNI QAYTA ISHLASH ( NLP )
Tabiiy tilni qayta ishlash ( NLP ) - tabiiy tilni qayta ishlash. Ushbu bilim sohasi
ma'lumotlar fani va sun'iy intellekt (AI) chorrahasida joylashgan. Hammasi
mashinalarni inson tillarini tushunishga va matndan ma'no chiqarishga
o'rgatishdir. Shuning uchun mashinani o'rganish ko'pincha NLP loyihalarining bir
qismidir.
Nima uchun bugungi kunda ko'plab tashkilotlar NLPga qiziqish
bildirmoqda? Avvalo, chunki bu texnologiyalar ularga qimmatli g'oyalar va
yechimlarning keng doirasini taqdim etishi mumkin. Ular iste'molchilar mahsulot
bilan aloqa qilishda duch kelishi mumkin bo'lgan til muammolarini hal qila oladilar.
Google, Amazon yoki Facebook kabi texnologiya gigantlari ushbu tadqiqot
yo'nalishiga millionlab dollar sarflashmoqda. Ushbu sarmoya ortida o'zlarining
chatbotlari, virtual yordamchilari, tavsiya qiluvchi tizimlari va boshqa mashina
o'rganishga asoslangan yechimlarni kuchaytirish istagi bor.
NLP ilg'or hisoblash ko'nikmalariga tayanganligi sababli, ishlab chiquvchilar mavjud
bo'lgan eng yaxshi vositalarga muhtoj. Ushbu vositalar NLP yondashuvlari va tabiiy
tillar bilan ishlay oladigan xizmatlarni yaratish algoritmlaridan maksimal darajada
foydalanishga yordam berishi kerak.](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_4.png)
![1.2 NATURAL LANGUAGE TOOLKIT (NLTK)
NLTK Python - da tasniflash , stemming , teglash , tahlil qilish va semantik
fikrlash kabi vazifalarni qo ' llab - quvvatlaydigan muhim kutubxonadir . Bu tabiiy tilni
qayta ishlash va mashinani o'rganish uchun asosiy vositangiz. Bugungi kunda u NLP
va mashinani o'rganishni endigina boshlayotgan Python dasturchilari uchun ta'lim
asosi bo'lib xizmat qiladi.
Kutubxona Pensilvaniya universitetida Stiven Bird va Edvard Lauper
tomonidan ishlab chiqilgan. U NLP ning ilg'or tadqiqotlarida muhim rol
o'ynadi. NLTK, boshqa Python kutubxonalari va vositalari bilan bir qatorda, endi
butun dunyo universitetlari tomonidan o'z o'quv dasturlarida qo'llaniladi.
Kutubxona juda ko'p qirrali, ammo (va buni tan olish kerak!) uni tabiiy tilni
qayta ishlash uchun ishlatish qiyin. NLTK juda sekin bo'lishi mumkin va tez
rivojlanayotgan sanoat foydalanish talablariga javob bermaydi . O'rganish egri
chizig'i juda keskin, ammo ishlab chiquvchilar ushbu foydali kitob kabi
resurslardan foydalanishlari mumkin . Unda siz ushbu asboblar to'plami qo'llab-
quvvatlaydigan tilni qayta ishlash vazifalari ortidagi tushunchalar haqida ko'proq
bilib olasiz.
2. Textblo
TextBlob Python-da NLP sayohatini boshlagan ishlab chiquvchilar uchun
majburiydir. NLP ga birinchi kirish uchun ideal. TextBlob yangi boshlanuvchilarga
his-tuyg'ularni tahlil qilish, POS belgilarini belgilash yoki ism iboralarini chiqarish
kabi asosiy NLP vazifalarini o'zlashtirishga yordam beradigan oddiy interfeys bilan
ta'minlaydi.
Python bilan NLPga birinchi qadamlarini qo'ymoqchi bo'lgan har bir kishi
ushbu kutubxonadan foydalanishi kerak deb hisoblaymiz. Prototiplarni loyihalashda
juda foydali. Biroq, u NLTK ning asosiy kamchiliklarini ham meros qilib oldi. Ishlab
chiqarishda NLP Python-dan foydalanish talablariga duch kelgan ishlab
chiquvchilarga samarali yordam berish uchun ushbu kutubxona juda sekin.
3. Asosiy NLP
Ushbu kutubxona Stenford universitetida ishlab chiqilgan va Java tilida
yozilgan. Biroq, u ko'plab tillar, jumladan Python uchun o'ramlar bilan birga keladi,
bu esa Python-da tabiiy tilni qayta ishlashda o'zini sinab ko'rmoqchi bo'lgan ishlab
chiquvchilar uchun foydali bo'ladi . CoreNLP ning eng katta foydasi
nimada ? Kutubxona haqiqatan ham tez va mahsulot ishlab chiqish muhitida yaxshi
ishlaydi. Bundan tashqari, CoreNLP ning ba'zi komponentlari NLTK bilan
birlashtirilishi mumkin, bu muqarrar ravishda ikkinchisining samaradorligini
oshiradi.
4. Gensim](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_5.png)
![Gensim Python kutubxonasi bo ʻ lib , u vektor fazoviy modellashtirish va
mavzuni modellashtirish vositalari orqali ikki hujjat o ʻ rtasidagi semantik
o ʻ xshashlikni aniqlashga ixtisoslashgan . U katta matn massivlarini samarali
ma'lumotlar oqimi va qo'shimcha algoritmlarga ega bo'lishi mumkin. Bu faqat
ommaviy va xotirada qayta ishlashga qaratilgan boshqa paketlar haqida aytishimiz
mumkin bo'lgan narsadan ko'proq. Bizga ushbu kutubxona yoqadigan narsa uning
xotiradan foydalanishni optimallashtirish va qayta ishlash tezligidir . Bularning
barchasiga boshqa Python kutubxonasi NumPy yord amida erishiladi. Ushbu
vositaning kosmik vektor modellash imkoniyatlari ham yuqori darajada.
5.spaCy
spaCy - is hlab chiqarish uchun mo'ljallangan nisbatan yosh
kutubxona. Shuning uchun u NLTK kabi boshqa Python NLP kutubxonalariga
qaraganda ancha qulayroq. spaCy bugungi kunda bozorda eng tezkor tahlilchini taklif
qiladi. Bundan tashqari, asboblar to'plami Cython-da yozilganligi sababli, u ham juda
tez va samarali. Ammo hech qanday vosita mukammal emas. Biz hozirgacha ko'rib
chiqqan kutubxonalar bilan solishtirganda, spaCy eng kam tilni (etti) qo'llab-
quvvatlaydi. Biroq, mashinani o'rganish, NLP va spaCy-ning asosiy kutubxona
sifatida tobora ommalashib borayotgani ushbu vosita tez orada ko'proq dasturlash
tillarini qo'llab-quvvatlashi mumkinligini anglatadi.
6. Poliglot
Quyidagi kutubxona unchalik mashhur emas, lekin u bizning sevimli
kutubxonalarimizdan biridir, chunki u keng tahlil va ta'sirchan tilni qamrab
oladi. NumPy tufayli u ham juda tez. Poliglotdan fo ydalanish spaCy ga
o'xshaydi. Bu juda samarali, sodda va asosan spaCy tomonidan qo'llab-
quvvatlanmaydigan tillar bilan bog'liq loyihalar uchun ajoyib imkoniyat. Kutubxona
boshqalardan ajralib turadi, chunki u quvurli mexanizmlar orqali buyruq satrida
maxsus buyruqdan foydalanishni talab qiladi. Albatta sinab ko'rishga arziydi.
7. Scikit-
Ushbu NLP kutubxonasidan foydalanish oson. U ishlab chiquvchilarga
mashinani o'rganish modellarini yaratish uchun keng ko'lamli algoritmlarni taqdim
etadi. Uning funksionalligi matnni tasniflash muammolarini hal qilish uchun
mo'ljallangan ob'ektlarni yaratish uchun "so'zlar sumkasi" usulidan foydalanish
imkonini beradi (so'zlar sumkasi modeli ). Ushbu kutubxonaning kuchi intuitiv sinf
usullaridir. Shuningdek, scikit-learn dasturchilarga undan maksimal darajada
foydalanishga yordam beradigan ajoyib hujjatlarga ega.
Biroq, kutubxona matnni qayta ishlash uchun neyron tarmoqlardan
foydalanmaydi. Shunday qilib, agar siz matn korpusingiz uchun POS belgilari kabi
ilg'or dastlabki ishlov berish vazifalarini bajarishni istasangiz, boshqa NLP
kutubxonalaridan foydalanganingiz ma'qul, keyin modellaringizni yaratish uchun
scikit-learn-ga qaytgan ma'qul.](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_6.png)
![8 Naqsh
Python dasturchilari tomonidan tabiiy tillar bilan ishlash uchun
foydalaniladigan NLP kutubxonalari orasida yana bir marvarid. Pattern nutqning bir
qismini teglash , hissiyotlarni tahlil qilish, vektor bo'shliqlari, modellashtirish
(SVM), tasniflash, klasterlash, n-gramm qidiruvi va WordNet uchun vositalarni
taqdim etadi. Siz DOM tahlilchisi, veb-brauzer va Twitter yoki Facebook API kabi
foydali API-lardan foydalanishingiz mumkin. Biroq, bu vosita aslida veb-konchi
bo'lib, boshqa tabiiy tillarni qayta ishlash vazifalari uchun etarli bo'lmasligi mumkin.
II BOB NLP PYTHONDA FOYDALANISH
Ilgari tabiiy tillarni qayta ishlash loyihalarida faqat mutaxassislar ishtirok etishi
mumkin edi. Bunday ish matematika, mashinani o'rganish va tilshunoslik bo'yicha
mukammal bilimlarni talab qildi. Endi ishlab chiquvchilar matnni oldindan qayta
ishlashni soddalashtiradigan tayyor vositalardan foydalanishlari mumkin. Bu ularga
mashinani o'rganish modellarini yaratishga e'tibor qaratish imkonini beradi.
NLP muammolarini hal qilish uchun ko'plab kutubxonalar yaratilgan. Keyinchalik,
biz yillar davomida mijozlarimizga sifatli loyihalarni yetkazib berishga yordam
bergan 8 ta ajoyib Python tabiiy tilni qayta ishlash kutubxonalarini baham ko'ramiz.
Nima uchun tabiiy tilni qayta ishlash (NLP) uchun Python dan foydalanish kerak
Python-ning ko'pgina xususiyatlari NLP loyihasi uchun dasturlash tilini
tanlashda, ayniqsa tabiiy tilni qayta ishlash haqida gap ketganda, uni juda jozibali
tanlovga aylantiradi. Python tilining bunday ajoyib xususiyatlariga, birinchi navbatda,
tilning sodda sintaksisi va shaffof semantikasi kiradi. Bundan tashqari, ishlab
chiquvchilar mashinani o'rganish kabi usullar uchun foydali bo'lgan boshqa tillar va
vositalar bilan integratsiya uchun ajoyib yordamdan bahramand bo'lishlari mumkin.
Ammo bu universal tilda yana bir narsa borki, bu uni tabiiy tillarni qayta ishlash
uchun ajoyib texnologiya qiladi. Python ishlab chiquvchilarga NLP bilan bog'liq
vazifalar uchun asboblar va kutubxonalarning keng to'plamini taqdim
etadi. Hujjatlarni tasniflash, mavzuni modellashtirish, nutq qismini (POS) teglash,
so'z vektorlari va hissiyotlarni tahlil qilish shular jumlasidandir.
NLP uchun Python-dan foydalaning
Tabiiy tilni qayta ishlash haqida gap ketganda, Python tanlov
texnologiyasidir. Sun'iy intellekt kontekstida tabiiy tillar bilan ishlashga qodir
dasturiy ta'minotni ishlab chiqish qiyin bo'lishi mumkin. Biroq, Python-ning keng
qamrovli asboblar to'plami va NLP kutubxonalari ishlab chiquvchilarga ajoyib
vositalarni yaratish uchun zarur bo'lgan barcha yordamni taqdim etadi.](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_7.png)
![Ushbu 8 ta kutubxona va ushbu ajoyib dasturlash tilining o'ziga xos xususiyatlari uni
inson tillarini mashina tushunishiga tayanadigan har qanday loyiha uchun eng yaxshi
tanlov qiladi.
Boshqa foydali Python NLP kutubxonalarini bilasizmi? Yoki siz ushbu postda
tasvirlangan kutubxonalardan biri haqida yana bir narsani bilmoqchimisiz.
Biz sizni tajribangiz bilan o'rtoqlashishga va barchaga NLP dasturiy ta'minotini ishlab
chiqishning eng yaxshi amaliyotlari haqida ko'proq ma'lumot olishga yordam berish
uchun sharhlarda savollar berishga taklif qilamiz.
Matn uchun tabiiy tilni qayta ishlash asoslari
Tabiiy tilni qayta ishlash endi juda konservativ sohalardan tashqari
qo'llanilmaydi. Ko'pgina texnologik echimlarda "inson" tillarini tanib olish va qayta
ishlash uzoq vaqtdan beri amalga oshirilgan: shuning uchun qattiq kodlangan javob
variantlari bilan odatiy IVR asta-sekin o'tmishga aylanib bormoqda, chatbotlar tobora
ko'proq muloqot qila boshladilar. jonli operator ishtirokisiz etarli darajada, pochta
filtrlari portlash bilan ishlaydi va hokazo. Yozib olingan nutqni, ya'ni matnni tan olish
qanday sodir bo'ladi? Zamonaviy tan olish va qayta ishlash texnikasi asosida nimalar
yotadi, deb so'rash to'g'riroq bo'ladi. Bizning bugungi moslashtirilgan tarjimamiz
bunga yaxshi javob beradi - kesma ostida sizni NLP asoslaridagi bo'shliqlarni
yopadigan uzoq o'qish kutmoqda. O'qishdan zavqlaning!
Tabiiy tilni qayta ishlash nima
Tabiiy tilni qayta ishlash (keyingi o'rinlarda - NLP) - tabiiy tilni qayta ishlash -
kompyuter fanlari va AIning kichik bo'limi bo'lib, kompyuterlar tabiiy (inson) tillarni
qanday tahlil qilishga bag'ishlangan. NLP matn va nutqda mashinani o'rganish
algoritmlarini qo'llash imkonini beradi.
Masalan, biz NLP-dan nutqni aniqlash, hujjatlarni umumlashtirish, mashina tarjimasi,
spamni aniqlash, nomli ob'ektni aniqlash, savollarga javob berish, avtomatik](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_8.png)
![to'ldirish, bashoratli matn kiritish va boshqalar kabi tizimlarni yaratish uchun
foydalanishimiz mumkin.
Bugungi kunda ko'pchiligimizda nutqni aniqlaydigan smartfonlar bor - ular
nutqimizni tushunish uchun NLP-dan foydalanadilar. Bundan tashqari, ko'p odamlar
OS ichiga o'rnatilgan nutqni aniqlashga ega noutbuklardan foydalanadilar.
Misollar
Kortana
Windows-da nutqni taniydigan Cortana virtual yordamchisi mavjud. Cortana
yordamida siz eslatmalar yaratishingiz, ilovalarni ochishingiz, elektron pochta
xabarlarini yuborishingiz, o yin o ynashingiz, ob-havoni tekshirishingiz va hokazo.ʻ ʻ
Gmail](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_9.png)
![Taniqli pochta xizmati spamni aniqlay oladi, shunda u sizning pochta qutingizga
tushmaydi.
Dialog oqimi
NLP botlarini yaratish imkonini beruvchi Google platformasi. Misol uchun, siz pitsa
buyurtma qilish botini yaratishingiz mumkin, unga buyurtmani qabul qilish kerak.
2.1 Python kutubxonasi NLTK
NLTK (Natural Language Toolkit) Pythonda NLP dasturlarini yaratish uchun
yetakchi platforma hisoblanadi. U ko'plab til korpuslari uchun foydalanish uchun](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_10.png)
![qulay interfeyslarga, shuningdek tasniflash,tokenizatsiya, stemming, belgilash,
filtrlash va semantik fikrlash uchun matnni qayta ishlash
kutubxonalariga ega . Xo'sh, bu hamjamiyat yordamida ishlab chiqilayotgan bepul
ochiq kodli loyiha. Biz sizga NLP asoslarini ko'rsatish uchun ushbu vositadan
foydalanamiz. Keyingi barcha misollar uchun NLTK allaqachon import qilingan deb
taxmin qilaman buyrug'ibilan qilishingiz mumkin import nltk.
2.2. Matn uchun NLP asoslari
NLTK bilan jumlalarni tokenizatsiya qilish uchun siz usuldan foydalanishingiz
mumkin nltk.sent_tokenize
Natijada biz 3 ta alohida jumlani olamiz.
Backgammon is one of the oldest known board games.
Its history can be traced back nearly 5,000 years to archeological discoveries in
the Middle East.
It is a two player game where each player has fifteen checkers which move
between twenty-four points according to the roll of two dice.
2. So‘zlar orqali tokenizatsiya
So zlar bo yicha tokenizatsiya (ba zan segmentatsiya) gaplarni tarkibiyʻ ʻ ʼ
so zlarga bo lish jarayonidir.
ʻ ʻ Lotin alifbosining ba'zi versiyasini ishlatadigan ingliz
va boshqa ko'plab tillarda bo'shliqlar yaxshi so'z ajratuvchi hisoblanadi.
Biroq, agar biz faqat bo'sh joydan foydalansak, muammolar paydo bo'lishi mumkin -
ingliz tilida qo'shma otlar boshqacha va ba'zan bo'sh joy bilan yoziladi.Va bu erda
yana kutubxonalar bizga yordam beradi. Misol: Oldingi misoldagi gaplarni olib,
usulni qo‘llaymiz mumkin.
Chiqish:
['Backgammon', 'is', 'one', 'of', 'the', 'oldest', 'known', 'board', 'games', '.']
['Its', 'history', 'can', 'be', 'traced', 'back', 'nearly', '5,000', 'years', 'to',
'archeological', 'discoveries', 'in', 'the', 'Middle', 'East', '.']
['It', 'is', 'a', 'two', 'player', 'game', 'where', 'each', 'player', 'has', 'fifteen',
'checkers', 'which', 'move', 'between', 'twenty-four', 'points', 'according', 'to',
'the', 'roll', 'of', 'two', 'dice', '.']](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_11.png)
![3. Lemmatizatsiya va matn stemmingi
Odatda, matnlar bir xil so'zning turli grammatik shakllarini o'z ichiga oladi va
bir xil ildizli so'zlar ham bo'lishi mumkin. Lemmatizatsiya va stemming barcha
uchraydigan so'z shakllarini yagona, oddiy lug'at shakliga keltirishni maqsad qiladi.
Misollar: Turli xil so'z shakllarini birlashtirish: dog, dogs, dog’s, dogs’ => dog
Xuddi shu, lekin butun jumla uchun: the boy’s dogs are different sizes => the boy
dog be differ size
Lemmatizatsiya va stemming normalizatsiyaning alohida holatlari bo'lib, ular
boshqacha. Stemming - qo'pol evristik jarayon bo'lib, so'zlarning ildizidan "ortiqcha"
ni kesib tashlaydi, ko'pincha hosila qo'shimchalarini yo'qotadi.
Lemmatizatsiya ancha nozik jarayon bo lib, so zni leksika va morfologik tahlildanʻ ʻ
foydalanib, oxir-oqibatda so zni kanonik shakliga, lemmaga aylantiradi.
ʻ
Farqi shundaki, stemmer (tuzatish algoritmining o‘ziga xos tatbiqi – tarjimon
eslatmasi) kontekstni bilmasdan ishlaydi va shunga mos ravishda gap bo‘lagiga qarab
turli ma’noga ega bo‘lgan so‘zlar orasidagi farqni tushunmaydi. Biroq, stemmers ham
o'zlarining afzalliklariga ega: ularni amalga oshirish osonroq va ular tezroq
ishlaydi. Bundan tashqari, pastroq "tozalik" ba'zi hollarda ahamiyatsiz bo'lishi
mumkin.
Misollar:
1. Yaxshi so'z yaxshiroq so'z uchun lemmadir. Stemmer bu havolani ko'rmaydi,
chunki uni lug'at bilan tekshirish kerak.
2. O‘yin so‘zi o‘ynamoq so‘zining asosiy shaklidir. Buni stemming ham,
lemmatizatsiya ham hal qila oladi.
3. Uchrashuv so‘zi kontekstga qarab otning normal shakli yoki uchrashmoq
fe’lining shakli bo‘lishi mumkin. Stemmingdan farqli o'laroq, lemmatizatsiya
kontekstga asoslangan holda to'g'ri lemmani tanlashga harakat qiladi.
Endi biz farq nima ekanligini bilganimizdan so'ng, keling, misolni ko'rib chiqaylik:
Chiqish:
Stemmer: seen
Lemmatizer: see
Stemmer: drove
Lemmatizer: drive
4. So'zlarni to'xtating](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_12.png)
![To'xtash so'zlari - matnni qayta ishlashdan oldin keyin matndan chiqarib yuborilgan
so'zlar. Mashinani o'rganishni matnlarga qo'llaganimizda, bunday so'zlar juda ko'p
shovqin qo'shishi mumkin, shuning uchun ahamiyatsiz so'zlardan xalos bo'lish kerak.
To‘xtash so‘zlari odatda semantik yuk ko‘tarmaydigan artikl, bo‘lak, bog‘lovchi
kabilar orqali tushuniladi. Shu bilan birga, to'xtash so'zlarining universal ro'yxati
yo'qligini tushunish kerak, hamma narsa muayyan holatga bog'liq.
NLTK to'xtash so'zlarining oldindan belgilangan ro'yxatiga ega. Uni birinchi marta
ishlatishdan oldin uni yuklab olishingiz kerak bo'ladi: nltk. download
(“stopwords”) . Yuklab olgandan so'ng siz paketni import qilishingiz stopwords va
so'zlarning o'ziga qarashingiz mumkin:
Chiqish:
['i', 'me', 'my', 'myself', 'we', 'our', 'ours', 'ourselves', 'you', "you're", "you've",
"you'll", "you'd", 'your', 'yours', 'yourself', 'yourselves', 'he', 'him', 'his',
'himself', 'she', "she's", 'her', 'hers', 'herself', 'it', "it's", 'its', 'itself', 'they',
'them', 'their', 'theirs', 'themselves', 'what', 'which', 'who', 'whom', 'this', 'that',
"that'll", 'these', 'those', 'am', 'is', 'are', 'was', 'were', 'be', 'been', 'being', 'have',
'has', 'had', 'having', 'do', 'does', 'did', 'doing', 'a', 'an', 'the', 'and', 'but', 'if',
'or', 'because', 'as', 'until', 'while', 'of', 'at', 'by', 'for', 'with', 'about', 'against',
'between', 'into', 'through', 'during', 'before', 'after', 'above', 'below', 'to',
'from', 'up', 'down', 'in', 'out', 'on', 'off', 'over', 'under', 'again', 'further', 'then',
'once', 'here', 'there', 'when', 'where', 'why', 'how', 'all', 'any', 'both', 'each',
'few', 'more', 'most', 'other', 'some', 'such', 'no', 'nor', 'not', 'only', 'own', 'same',
'so', 'than', 'too', 'very', 's', 't', 'can', 'will', 'just', 'don', "don't", 'should',](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_13.png)
!["should've", 'now', 'd', 'll', 'm', 'o', 're', 've', 'y', 'ain', 'aren', "aren't", 'couldn',
"couldn't", 'didn', "didn't", 'doesn', "doesn't", 'hadn', "hadn't", 'hasn',
"hasn't", 'haven', "haven't", 'isn', "isn't", 'ma', 'mightn', "mightn't", 'mustn',
"mustn't", 'needn', "needn't", 'shan', "shan't", 'shouldn', "shouldn't", 'wasn',
"wasn't", 'weren', "weren't", 'won', "won't", 'wouldn', "wouldn't"]
Qanday qilib jumladan to'xtash so'zlarini olib tashlashni ko'rib chiqing:
Chiqish:
['Backgammon', 'one', 'oldest', 'known', 'board', 'games', '.']
Agar siz ro'yxatni tushunish bilan tanish bo'lmasangiz, bu erda ko'proq ma'lumot
olishingiz mumkin . Xuddi shu natijaga erishishning yana bir usuli:
Biroq, esda tutingki, ro'yxatni tushunish tezroq, chunki ular optimallashtirilgan -
tarjimon tsikl davomida bashoratli naqshni aniqlaydi. Nima uchun ro'yxatni
to'plamga
aylantirdik, deb hayron bo'lishingiz mumkin . To'plam mavhum ma'lumotlar turi
bo'lib, u noyob qiymatlarni aniqlanmagan tartibda saqlashi mumkin. O'rnatilgan
qidiruv ro'yxatdagi qidiruvdan ancha tezroq. Kam sonli so'zlar uchun bu muhim
emas, lekin agar biz ko'p sonli so'zlar haqida gapiradigan bo'lsak, unda to'plamlardan
foydalanish tavsiya etiladi. Agar siz turli xil operatsiyalarni bajarish vaqti haqida bir
oz ko'proq ma'lumotga ega bo'lishni istasangiz, ushbu ajoyib cheat varaqni ko'rib
chiqish.
5. Muntazam iboralar.
Muntazam ifoda (regex, regexp, regex) qidiruv naqshini belgilaydigan belgilar
ketma-ketligidir. Misol uchun:
. - har qanday belgi, yangi qatordan tashqari;
\ w - bitta belgi;
\d - bitta raqam;
\s - bitta bo'sh joy;](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_14.png)
![ \W - bitta EMAS belgi;
\D - bitta raqamli bo'lmagan;
\ S - bitta urinmayapti;
[abc] - belgilangan belgilarning istalganiga a, b yoki c ga mos keladiganini
topadi;
[^abc] - ko'rsatilganlardan tashqari istalgan belgini topadi;
[ag] - a va g orasidagi belgini topadi.
Ushbu maqolada biz quyidagi mavzularni ko'rib chiqamiz:
Tokenizatsiyani taklif qiling.
1. So'zlarni tokenizatsiya qilish.
2. Matnning lemmatizatsiyasi va stemmingi .
3. So'zlarni to'xtating.
4. Muntazam iboralar.
5. So'zlar sumkasi .
6. TF-IDF .
1. Taklif orqali tokenizatsiya
Gapning tokenizatsiyasi (ba'zan segmentatsiya) - yozma tilni tarkibiy gaplarga
bo'lish jarayoni. Fikr juda oddiy ko'rinadi. Ingliz va boshqa ba'zi tillarda har safar
ma'lum bir tinish belgisi - nuqta topilganda biz jumlani ajratib olishimiz mumkin.
Ammo ingliz tilida ham bu vazifa ahamiyatsiz emas, chunki nuqta qisqartmalarda
ham qo'llaniladi. Qisqartmalar jadvali matnni qayta ishlash jarayonida noto'g'ri
joylashtirilgan jumla chegaralarini oldini olish uchun katta yordam berishi
mumkin. Aksariyat hollarda kutubxonalar buning uchun ishlatiladi, shuning uchun
amalga oshirish tafsilotlari haqida juda ko'p tashvishlanishingiz shart emas.
Python hujjatlaridan parcha
Oddiy iboralar (\) maxsus shakllarni ko'rsatish yoki maxsus belgilarga ruxsat
berish uchun teskari chiziqdan foydalanadi. Bu Python-ning teskari chiziqdan
foydalanishiga ziddir: masalan, teskari chiziqni tom ma'noda belgilash uchun qidiruv
namunasi sifatida yozish kerak, chunki regex har bir teskari chiziqdan qochish kerak
bo'lgan '\\\\' ga o'xshash bo'lishi kerak. Yechim qidiruv naqshlari uchun xom satr
belgilaridan foydalanishdir; bilan ishlatilsa, teskari qiyshiq chiziqlar maxsus
ishlanmaydi. Shunday qilib, ikki belgidan iborat satr va bitta belgidan iborat satr
(yangi qator). \\‘r’r”\n”(‘\’ и ‘n’)“\n”
Biz matnimizni filtrlash uchun oddiy iboralardan foydalanishimiz mumkin. Misol
uchun, siz so'z bo'lmagan barcha belgilarni olib tashlashingiz mumkin. Ko'p hollarda
tinish belgilari kerak emas va oddiy iboralar yordamida osongina olib tashlanishi](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_15.png)
![mumkin.
Python- dagi re moduli muntazam ifoda operatsiyalarini
ifodalaydi. Biz re.sub funksiyasidan qidiruv namunasiga mos keladigan har qanday
narsani belgilangan qator bilan almashtirish uchun foydalanishimiz mumkin. Barcha
bo'lmagan so'zlarni bo'sh joylar bilan almashtirishingiz mumkin:
6. So‘zlar xaltasi
Mashinani o'rganish algoritmlari to'g'ridan-to'g'ri xom matn bilan ishlay olmaydi,
shuning uchun matnni raqamlar to'plamiga (vektorlarga) aylantirish kerak. Bu
xususiyatni chiqarish deb ataladi. So ' zlar sumkasi - matn bilan ishlashda
ishlatiladigan mashhur va oddiy xususiyatni ajratib olish usuli . U matndagi har bir
so'zning kelishini tasvirlaydi.Modeldan foydalanish uchun bizga kerak:
Ma'lum so'zlarning lug'atini aniqlang (tokenlar).
1. Ma'lum so'zlarning mavjudligi darajasini tanlang.
So'z tartibi yoki tuzilishi haqidagi har qanday ma'lumot e'tiborga olinmaydi. Shuning
uchun uni so'zlardan iborat XALTA deb atashadi. Ushbu model hujjatda tanish so'z
bor yoki yo'qligini tushunishga harakat qiladi, lekin uning aniq qaerdaligini bilmaydi.
Sezgi bizga o'xshash hujjatlar o'xshash tarkibga ega ekanligini aytadi . Bundan
tashqari, mazmuni tufayli biz hujjatning ma'nosi haqida biror narsa bilib olamiz.
Misol:
Ushbu modelni yaratish bosqichlarini ko'rib chiqing. Model qanday ishlashini
tushunish uchun biz faqat 4 ta jumladan foydalanamiz. Haqiqiy hayotda siz katta
hajmdagi ma'lumotlarga duch kelasiz.
1. Ma'lumotlarni yuklash](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_16.png)
![Tasavvur qilaylik, bu bizning ma'lumotlarimiz va biz uni massiv sifatida
yuklamoqchimiz:
like this movie, it's funny.
I hate this movie.
This was awesome! I like it.
Nice one. I love it.
Buning uchun faylni o'qing va uni satrga bo'ling:
Chiqish:
["I like this movie, it's funny.", 'I hate this movie.', 'This was awesome! I like
it.', 'Nice one. I love it.']
2. Lug‘atga ta’rif bering
Keling, 4 ta yuklangan jumladan barcha noyob so'zlarni to'playmiz, bunda kichik
harflar, tinish belgilari va bitta belgi belgilariga e'tibor bermaslik kerak. Bu bizning
lug'atimiz (ma'lum so'zlar) bo'ladi.](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_17.png)
![Lug'at yaratish uchun siz sklearn kutubxonasidan CountVectorizer sinfidan
foydalanishingiz mumkin. Keling, keyingi bosqichga o'tamiz.
3. Hujjat vektorlarini yaratish
Keyinchalik, hujjatdagi so'zlarni baholashimiz kerak. Ushbu bosqichda bizning
maqsadimiz xom matnni raqamlar to'plamiga aylantirishdir. Shundan so'ng, biz ushbu
to'plamlardan mashinani o'rganish modeliga kirish sifatida foydalanamiz. Eng oddiy
ball qo'yish usuli - so'zlarning mavjudligini belgilash, ya'ni so'z bo'lsa 1, yo'q bo'lsa 0
qo'ying.
Endi biz yuqoridagi CountVectorizer sinfidan foydalanib, so'zlar sumkasini
yaratishimiz mumkin.
Bu bizning takliflarimiz. Endi biz so'zlar sumkasi modeli qanday ishlashini
ko'rishimiz mumkin.
So'zlar sumkasi haqida yana bir necha so'z](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_18.png)
![Ushbu modelning murakkabligi lug'atni qanday aniqlash va so'zlarning paydo
bo'lishini qanday hisoblashdir.
Lug'at hajmi kattalashgani sari hujjat vektori ham o'sib boradi. Yuqoridagi misolda
vektor uzunligi ma'lum so'zlar soniga teng.
Ba'zi hollarda bizda nihoyatda katta hajmdagi ma'lumotlar bo'lishi mumkin va keyin
vektor minglab yoki millionlab elementlardan iborat bo'lishi mumkin. Bundan
tashqari, har bir hujjat lug'atdagi so'zlarning faqat kichik qismini o'z ichiga olishi
mumkin.
Natijada vektor tasvirida juda ko'p nol bo'ladi. Ko'p nolga ega vektorlar siyrak
vektorlar deb ataladi va ko'proq xotira va hisoblash resurslarini talab qiladi.
Biroq, hisoblash talablarini kamaytirish uchun ushbu modeldan foydalanganda
ma'lum so'zlar sonini kamaytirishimiz mumkin. Buning uchun siz so'zlar sumkasini
yaratishdan oldin biz ko'rib chiqqan usullardan foydalanishingiz mumkin:
so'zlarning holatiga e'tibor bermaslik;
tinish belgilariga e'tibor bermaslik;
to'xtatuvchi so'zlarni tashlash;
so'zlarni asosiy shakllariga qisqartirish (lemmatizatsiya va o'zaklash);
noto'g'ri yozilgan so'zlarni tuzatish.
Lug'at yaratishning yana bir murakkab usuli guruhlangan so'zlardan
foydalanishdir. Bu lug'at hajmini o'zgartiradi va so'zlar sumkasiga hujjat haqida
ko'proq ma'lumot beradi. Ushbu yondashuv " N-gram " deb ataladi.
N-gramm har qanday ob'ektlar (so'zlar, harflar, raqamlar, raqamlar va boshqalar)
ketma-ketligidir. Til korpusi kontekstida N-gramma odatda so'zlar ketma-ketligi
sifatida tushuniladi. Unigram - bir so'z, diagramma - ikki so'z ketma-ketligi, trigram -
uch so'z va hokazo. N soni N-grammaga nechta guruhlangan so'z kiritilganligini
ko'rsatadi. Modelga barcha mumkin bo'lgan N-grammlar kirmaydi, faqat korpusda](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_19.png)
![paydo bo'lganlar.
Miqdori. Hujjatda har bir so'z necha marta kelganligi hisobga olinadi.
1. Chastotasi. Har bir so'z matnda qanchalik tez-tez uchraydi (so'zlarning umumiy
soniga nisbatan) hisoblab chiqiladi.
7. TF-IDF
Chastotani baholashda muammo bor eng yuqori chastotali so'zlar, mos ravishda, eng
yuqori ballga ega. Ushbu so'zlarda model uchun kamroq tez-tez uchraydigan
so'zlardagi kabi ko'p ma'lumot bo'lmasligi mumkin . Vaziyatni to'g'irlashning bir
usuli - barcha shunga o'xshash hujjatlarda tez-tez ko'rinadigan so'zni pastga
tushirishdir. Bu TF-IDF deb ataladi.TF-IDF (qisqa muddatli chastota - teskari hujjat
chastotasi) to'plam yoki korpusning bir qismi bo'lgan hujjatdagi so'zning ahamiyatini
baholash uchun statistik o'lchovdir.TF-IDF reytingi hujjatdagi so'zning paydo bo'lish
chastotasiga mutanosib ravishda ortadi, ammo bu ushbu so'zni o'z ichiga olgan
hujjatlar soni bilan qoplanadi. Y hujjatidagi X so ' zini baholash formulasi :
TF ( termin chastotasi ) - so ' zning takrorlanish sonining so ' zlarning umumiy
soniga nisbati . hujjat .
IDF (teskari hujjat chastotasi - teskari hujjat chastotasi) - to'plam hujjatlarida ma'lum
bir so'zning paydo bo'lish chastotasining inversiyasi.
Natijada, so'z atamasi uchun TF-IDFni quyidagicha hisoblashingiz mumkin :](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_20.png)
![Misol: TF-IDFni hisoblash uchun sklearn kutubxonasidagi TfidfVectorizer
sinfidan foydalanishingiz mumkin . Keling, buni so'zlar sumkasida ishlatgan bir xil
xabarlar bilan qilaylik.
I like this movie, it's funny.
I hate this movie.
This was awesome! I like it.
Nice one. I love it.
Kod:
Chiqish:
Ushbu maqolada matn uchun NLP asoslari demontaj qilindi , xususan :
NLP matn va nutqda mashinani o ' rganish algoritmlarini qo ' llash imkonini beradi ;
NLTK (Natural Language Toolkit) Pythonda NLP dasturlarini yaratish uchun
yetakchi platforma hisoblanadi;
Gap leksemasi - yozma tilni komponentli gaplarga bo‘lish jarayoni;
so‘z leksemasi - gaplarni tarkibiy so‘zlarga bo‘lish jarayoni;
lemmatizatsiya va stemming barcha uchraydigan so'z shakllarini bitta, oddiy
lug'at shakliga keltirishni maqsad qiladi;
to'xtash so'zlari - matnni qayta ishlashdan oldin / keyin matndan tashqariga
tashlangan so'zlar;
muntazam ifoda (regex, regexp, regex) - qidiruv sxemasini belgilaydigan
belgilar ketma-ketligi;
so'zlar sumkasi - matn bilan ishlashda ishlatiladigan mashhur va oddiy
xususiyatni ajratib olish usuli. U matndagi har bir so'zning kelishini tasvirlaydi.
Sizning NLP modelingiz qanchalik yaxshi
Hugging Face's Transformer modellari uchun Amazon SageMaker ishlov berish
ishlari bilan NLP modellarini qanday baholash mumkin
III bob Amaliy qilingan ishlar](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_21.png)
![3.1 Pythonda hujatlar bilan ishlash
Unsplash -da Antuan Dautri surati Bu nima haqida?
NLP loyihasi uchun quvur liniyasi (yoki har qanday ML loyihasi) ma'lumotlarni
qayta ishlash, modelni o'rgatish va joylashtirishni o'z ichiga olgan bir necha
bosqichlardan iborat. Modelni o'qitish va joylashtirish o'rtasida amalga oshirilishi
kerak bo'lgan yana bir qadam bu modelni baholashdir . Faqatgina yangi o'qitilgan
modelni baholagandan so'ng, biz modelni ro'yxatdan o'tkazish va/yoki o'rnatishni o'z
ichiga olishi mumkin bo'lgan keyingi qadamlarni ko'rib chiqishimiz kerak, yoki
modelning ishlashi yomon bo'lsa, uni boshqa/ko'proq ma'lumotlar bilan qayta
tayyorlash:](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_22.png)
![NLP Project Pipeline (muallifning rasmi) Amazon SageMaker yaqinda Hugging Face
Transformer modellari uchun maxsus ishlab chiqilgan va optimallashtirilgan Hugging
Face Processing ishlarini taqdim etdi. Ishlovlarni qayta ishlash turli vazifalar
uchun ishlatilishi mumkin : ma'lumotlarni oldindan yoki keyingi qayta ishlash,
xususiyatlarni ishlab chiqish, ma'lumotlarni tekshirish va modelni baholash . Ushbu
blog postida biz ushbu ro'yxatdagi oxirgi vazifaga - modelni baholashga chuqurroq
kirib boramiz. Biz modelni baholashdagi qiyinchiliklar va ushbu qiyinchiliklarni
yengish uchun SageMaker Processing ishlaridan qanday foydalanishimiz haqida bilib
olamiz.
NLP modelini baholash resurslarni ko'p talab qilishi mumkin, ayniqsa GPU
tezlashuvidan katta foyda ko'radigan Transformator modellari haqida gap baholas
h
ko'rsatk
ichlariModelni
baholash
Modelni
ro'yxatdan
o'tkazish Modelni
o'rnatish Modelni qayta
tayyorlashTo'liq ma'lumotlar to'plami
Ma'lumotlar
ni qayta
ishlash
ta'lim ma'lumotlari Tasdiqlash
ma'lumotlari Sinov
ma'lumotlari
Model
tayyorlas
h Tayyorlan
gan model](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_23.png)
![ketganda. Natijada, agar biz uni GPUsiz mashinada ishlatsak, baholash bir necha soat
davom etishi mumkin, ayniqsa test ma'lumotlar to'plami katta bo'lsa. Aslida,
noutbukimda (GPUsiz) modelni baholash qancha davom etishini aniq
ko'ramiz. Bundan farqli o ' laroq , biz SageMaker ' ning Hugging Face Processing
vazifalaridan foydalangan holda bu jarayonni 267 (!) martagacha tezlashtirishimiz
mumkinligini ko ' ramiz . Ushbu qayta ishlash ishlari nafaqat talab bo ' yicha hisoblash
resurslaridan foydalangan holda modelni tezroq baholashga imkon beradi , balki
SageMaker ekotizimidagi qattiq integratsiya ham ushbu bosqichni NLP quvur
liniyasiga muammosiz integratsiya qilish imkonini beradi . Old shartlar Ushbu o ' quv
qo ' llanmasi uchun Github repo - ni bu erda topishingiz mumkin . Unda SageMaker
Processing ishi bilan o'zaro ishlash uchun daftar, shuningdek ikkita baholash skripti
mavjud - biri mahalliy mashinada (masalan, shaxsiy noutbuk) modelni baholash
uchun va ikkinchisi SageMaker Processing ishi uchun. Shuningdek, bizga o'qitilgan
Transformator modeli va tegishli test ma'lumotlar to'plami kerak. Ideal holda, buning
uchun siz o'zingizning modelingiz va test ma'lumotlaringizdan foydalanasiz, ammo
agar sizda ular mavjud bo'lmasa, siz Github repo-da model va test ma'lumotlarini
topishingiz mumkin. (Repodagi model DistilBERT asosidagi ikkilik tasniflash modeli
bo lib, film sharhlarida ijobiy va salbiy his-tuyg ularni aniqlash uchun yaxshiʻ ʻ
sozlangan. Ma lumotlar to plami HuggingFace’s Datasets
ʼ ʻ formatida ). Trainer API
yordamida transformator modelini qanday baholash mumkin. Hugging Face's Trainer
API odatda modellarni o'rgatish uchun ishlatiladi, lekin u allaqachon o'qitilgan
modelni baholashni juda oson va tushunarli qiladi. Biz faqat Trainer API-ni biz
baholamoqchi bo'lgan model bilan chaqirishimiz, test ma'lumotlarini va modelni
baholash uchun hisoblamoqchi bo'lgan ko'rsatkichlar ta'rifini belgilashimiz kerak:
Modelni mahalliy darajada baholash Github repo-dan evaluate-local-hf.py skriptidan
foydalanib, biz endi modelni xohlagan joyimizda baholashimiz mumkin. Aslida men
skriptni noutbukimda (Unda GPU yo'q) ishga tushirdim, bu qancha vaqt ketishini
ko'rish uchun. LEKIN : Test ma'lumotlari ~ 15K yozuvlardan iborat bo'lib, bu NLP
loyihasidagi yozuvlar soni osongina millionlab o'sishi mumkin bo'lgan bugungi kun
va yoshda unchalik ko'p emas. Biroq, noutbukimni soatlab band qilish uchun hali ham
etarli. Shunday qilib, butun test ma'lumotlar to'plamidan foydalanish o'rniga men uni
atigi 100 ta yozuvga qisqartirdim:
100 ta yozuv uchun ish vaqti ( muallif tomonidan tasvir ) Ma ' lum bo ' lishicha , 100 ta
yozuvni qayta ishlash taxminan 68 soniyani oladi , bu 8 ta yozuvning to ' plamiga ~ 5,3
soniya ( yoki har bir yozuv uchun 0,66 soniya ). Buni 15K yozuvlarning butun](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_24.png)
![ma'lumotlar to'plamiga ekstrapolyatsiya qilish, modelni baholash mening
noutbukimda ~ 3 soat davom etishini anglatadi . Hugging Face uchun Sagemaker
Processing jobs
SageMaker Processing bizga GPU mashinasini talab bo'yicha va faqat modelni
baholash uchun zarur bo'lgan vaqt uchun ta'minlash imkonini beradi. Buning uchun
biz qayta ishlash ishi bilan o'zaro aloqada bo'lishi mumkin bo'lgan biroz
o'zgartirilgan baholash skriptidan foydalanamiz. Va bu safar biz baholashni butun test
ma'lumotlar to'plamida, ya'ni ~15K yozuvda o'tkazamiz. Modelni baholashni o ' rnatish
uchun biz SageMaker Python SDK - dan ishlov berish ishini sozlash uchun
foydalanamiz : Shuningdek , protsessorga model va test ma ' lumotlarini qaerdan topish
kerakligini aytishimiz kerak : Va keyin biz modelni baholashni boshlashimiz mumkin :
Ishlash tugallangach , biz baholash natijalarini S 3 da belgilangan chiqish papkasida
JSON faylida topishimiz mumkin ( bizning holatda fayl evaluation . json deb nomlanadi
):
S3 bo'yicha baholash natijalari (muallifning rasmi)
Ushbu faylni ochish bizga compute_metrics() usulida ko rsatgan baholashʻ
ko rsatkichlarini hamda ishlov berish ishidagi boshqa ko rsatkichlarni taqdim etadi:
ʻ ʻ
Baholash ko'rsatkichlari](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_25.png)
![Aslida, baholash natijalari bizga Qayta ishlash ishi soniyada 177 ta namunani
ishga tushirishga muvaffaq bo'lganligini aytadi. Esingizda bo'lsa, mening
noutbukim sekundiga 0,66 namunani ishga tushirishga muvaffaq bo'ldi, ya'ni
qayta ishlash mening noutbukimga qaraganda 267 baravar tezroq ishladi! Buni
qayta ishlash ishlari jurnallariga qarab tasdiqlashimiz mumkin:
SageMaker-da ishlash vaqti
Ko'rib turganimizdek, ~15K yozuvlari bo'lgan ma'lumotlar to'plamidagi modelni
baholash uchun ishlov berish ishiga atigi 85 soniya kerak bo'ldi.
Ushbu blog postida biz Amazon SageMaker Processing ishlaridan foydalangan holda
Hugging Face-ning Transformer modellari asosida NLP modelini qanday baholashni
bilib oldik. Biz SageMaker-da GPU hisoblash infratuzilmasidan talab bo'yicha
foydalanish oddiy ekanligini va bu modelni baholashni sezilarli darajada
tezlashtirishini ko'rdik. Keyingi qadam, NLP loyihasining butun hayotiy tsiklini, shu
jumladan modelni baholashni oxirigacha uzatish va uni avtomatlashtirish, shuning
uchun NLP vazifalari uchun kengaytiriladigan CI/CD quvur liniyasini yaratish bo'lishi
mumkin.
Tabiiy tilni qayta ishlash (NLP) - bu ma'lumotlar fani va sun'iy intellekt (AI)
chorrahasida joylashgan soha bo'lib, u asoslarga qadar qaynatilganda - bu
mashinalarga inson tillarini tushunish va matndan ma'no chiqarishni
o'rgatishdir. Shuning uchun ham mashinani o'rganish ko'pincha NLP loyihalarining
bir qismidir.
Ammo nega ko'plab tashkilotlar bugungi kunda NLPga qiziqish
bildirmoqda? Birinchi navbatda, bu texnologiyalar ularga iste'molchilarning mahsulot
bilan o'zaro aloqada bo'lishi mumkin bo'lgan til bilan bog'liq muammolarini hal
qiluvchi keng qamrovli qimmatli tushunchalar va echimlarni taqdim etishi
mumkinligi sababli.
Google, Amazon yoki Facebook kabi texnologiya gigantlari o'zlarining chatbotlari,
virtual yordamchilari, tavsiya dvigatellari va mashinani o'rganish orqali
boshqariladigan boshqa yechimlarni quvvatlantirish uchun ushbu tadqiqot
yo'nalishiga millionlab dollar sarflashlarining sababi bor.
NLP ilg'or hisoblash ko'nikmalariga tayanganligi sababli, ishlab chiquvchilar NLP
yondashuvlari va tabiiy tillarni boshqarishi mumkin bo'lgan xizmatlarni yaratish
algoritmlaridan maksimal darajada foydalanishga yordam beradigan eng yaxshi
vositalarga muhtoj.
Matnni sonli vektor tasvirlarga aylantirish](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_26.png)
![Matematik algoritmlar raqamlar bilan ishlaydi , shuning uchun matn
ma ' lumotlarini qayta ishlash va tahlil qilish uchun matematik apparatdan foydalanish
uchun siz birinchi navbatda so ' zlar va jumlalarni raqamli vektorlarga aylantirishingiz
kerak va afzalroq semantik munosabatlar va so ' z tartibini saqlab qo ' yishingiz kerak ,
ya ' ni :
raqamli vektor matnning mazmuni va tuzilishini aks ettirishi kerak;
ma'nosi o'xshash so'zlar va jumlalar vektor tasvirlarining o'xshash qiymatlariga
ega bo'lishi kerak.
Hozirgi vaqtda matnni, aniqrog'i matnlar to'plamini (yoki NLP terminologiyasida
hujjatlar korpusini) vektor tasviriga aylantirishning ikkita asosiy usuli mavjud:
mavzuni modellashtirish - hujjat korpusida yashirin (latent) mavzularni topish
uchun bir nechta statistik modellar: yashirin semantik tahlil (PLSA), yashirin
Dirichlet joylashtirish (LDA),
distributiv gipotezaga asoslangan so'zlarni kontekstli tasvirlashning turli
modellari: neyron tarmoq modellari Word2Vec, GloVe, Doc2Vec, fastText va
boshqalar.Ushbu algoritmlarning oxirida olingan vektor tasvirlari matnlarni
solishtirish, ular o'rtasida o'xshashlarni izlash, matnlarni turkumlashtirish va
klasterlashtirishni osonlashtiradi va hokazo.Taxminan 10-15 yil oldin tabiiy
tillarni qayta ishlash bo'yicha loyihalarda faqat mutaxassislar ishtirok etishi
mumkin edi, chunki bu matematika, mashinani o'rganish va tilshunoslik sohasida
jiddiy bilimlarni talab qiladi. Endi ishlab chiquvchilar NLP muammolarini hal
qilish uchun ko'plab tayyor vositalar va kutubxonalardan foydalanishlari
mumkin. Xususan, Python tilida turli xil modellarni o'rgatish uchun NLP
imkoniyatlarining juda keng doirasi ikkita modulning kombinatsiyasi bilan
ta'minlanadi: nltk va gensim - Monq platformasining NLP funksionalligi ularda
(lekin nafaqat) asoslangan.
Tabiiy tillarni qayta ishlash uchun Python kutubxonalari
“Python boshidan beri Google’ning muhim qismi bo lib kelgan va tizim o sishi vaʻ ʻ
rivojlanishi bilan shunday bo lib qoladi.
ʻ Bugungi kunda o nlab Google muhandislari ʻ
Python’dan foydalanishadi va biz bu tilda malakali ko proq odamlarni
ʻ
qidirmoqdamiz”.
- Piter Norvig , Google, Inc qidiruv sifati direktori.
P ython hozirda dunyodagi eng issiq dasturlash tillaridan biri hisoblanadi, chunki u
boshqa dasturlash tillari bilan qanchalik yaxshi integratsiyalashgani va tanlangan](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_27.png)
![dasturlash tili sifatida ko'pchilik yangi loyiha g'oyalariga mukammal darajada mos
keladi.
Python, shuningdek, Sun'iy intellekt hamjamiyatida juda yaxshi maqtovga sazovor
bo'lgan va e'tirof etilgan til bo'lib, bu uni AIning Soft Computing , Machine
Learning , Natural Language Processing va boshqa o'nlab sohalar kabi bir nechta
sohalarida ishlash uchun dasturlash tiliga aylantiradi .
Kelajakda sun iy intellektʼ va aqlli yechimlarni o z ichiga olgan holda, nafaqat ʻ
buyruqlarimizni tushunibgina qolmay, balki biz bilan tabiiy ravishda muloqot
qiladigan tizimlarni ishlab chiqishga bo lgan ehtiyoj tobora ortib bormoqda.
ʻ
Har qanday til so'zlarsiz va bu so'zlarni boshqarish uchun mas'ul bo'lgan
grammatikasiz to'liq emas. Inson suhbati bir-biri bilan muloqot qilish uchun so'z va
belgilarni talab qilganidek, kompyuterlar bilan o'zaro aloqa ham xuddi shunday
amalga oshiriladi.
Variantlarni bosish va bosish orqali kompyuter bilan o'zaro ta'sir qilishning an'anaviy
usuli asta-sekin suhbatlarni o'z ichiga olgan yanada muammosiz yondashuv bilan
bekor qilinmoqda. Ushbu zamonaviy aloqa usuli kompyuter bilan tabiiyroq tarzda
gaplashishni o'z ichiga oladi, chunki biz boshqa odamlar bilan so'zlardan
foydalanishga moyilmiz.
Sun'iy intellektning bir tarmog'i bo'lgan tabiiy tilni qayta ishlash odamlarning
kompyuterlar bilan qanday qilib intuitivroq munosabatda bo'lishlari haqidagi fanni
belgilaydi.
Bunday domenning maqsadi kompyuterlarni odatiy va oqilona belgilangan
ko'rsatmalar to'plamidan tashqari, odamlarning umumiy tildan qanday tushunishini va
ma'nosini yaratishni aniqlashdir.
AIning bir qismi bo'lgan NLP asosan Machine Learning-ga tayanadi va NLP jarayoni
quyidagicha davom etadi:
● Matn kiritish yoki ovozli kiritish oralig‘idagi odam kiritishini yozib olish
● Ovozli ma'lumotlarni matnga aylantirish
● Ma'lumotlarning ma'nosini aniqlash uchun grammatika, tahlil qilish texnikasi,
semantika va shunga o'xshash usullardan foydalangan holda matnni qayta ishlash.
● Qayta ishlangan mahsulotni ekranda ko'rsatish yoki audio orqali o'ynatish orqali
insonga uzatish
Tabiiy tilni qayta ishlash uchun Python kutubxonalari
Tabiiy tilni qayta ishlash aqlli tizimlarni yaratishning ko'plab muhim jihatlaridan biri
hisoblanadi. Haqiqiy dunyodan to'plangan ma'lumotlar bilan yechimingizni o'rgatish
orqali siz uni tezroq va foydalanuvchilar uchun ko'proq moslashtirib, mijozlar
bazangiz haqida muhim ma'lumotga ega bo'lishingiz mumkin.
Ushbu maqolada biz Python sizning loyihangizga tabiiy tilni qayta ishlash kuchidan
foydalanish uchun eng foydali va kuchli kutubxonalarni qanday taklif qilishini va ular
aynan qayerga mos kelishini ko'rib chiqamiz.](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_28.png)
![Tabiiy tillarni qayta ishlashga kirish.
Tabiiy tillarga ishlov berishning qisqacha mazmuni
Inson tili va kompyuterlarning o'zaro ta'siriga qaratilgan ish sohasi tabiiy tilga ishlov
berish yoki qisqacha NLP deb nomlanadi. U kompyutershunoslik, sun'iy intellekt va
hisoblash tilshunosligi chorrahasida joylashgan.
"Tabiiy tillarga ishlov berish - bu kompyuter tushunchasi va inson tilining
manipulyatsiyasini qamrab oluvchi soha bo'lib, u axborot yig'ish uchun juda yaxshi
imkoniyatga ega", dedi Entoni Pesse oshxonada "Natural Language Processing"
dasturida. "Siz odatda bu haqda katta qonun hujjatlari yoki boshqa hujjatlar
to'plamini tahlil qilish, qonunlarni kashf etish yoki korruptsiyani yo'q qilishga urinish
nuqtai nazaridan eshitasiz."
Mashinada o'qitish jarayonida qo'llaniladigan o'quv protseduralari avtomatik ravishda
eng ko'p uchraydigan holatlarga qaratiladi, holbuki qoidalarni qo'l bilan yozish
paytida harakatni qaerga yo'naltirish kerakligi aniq emas.
Avtomatik o'rganish protseduralari notanish ma'lumotlarni kiritish uchun (masalan,
ilgari ko'rilmagan so'zlar yoki tuzilmalarni o'z ichiga olgan) va xatolarni kiritishda
(masalan, noto'g'ri yozilgan yoki tasodifan qoldirilgan so'zlar bilan) modellarni ishlab
chiqarish uchun statistik ma'lumotlarning algoritmlaridan foydalanishi mumkin.
Umuman olganda, bunday yozuvlarni qo'lda yozilgan qoidalar bilan muloyimlik bilan
ishlatish, yoki umuman olganda yumshoq qarorlar chiqaradigan qo'lda yozilgan
qoidalar tizimini yaratish juda qiyin, xatolarga moyil va ko'p vaqt talab etadi.
Avtomatik ravishda qoidalarni o'rganishga asoslangan tizimlar ko'proq
ma'lumotlarni kiritish orqali oddiyroq bo'lishi mumkin. Biroq, qo'lda yozilgan
qoidalarga asoslangan tizimlar faqat qoidalarning murakkabligini oshirish orqali
aniqroq amalga oshirilishi mumkin, bu ancha qiyin vazifa. Xususan, qo'lda
tayyorlangan qoidalarga asoslangan tizimlarning murakkabligi chegarasi mavjud,
undan tashqarida tizimlar tobora boshqarib bo'lmaydigan holga keladi. Shu bilan
birga, mashina o'qitish tizimiga kirish uchun ko'proq ma'lumot yaratish shunchaki](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_29.png)
![izohlash jarayonining murakkablashuvisiz, ishlaydigan odam sonining tegishli
o'sishini talab qiladi.](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_30.png)
![XULOSA
Har qanday tizim bilan o'zaro aloqada bo'lish asosiy harakatlardan biridir va
asosiy e'tibor doimo ushbu jarayonni foydalanuvchilar uchun imkon qadar
muammosiz qilishga qaratilishi kerak. Suhbat tizimlari doimiy ravishda odatiy holga
aylanib borayotganligi sababli, bizning kundalik nutqimizni tanib olish uchun
echimlarimizga bo'lgan ehtiyoj ortib bormoqda. Tabiiy tilni qayta ishlash bizga
kompyuterlar uchun buni soddalashtirishga va bugungi kunga qaraganda aqlliroq
bo'ladigan yangi avlod echimlarini yaratishga imkon berdi. Ushbu doimiy
o'zgaruvchan dunyoda Python o'zini moslashtirish, innovatsiyalar qilish va o'tmishda
bizni qiynab kelgan ko'plab zamonaviy hisoblash muammolariga yechimlarni taqdim
etish qobiliyatiga ega ekanligini isbotladi.
Biz o'rganishingiz uchun tuzilmagan ma'lumotlarning butunlay yangi dunyosi
ochiq. Matnni tahlil qilish bo yicha topshiriqlarning asoslarini o rganibʻ ʻ
chiqqaningizdan so ng, u yerda tahlil qilish uchun ba zi matnlarni topishingiz va
ʻ ʼ
matnlarning o zlari, shuningdek ularni yozgan odamlar va ular haqida bo lgan
ʻ ʻ
mavzular haqida nimani bilib olishingiz mumkinligini ko rishingiz mumkin.
ʻ
Pythonda tabiiy tillar uchun matnni tahlil qilish uchun NLTK - dan foydalanib , unda
ifodalangan his - tuyg ' ular ijobiy yoki salbiy ekanligini ko ' rishingiz
mumkin . Tuyg'ularni tahlil qilish haqida ko'proq ma'lumot olish uchun His-
tuyg'ularni tahlil qilish: Python NLTK kutubxonasi bilan birinchi qadamlarni
ko'ring . Agar siz NLTK ning yong'oq va murvatlariga chuqurroq sho'ng'ishni
istasangiz, Python yordamida tabiiy tilni qayta ishlash - tabiiy til asboblar to'plami
bilan matnni tahlil qilish orqali ishlashingiz mumkin .](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_31.png)
![FOYDALANILGAN ADABIYOTLAR .
1. Professional dasturchining Deitel® qo'llanmasi Python® bo'yicha sun'iy
intellektga oid amaliy tadqiqotlar bilan
2. Python Crash Course, 2nd Edition by Eric Matthes Released May 2019
Publisher(s): No Starch Press ISBN: 9781593279288
3. Learning Python, 5th Edition by Mark Lutz Released June 2013
Publisher(s): O'Reilly Media, Inc. ISBN: 9781449355739
4. https://sunscrapers.com/blog/8-best-python-natural-language-processing-nlp-
libraries/
5. https://towardsdatascience.com/python-libraries-for-natural-language-
processing-be0e5a35dd64
6. https://www.analyticsvidhya.com/blog/2021/05/top-8-python-libraries-for-
natural-language-processing-nlp-in-2021/
7. https://python.sariq.dev/last-words/39-pip-pypi](/data/documents/1e7fd6f8-697e-4d7b-a457-2f0a892b4f2c/page_32.png)
MAVZU: Pythonda tabiiy tillarga ishlov berish kutubxonalari bilan ishlash MUNDARIJA: Kirish ……………………………………………………………………………. I.BOB Pythonda tabiiy tillarga NPL ishlov berish kutubxonalari .. …………….. 1.1. Tabiiy tilni qayta ishlash NLP……………………………...…………….. 1.2. NLTK - bu Python-da tasniflash………………………………………..... 1.3.Tabiiy tillarni qayta ishlash uchun Python kutubxonalari………………… II BOB NLP uchun Python-dan foydalaning……………………………………. 2.1. Python kutubxonasi NLTK ………………………………………………. 2.2. Matn uchun tabiiy tilni qayta ishlash asoslari ……………………………. 2.3. Pythonda yozilgan mavzularni modellashtirish , o ' xshashlikni qidirish va tabiiy tilni qayta ishlash uchun kutubxona ………………………………………….. 2.4 Matn uchun NLP asoslari…………………………………………………… III BOB Amaliy qilinga ishlar ……………………………………………………… 3.1 Matnni sonli vektor tasvirlarga aylantirish………………………………… 3.2 Pythonda tabiiy tilarga ishlov berish algoritimlari…………………………. 3.3 Pythonda tabiiy tillarga bilan ishlash uchun python codlari……………….. Xulosa…………...…………………………………………………………………… Foydalanilgan adabiyotlar ro’yxati……...…………………………………………
KIRISH Insoniyat o'zining rivojlanishi tarixi haqida moddiy quvvat va axborotlarni o'zlashtirib kelgan. Bu qilish butun bir davrlari shu bosqichning ilg' yoki texnologiya nomi bilan atalgan. Masalan:"tosh asr” – mexnat quroli yasash uchun toshga berish texnologiyasini egallash bochqichi, “kitob chop etish asri”-axborotni tarqatishni yangi usulini o'zlashtirish bosqichi, “elektr asri” - quvvatning yangi turlarini o'zlashtirish bosqichi shular jumlasidandir. Informatika axboltaborotlarni EXM yordam tasvirlash, saqlab turish, amalga oshirishva hisoblanadi ishlov berish usullarini o'rganadigan fandir. EXMlarni ishlab chiqarish chiqish va undanqidiruv soxasida katta yutuqlarga erishilgan olim VMGlushkov ta'biri bilan aytsak: yangi kabir keyin texnik jixatdan tomonidan mamlakatlarda tegishli axborot EXM xotirasida bo'ladi. XXI asr boshlarida ana shu axborotlardan yuborishni bilmagan kishi, XX asr davom etish va mahsulotni bilmagan odamga o'xshab qoladi. Bundan kelib chiqqan xolda “Informatika” fanini o'rganish ikkinchi savodxonlik bilan tengdir. Davom etish vamahsulotni bilmaganodamga o'xshab qoladi. Bundan kelib chiqqan xolda “Informatika” fanini o'rganish ikkinchi savodxonlik bilan tengdir. Tabiiy tilni qayta ishlash (NLP) - bu ma'lumotlar fani va sun'iy intellekt (AI) yaqinlashuvida joylashgan soha bo'lib, u asoslarga qisqartirilganda - bu mashinalarga inson lahjalarini tushunish va matndan ma'no chiqarishni o'rgatish bilan bog'liq. Shu sababli sun'iy intellekt NLP loyihalari uchun muntazam ravishda zarurdir. Buning sababi nimada, nega ko'p kompaniyalar NLP haqida qayg'uradilar. Asosan, ushbu yutuqlar ularga keng qamrovli bilim va kelishuvlarni taqdim etishi mumkinligi sababli, xaridorlar buyum bilan hamkorlik qilishda duch kelishi mumkin bo'lgan til bilan bog'liq muammolarni hal qiladi. Tabiiy tilni qayta ishlash 1950-yillarga borib taqaladi. 1950 yilda Alan Turing " Hisoblash mashinalari va razvedka " nomli maqolani nashr etdi, unda hozirda Tyuring testi deb ataladigan narsa aql mezoni sifatida taklif qilingan, ammo o'sha paytda bu sun'iy intellektdan alohida muammo sifatida ifodalanmagan edi. Taklif etilayotgan test tabiiy tilni avtomatlashtirilgan talqin qilish va yaratishni o'z ichiga olgan vazifani o'z ichiga oladi.
Ramziy NLP (1950-yillar - 1990-yillarning boshi) Ramziy NLP a sosi Jon Searlning xitoy xonasi tajribasida yaxshi jamlangan: qoidalar to'plamini (masalan, savollar va mos javoblar bilan xitoycha so'zlashuv kitobi) hisobga olgan holda, kompyuter tabiiy tilni tushunishga (yoki boshqa NLP vazifalariga) taqlid qiladi. ushbu qoidalarni o'zi duch keladigan ma'lumotlarga qo'llash. 1970-yillar : 1970-yillarda ko plab dasturchilar real dunyo ma lumotlariniʻ ʼ kompyuterda tushunarli ma lumotlarga aylantiruvchi “kontseptual ʼ ontologiyalar ” ni yozishni boshladilar . Masalan, MARGIE (Schank, 1975), SAM (Cullingford, 1978), PAM (Wilensky, 1978), TaleSpin (Meehan , 1976), QALM (Lehnert, 1977), Politics (Carbonell, 1979) va Plot18 (Lehner18)). Bu vaqt ichida birinchi ko'plab suhbatdoshlar yozildi (masalan, PARRY ). 1980-yillar : 1980-yillar va 1990-yillarning boshlari NLPdagi ramziy usullarning gullagan davrini nishonlaydi. Vaqtning asosiy yo'nalishlari qoidalarga asoslangan tahlil qilish (masalan, generativ grammatikani hisoblash operatsionizatsiyasi sifatida HPSG ni ishlab chiqish ), morfologiya (masalan, ikki darajali morfologiya [3] ), semantika (masalan, Lesk algoritmi ), ma'lumotnomalar bo'yicha tadqiqotlarni o'z ichiga olgan. (masalan, markazlashtirish nazariyasi doirasida ) va tabiiy tilni tushunishning boshqa sohalari (masalan, ritorik tuzilma nazariyasida ). Tadqiqotning boshqa yo'nalishlari davom ettirildi, masalan, Racter va Jabberwacky bilan chatterbotlarni ishlab chiqish. . Muhim voqea (oxir-oqibat 1990-yillarda statistik burilishga olib keldi) bu davrda miqdoriy baholashning ortib borayotgan ahamiyati edi. Statistik NLP (1990-2010 yillar) 1980-yillarga qadar tabiiy tillarni qayta ishlash tizimlarining ko'pchiligi qo'lda yozilgan qoidalarning murakkab to'plamiga asoslangan edi. 1980-yillarning oxiridan boshlab, tilni qayta ishlash uchun mashina o'rganish algoritmlarini joriy etish bilan tabiiy tilni qayta ishlashda inqilob yuz berdi. Bunga hisoblash quvvatining barqaror o'sishi (qarang. Mur qonuni ) va Xomskiyning tilshunoslik nazariyalari (masalan , transformatsion grammatika ) hukmronligining asta-sekin kamayishi bilan bog'liq edi, ularning nazariy asoslari mashinani o'rganish yondashuviga asos bo'lgan korpus lingvistikasi turini to'xtatdi. tilni qayta ishlashga. 1990-yillar : NLP-da statistik usullar bo'yicha ko'plab dastlabki muvaffaqiyatlar mashina tarjimasi sohasida , ayniqsa IBM Research kompaniyasidagi ish tufayli yuzaga keldi. Ushbu tizimlar Kanada parlamenti va Evropa Ittifoqi tomonidan ishlab chiqarilgan mavjud ko'p tilli matnli korpusdan foydalanishga muvaffaq bo'ldi. barcha hukumat ishlarini
tegishli davlat organlarining barcha rasmiy tillariga tarjima qilishni talab qiluvchi qonunlar natijasida. Biroq, boshqa tizimlarning aksariyati ushbu tizimlar tomonidan amalga oshirilgan vazifalar uchun maxsus ishlab chiqilgan korpuslarga bog'liq edi, bu esa ushbu tizimlar muvaffaqiyatining asosiy cheklovi bo'lgan (va ko'pincha shunday bo'lib qolmoqda). Natijada, cheklangan miqdordagi ma'lumotlardan samaraliroq o'rganish usullari bo'yicha ko'plab tadqiqotlar olib borildi. 2000-yillar : Internetning o'sishi bilan 1990-yillarning o'rtalaridan boshlab, ko'payib borayotgan xom (annotatsiya qilinmagan) til ma'lumotlari mavjud bo'ldi. Shunday qilib, tadqiqot nazoratsiz va yarim nazoratli o'rganish algoritmlariga ko'proq e'tibor qaratmoqda. Bunday algoritmlar kerakli javoblar bilan qo'lda izohlanmagan ma'lumotlardan yoki izohli va izohsiz ma'lumotlarning kombinatsiyasidan foydalanishi mumkin. Umuman olganda, bu vazifa nazorat ostida o'rganishga qaraganda ancha qiyin va odatda ma'lum miqdordagi kiritilgan ma'lumotlar uchun kamroq aniq natijalar beradi. Biroq, juda ko'p izohsiz ma'lumotlar mavjud (shu jumladan, boshqa narsalar qatori, World Wide Webning butun mazmuni ), agar foydalanilgan algoritm amaliy bo'lishi uchun etarlicha vaqt murakkabligiga ega bo'lsa, bu ko'pincha past natijalarni qoplaydi. 1.1 TABIIY TILNI QAYTA ISHLASH ( NLP ) Tabiiy tilni qayta ishlash ( NLP ) - tabiiy tilni qayta ishlash. Ushbu bilim sohasi ma'lumotlar fani va sun'iy intellekt (AI) chorrahasida joylashgan. Hammasi mashinalarni inson tillarini tushunishga va matndan ma'no chiqarishga o'rgatishdir. Shuning uchun mashinani o'rganish ko'pincha NLP loyihalarining bir qismidir. Nima uchun bugungi kunda ko'plab tashkilotlar NLPga qiziqish bildirmoqda? Avvalo, chunki bu texnologiyalar ularga qimmatli g'oyalar va yechimlarning keng doirasini taqdim etishi mumkin. Ular iste'molchilar mahsulot bilan aloqa qilishda duch kelishi mumkin bo'lgan til muammolarini hal qila oladilar. Google, Amazon yoki Facebook kabi texnologiya gigantlari ushbu tadqiqot yo'nalishiga millionlab dollar sarflashmoqda. Ushbu sarmoya ortida o'zlarining chatbotlari, virtual yordamchilari, tavsiya qiluvchi tizimlari va boshqa mashina o'rganishga asoslangan yechimlarni kuchaytirish istagi bor. NLP ilg'or hisoblash ko'nikmalariga tayanganligi sababli, ishlab chiquvchilar mavjud bo'lgan eng yaxshi vositalarga muhtoj. Ushbu vositalar NLP yondashuvlari va tabiiy tillar bilan ishlay oladigan xizmatlarni yaratish algoritmlaridan maksimal darajada foydalanishga yordam berishi kerak.
1.2 NATURAL LANGUAGE TOOLKIT (NLTK) NLTK Python - da tasniflash , stemming , teglash , tahlil qilish va semantik fikrlash kabi vazifalarni qo ' llab - quvvatlaydigan muhim kutubxonadir . Bu tabiiy tilni qayta ishlash va mashinani o'rganish uchun asosiy vositangiz. Bugungi kunda u NLP va mashinani o'rganishni endigina boshlayotgan Python dasturchilari uchun ta'lim asosi bo'lib xizmat qiladi. Kutubxona Pensilvaniya universitetida Stiven Bird va Edvard Lauper tomonidan ishlab chiqilgan. U NLP ning ilg'or tadqiqotlarida muhim rol o'ynadi. NLTK, boshqa Python kutubxonalari va vositalari bilan bir qatorda, endi butun dunyo universitetlari tomonidan o'z o'quv dasturlarida qo'llaniladi. Kutubxona juda ko'p qirrali, ammo (va buni tan olish kerak!) uni tabiiy tilni qayta ishlash uchun ishlatish qiyin. NLTK juda sekin bo'lishi mumkin va tez rivojlanayotgan sanoat foydalanish talablariga javob bermaydi . O'rganish egri chizig'i juda keskin, ammo ishlab chiquvchilar ushbu foydali kitob kabi resurslardan foydalanishlari mumkin . Unda siz ushbu asboblar to'plami qo'llab- quvvatlaydigan tilni qayta ishlash vazifalari ortidagi tushunchalar haqida ko'proq bilib olasiz. 2. Textblo TextBlob Python-da NLP sayohatini boshlagan ishlab chiquvchilar uchun majburiydir. NLP ga birinchi kirish uchun ideal. TextBlob yangi boshlanuvchilarga his-tuyg'ularni tahlil qilish, POS belgilarini belgilash yoki ism iboralarini chiqarish kabi asosiy NLP vazifalarini o'zlashtirishga yordam beradigan oddiy interfeys bilan ta'minlaydi. Python bilan NLPga birinchi qadamlarini qo'ymoqchi bo'lgan har bir kishi ushbu kutubxonadan foydalanishi kerak deb hisoblaymiz. Prototiplarni loyihalashda juda foydali. Biroq, u NLTK ning asosiy kamchiliklarini ham meros qilib oldi. Ishlab chiqarishda NLP Python-dan foydalanish talablariga duch kelgan ishlab chiquvchilarga samarali yordam berish uchun ushbu kutubxona juda sekin. 3. Asosiy NLP Ushbu kutubxona Stenford universitetida ishlab chiqilgan va Java tilida yozilgan. Biroq, u ko'plab tillar, jumladan Python uchun o'ramlar bilan birga keladi, bu esa Python-da tabiiy tilni qayta ishlashda o'zini sinab ko'rmoqchi bo'lgan ishlab chiquvchilar uchun foydali bo'ladi . CoreNLP ning eng katta foydasi nimada ? Kutubxona haqiqatan ham tez va mahsulot ishlab chiqish muhitida yaxshi ishlaydi. Bundan tashqari, CoreNLP ning ba'zi komponentlari NLTK bilan birlashtirilishi mumkin, bu muqarrar ravishda ikkinchisining samaradorligini oshiradi. 4. Gensim