logo

Pythonda tabiiy tillarga ishlov berish kutubxonalari bilan ishlash

Yuklangan vaqt:

12.08.2023

Ko'chirishlar soni:

0

Hajmi:

2333 KB
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 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. 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. 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  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 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 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', '.'] 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 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', "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;  \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 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 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. 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 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  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   : 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 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: 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 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 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  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 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 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.   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 izohlash   jarayonining   murakkablashuvisiz,   ishlaydigan   odam   sonining   tegishli
o'sishini talab qiladi. 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   . 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

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