Raqobatchilar yordamida ichki optimallashtirishni takomillashtirish. Tilshunoslikda N-gramm alifbo n grammdan foydalangan holda dastur

N-grammlardan foydalanish

N-grammlardan keng tarqalgan foydalanish

  • Kosmosdan Yerning bir qator sun'iy yo'ldosh tasvirlarini klasterlash uchun ma'lumotlarni olish, so'ngra tasvirda Yerning qaysi aniq qismlari borligini aniqlash;
  • genetik ketma-ketlikni qidirish,
  • genetika sohasida hayvonlarning o'ziga xos turlaridan DNK namunalari to'planganligini aniqlash uchun foydalaniladi;
  • kompyuterni siqishda,
  • N-gramm yordamida tovush bilan bog'liq ma'lumotlar odatda indekslanadi.

Shuningdek, N-grammalar tabiiy tilni qayta ishlashda keng qo'llaniladi.

Tabiiy tilni qayta ishlash ehtiyojlari uchun N-grammlardan foydalanish

Tabiiy tilni qayta ishlash sohasida N-grammalar, birinchi navbatda, ehtimollik modellari asosida bashorat qilish uchun ishlatiladi. N-gramm modeli, agar oldingi barcha so'zlar ma'lum bo'lsa, N-grammning oxirgi so'zining ehtimolligini hisoblab chiqadi. Tilni modellashtirishda ushbu yondashuvdan foydalanilganda, har bir so'zning ko'rinishi faqat oldingi so'zlarga bog'liq deb hisoblanadi.

N-grammdan yana bir foydalanish plagiatni aniqlashdir. Agar matn n-gramm bilan ifodalangan bir nechta kichik bo'laklarga bo'lingan bo'lsa, ularni bir-biri bilan solishtirish va shu bilan nazorat qilinadigan hujjatlarning o'xshashlik darajasini olish oson. N-grammasi ko'pincha matn va tilni turkumlash uchun muvaffaqiyatli ishlatiladi. Bundan tashqari, ular matnli ma'lumotlardan bilim olish imkonini beruvchi funktsiyalarni yaratish uchun ishlatilishi mumkin. N-gramdan foydalanib, noto'g'ri yozilgan so'zlarni almashtirish uchun nomzodlarni samarali topishingiz mumkin.

Google tadqiqot loyihalari

Google tadqiqot markazlari keng ko'lamli tadqiqot va ishlanmalar uchun N-gram modellaridan foydalangan. Bular qatoriga bir tildan boshqa tilga statistik tarjima, nutqni aniqlash, imloni tuzatish, maʼlumot olish va boshqalar kabi loyihalar kiradi. Ushbu loyihalarning maqsadlari uchun bir necha trillion so'zlarni o'z ichiga olgan korpus matnlari ishlatilgan.

Google o'zining akademik korpusini yaratishga qaror qildi. Loyiha Google teracorpus deb ataladi va umumiy veb-saytlardan to'plangan 1 024 908 267 229 so'zni o'z ichiga oladi.

n-grammlarni ajratib olish usullari

Turli masalalarni yechishda N-grammalardan tez-tez foydalanilganligi sababli ularni matndan ajratib olish uchun ishonchli va tezkor algoritm zarur. N-grammlarni ajratib olish uchun mos vosita cheksiz matn hajmi bilan ishlash, tezkor ishlash va mavjud resurslardan samarali foydalanish imkoniyatiga ega bo'lishi kerak. Matndan N-gramm olishning bir necha usullari mavjud. Ushbu usullar turli printsiplarga asoslanadi:

Eslatmalar (tahrirlash)

Shuningdek qarang


Wikimedia fondi. 2010 yil.

  • n-tv
  • N-kaderin

Boshqa lug'atlarda "N-gram" nima ekanligini ko'ring:

    GRAM- (frantsuz gramma, yunoncha gramma tire dan). Birlik frantsuzcha. vazni = distillangan suvning 1 kub santimetr og'irligi = 22,5 rus. ulushlar. Rus tiliga kiritilgan xorijiy so'zlarning lug'ati. Chudinov AN, 1910. GRAM - Frantsiyada og'irlik o'lchov birligi ... Rus tilidagi xorijiy so'zlar lug'ati

    gramm- gramm, jins. pl. gramm va ruxsat etilgan (og'zaki nutqda raqamlardan keyin) gramm. Yuz gramm (gramm). Yangi shaklni, jinsni himoya qilishda. hol pl. gramm soni, rus tili bo'yicha mutaxassis yozuvchi K. Chukovskiy so'zladi. U o'zining "Hayot kabi tirik" kitobida shunday yozgan: ... ... Zamonaviy rus tilida talaffuz va stress qiyinchiliklari lug'ati

    GRAM- GRAM, gramm, er. (yunoncha grammatika belgisi, harfdan). Metrik birlikdagi asosiy og'irlik birligi, 1 kub santimetr suvning og'irligiga teng. Bir gramm kilogrammning 1/400 qismini tashkil qiladi. ❖ Gram atom (fizik) - uning atom og'irligiga teng bo'lgan moddaning grammlari soni ... ... Izohli lug'at Ushakova

    grammli rentgen- gramm rentgen / n, gramm rentgen / on, jins. pl. gramm rentgen va gramm rentgen nurlari ... Birga. Alohida. Defis bilan chizilgan.

    gramm- Gram, bu oddiy so'z ikki holat bo'lmasa, xatolar lug'atiga kiritilmagan bo'lardi; birinchidan, agar siz mutlaqo to'g'ri til bilan o'zini namoyon qilmoqchi bo'lsangiz, do'konga kelganingizda, sotuvchini to'g'ri so'z bilan hayratda qoldiring: Menga ikki yuz gramm torting (yo'q ... ... Rus tili xatolar lug'ati

    GRAM-ATOM- ATOM GRAM, massasi grammda uning ATOM MASSASIGA teng bo'lgan element miqdori. U SI birligi mol bilan almashtirildi. Masalan, vodorod atomining bir grammi (H, atom massasi = 1) bir grammga teng. b> GRAM EKVIVALENT, uning grammdagi vazni ... ... Ilmiy-texnik entsiklopedik lug'at

    GRAM- GRAM, ah, jins. pl. gramm va gramm, er. Massa birligi ichida o'nlik tizim o'lchovlar, kilogrammning mingdan bir qismi. Bir gramm (no) hech narsa (so'zlashuv) umuman emas, umuman emas. Bu odamda (yo'q) vijdon bor. | adj. gramm, oh, oh. Aqlli ...... Ozhegovning izohli lug'ati

    gramm- a; pl. jins. gramm va gramm; m [frantsuz. gramm] Massaning metrik birligi, kilogrammning mingdan bir qismi. ◊ Bir (bir) gramm emas. Umuman emas, umuman emas. l xonada. bir gram yolg'on emas. Hech kimda zarracha vijdon yo'q. * * * gramm (frantsuz ... ensiklopedik lug'at

    Gram Zenob Teofil- (Gramme) (1826 1901), elektrotexnika muhandisi. Belgiyada tug'ilgan, Frantsiyada ishlagan. Halqali armatura bilan amaliy foydalanish mumkin bo'lgan elektr generatoriga patent oldi (1869). U elektr mashinalarining sanoat ishlab chiqarishiga asos solgan. * * * GRAM Zenob ...... ensiklopedik lug'at

    gram-atom- moddaning grammdagi miqdori, son jihatdan uning atom massasiga teng. Termindan foydalanish tavsiya etilmaydi. SIda moddaning miqdori mollarda ifodalanadi. * * * GRAM ATOM GRAM ATOM, moddaning grammdagi miqdori, son jihatdan uning atom massasiga teng (qarang ... ensiklopedik lug'at

    gramm-molekula- moddaning grammdagi miqdori, son jihatdan uning molekulyar og'irligiga teng. Termindan foydalanish tavsiya etilmaydi. SIda moddaning miqdori mollarda ifodalanadi. * * * GRAM MOLEKULASI GRAM MOLEKULA, grammdagi moddaning miqdori, son jihatdan unga teng ... ... ensiklopedik lug'at

,

Ko'rib chiqildi N-grammalar lingvistik voqelikni belgilash vositasi va namunaviy konstruksiya sifatida. Modelning ulanishi N-grammalar va rasmiy grammatika. Ehtimoliy modellarni qo'llash bilan bog'liq kamchiliklar va qarama-qarshiliklarga e'tibor qaratiladi.

Kirish

Rasmiy ta'rifdan boshlaylik. Bir qancha chekli alifbo berilsin VT={wi), qayerda wi- alohida belgi. Alifbo belgilaridan tashkil topgan chekli uzunlikdagi zanjirlar (torlar) to'plami VT, alifbo tili deb ataladi VT va belgilandi L (VT)... Zanjirni tildan ajrating L (VT) bu tilda bayon deb ataladi. O'z navbatida, N-alifbodagi gramm VT uzunlikdagi zanjir deb ataladi N. N-gram qandaydir gapga mos kelishi mumkin, uning pastki qatori bo'lishi yoki kiritilmasligi mumkin L (VT).

Mana bir nechta misollar N-gram.

3. , N- rus tilining grammlari. // Ushbu to'plam.

4. Glants S. Biotibbiyot statistikasi. Per. ingliz tilidan ed. va. M., 1999 yil.

5. Tasviriy tilshunoslik. G.Glisonning "Tasviriy lingvistikaga kirish" kitobiga so'zboshi. M., 1959 yil.

6. Nazariy va amaliy tilshunoslik. M., 1968 yil.

8. , Avtomatik nutq sintezida pauza. // Nutq tadqiqoti nazariyasi va amaliyoti. M. 1999 yil.

9. Minsky Aql va kognitiv ongsiz mantiq. // Chet tilshunosligida yangilik. Nashr XXIII. M., 1988 yil.

10. Slobin D., Green J. Psixolingvistika. M., 1976 yil

11. Ehtimollar nazariyasi. M., 1972 yil.

12. Fu K. Naqshlarni aniqlashda strukturaviy usullar. M., 1977 yil.

13. Xarris T. Stoxastik jarayonlarning tarmoqlanishi nazariyasi. M., 1966 yil.

14. Brill E. va boshqalar. Beyond N-grams: lingvistik murakkablik tilni modellashtirishni yaxshilay oladimi?

15. But T. Rasmiy tillarning ehtimollik bilan ifodalanishi. // IEEE yillik simp. Kommutatsiya va avtomatlar nazariyasi. 1969 yil.

16. Jelinek F. Nutqni tanib olish uchun o'z-o'zidan tashkil etilgan tilni modellashtirish. // Nutqni aniqlash bo'yicha o'qishlar. 1989 yil.

17. Jechiziq F., Lafferti J. Stoxastik kontekstsiz grammatika bo'yicha boshlang'ich pastki qator hosil qilish ehtimolini hisoblash. // Hisoblash tilshunosligi, jild.

18. Xarris Z. S. Strukturaviy tilshunoslikda metod. Chikago, 1951 yil.

19. Lashley K. Xulq-atvorda ketma-ket tartib muammosi. // Psixolingvistika: O'qishlar kitobi, N. Y. 1961.

20. Shlesinger E. Gapning tuzilishi va o'qish jarayoni. Mouton. 1968 yil.

21. Shiber S. Tabiiy tilning kontekstsizligiga qarshi dalillar. // Tilshunoslik va falsafa, jild.

22. Sola hovuzi I. Bugungi kunda kontentni tahlil qilish tendentsiyalari. // Psixolingvistika: O'qishlar kitobi, N. Y. 1961

23. Stolke A., Segal J. Stoxastik kontekstsiz grammatikalardan aniq n-gramm ehtimolliklari. // ACLning 32-yillik yig'ilishi materiallari. 1994 yil.

Ushbu algoritmlar ilgari noma'lum matnda qidirish uchun mo'ljallangan va ulardan, masalan, matnda foydalanish mumkin matn muharrirlari, hujjatni ko'ruvchilar yoki sahifani qidirish uchun veb-brauzerlar. Ular matnni oldindan qayta ishlashni talab qilmaydi va ma'lumotlarning uzluksiz oqimini boshqarishi mumkin.

Lineer qidiruv

Berilgan metrikani (masalan, Levenshteyn ko'rsatkichi) kiritilgan matndagi so'zlarga oddiy ketma-ket qo'llash. Cheklangan metrik bilan foydalanilganda, bu usul optimal ishlash imkonini beradi. Ammo, shu bilan birga, ko'proq k, ish vaqti qanchalik ko'p oshadi. Asimptotik vaqtni hisoblash - O (kn).

Bitap (shuningdek, Shift-Or yoki Baeza-Yates-Gonnet nomi bilan ham tanilgan va uning modifikatsiyasi Vu-Manber)

Algoritm Bitap va uning turli modifikatsiyalari ko'pincha indekslanmasdan loyqa qidiruv uchun ishlatiladi. Uning o'zgarishi, masalan, standart grepga o'xshash funktsiyalarni bajaradigan, ammo xatolarni qo'llab-quvvatlaydigan unix-utility agrepda qo'llaniladi. qidiruv so'rovi va hatto oddiy iboralarni qo'llash uchun cheklangan imkoniyatlarni taqdim etish.

Birinchi marta ushbu algoritm g'oyasi fuqarolar tomonidan taklif qilingan Rikardo Baeza-Yates va Gaston gonnet 1992 yilda tegishli maqolani nashr qilish orqali.
Algoritmning asl nusxasi faqat belgilarni almashtirish bilan shug'ullanadi va aslida masofani hisoblab chiqadi Hamming... Ammo biroz keyinroq Sun wu va Udi manber masofani hisoblash uchun ushbu algoritmni o'zgartirishni taklif qildi Levenshteyn, ya'ni. kiritish va oʻchirishni qoʻllab-quvvatlashni joriy qildi va uning asosida agrep yordam dasturining birinchi versiyasini ishlab chiqdi.






Olingan qiymat

Qayerda k- xatolar soni; j- belgilar indeksi, s x - belgilar niqobi (niqobda bitta bitlar so'rovda berilgan belgining pozitsiyalariga mos keladigan pozitsiyalarda joylashgan).
So'rovning mos kelishi yoki mos kelmasligi natijada R vektorining oxirgi biti bilan aniqlanadi.

Ushbu algoritmning yuqori tezligi hisob-kitoblarning bit parallelligi tufayli ta'minlanadi - bir operatsiyada bir vaqtning o'zida 32 yoki undan ortiq bitlar bo'yicha hisoblashlarni amalga oshirish mumkin.
Shu bilan birga, trivial dastur uzunligi 32 dan oshmaydigan so'zlarni qidirishni qo'llab-quvvatlaydi. Bu cheklov standart turdagi kenglikdan kelib chiqadi. int(32-bitli arxitekturalarda). Yuqori o'lchamli turlardan ham foydalanishingiz mumkin, ammo bu algoritmni ma'lum darajada sekinlashtirishi mumkin.

Ushbu algoritmning asimptotik ish vaqtiga qaramay O (kn) chiziqli usul bilan mos keladi, u uzoq so'rovlar va xatolar soni bilan ancha tezdir k 2 dan ortiq.

Sinov

Sinov 3,2 million so'zdan iborat matnda o'tkazildi, o'rtacha so'z uzunligi 10 ta.
Aniq qidiruv
Qidiruv vaqti: 3562 ms
Levenshtein metrikasi yordamida qidiring
Qidiruv vaqti: k = 2: 5728 ms
Qidiruv vaqti: k = 5: 8385 ms
Wu-Manber modifikatsiyalari bilan Bitap algoritmidan foydalanib qidiring
Qidiruv vaqti: k = 2: 5499 ms
Qidiruv vaqti: k = 5: 5928 ms

Shubhasiz, Bitap algoritmidan farqli o'laroq, o'lchov yordamida oddiy ro'yxatga olish xatolar soniga bog'liq. k.

Shunga qaramay, o'zgarmagan katta hajmli matnlarni qidirish haqida gap ketganda, qidiruv vaqtini bunday matnga oldindan ishlov berish orqali sezilarli darajada qisqartirish mumkin. indekslash.

Indekslangan noaniq qidiruv algoritmlari (oflayn)

Indekslash bilan barcha loyqa qidiruv algoritmlarining o'ziga xos xususiyati shundaki, indeks manba matnidan yoki istalgan ma'lumotlar bazasidagi yozuvlar ro'yxatidan tuzilgan lug'at yordamida tuziladi.

Bu algoritmlar muammoni hal qilishda turlicha yondashuvlardan foydalanadi - ularning ba'zilari aniq qidirish uchun qisqartirishdan foydalanadi, boshqalari turli fazoviy tuzilmalarni qurish uchun metrikaning xususiyatlaridan foydalanadi va hokazo.

Avvalo, dastlabki bosqichda dastlabki matndan so'zlar va ularning matndagi o'rnini o'z ichiga olgan lug'at tuziladi. Bundan tashqari, qidiruv natijalari sifatini yaxshilash uchun so'zlar va iboralarning chastotalarini hisoblashingiz mumkin.

Indeks, xuddi lug'at kabi, xotiraga to'liq yuklangan deb taxmin qilinadi.

Lug'atning taktik va texnik xususiyatlari:

  • Manba matni - Moshkov kutubxonasidan (lib.ru) 8,2 gigabayt materiallar, 680 million so'z;
  • Lug'at hajmi - 65 megabayt;
  • So'zlar soni - 3,2 million;
  • O'rtacha so'z uzunligi - 9,5 belgi;
  • O'rtacha kvadrat so'z uzunligi (ba'zi algoritmlarni baholashda foydali bo'lishi mumkin) - 10,0 belgi;
  • Alifbo - Katta harf A-Z harflari, E holda (ba'zi operatsiyalarni soddalashtirish uchun). Alfavit bo'lmagan belgilarni o'z ichiga olgan so'zlar lug'atga kiritilmagan.
Lug'at hajmining matn hajmiga bog'liqligi qat'iy chiziqli emas - ma'lum hajmgacha, 500 ming so'z uchun 15% dan 5 million so'z uchun 5% gacha bo'lgan so'zlarning asosiy ramkasi shakllanadi va keyin. qaramlik chiziqli yaqinlashadi, asta-sekin kamayadi va 680 million so'zda 0,5% ga etadi. O'sishning keyingi saqlanishi ko'pincha noyob so'zlar bilan ta'minlanadi.

Namunalarni kengaytirish algoritmi

Bu algoritm ko'pincha lug'at hajmi kichik bo'lgan yoki tezlik asosiy mezon bo'lmagan imlo tekshiruvi tizimlarida (ya'ni imlo tekshiruvi "ah") qo'llaniladi.
Bu loyqa qidiruv muammosini aniq qidiruv muammosiga qisqartirishga asoslangan.

Dastlabki so'rovdan "noto'g'ri" so'zlar to'plami tuziladi, ularning har biri uchun lug'atda aniq qidiruv amalga oshiriladi.

Uning ishlash vaqti k xatolar soniga va A alifbosining o'lchamiga bog'liq va ikkilik lug'at qidiruvidan foydalanganda u:

Masalan, uchun k = 1 va rus alifbosidagi 7 uzunlikdagi so'zlar (masalan, "Timsoh") bo'lsa, noto'g'ri so'zlar to'plami taxminan 450 ni tashkil qiladi, ya'ni lug'atga 450 ta so'rov qilish kerak bo'ladi, bu juda maqbuldir.
Lekin allaqachon k = 2 bunday to'plamning o'lchami 115 mingdan ortiq variantni tashkil qiladi, bu kichik lug'atning to'liq ro'yxatiga yoki bizning holatlarimizda 1/27 ga to'g'ri keladi va shuning uchun ish vaqti juda katta bo'ladi. Shu bilan birga, ushbu so'zlarning har biri uchun lug'atda aniq moslikni izlash kerakligini unutmaslik kerak.

Xususiyatlari:
Algoritmni ixtiyoriy qoidalar bo'yicha "xato" variantlarni yaratish uchun osongina o'zgartirish mumkin va bundan tashqari, lug'atni oldindan qayta ishlashni va shunga mos ravishda qo'shimcha xotirani talab qilmaydi.
Mumkin yaxshilanishlar:
"Noto'g'ri" so'zlarning barcha to'plamini emas, balki ulardan faqat real vaziyatda eng ko'p uchraydigan so'zlarni, masalan, keng tarqalgan imlo xatolarini yoki matn terish xatolarini hisobga olgan holda so'zlarni yaratish mumkin.

Ushbu usul ancha oldin ixtiro qilingan va eng keng tarqalgani hisoblanadi, chunki uni amalga oshirish juda oddiy va u juda yaxshi ishlashni ta'minlaydi. Algoritm quyidagi printsipga asoslanadi:
"Agar A so'zi bir nechta xatolarni hisobga olgan holda B so'ziga to'g'ri kelsa, unda katta ehtimollik bilan ular kamida bitta N uzunlikdagi umumiy pastki qatorga ega bo'ladilar".
Uzunligi N bo'lgan bu pastki qatorlar N-gramm deb ataladi.
Indekslash paytida so'z bunday N-grammlarga bo'linadi va keyin bu so'z ushbu N-grammlarning har biri uchun ro'yxatga kiradi. Qidiruv jarayonida so'rov ham N-grammlarga bo'linadi va ularning har biri uchun bunday pastki qatorni o'z ichiga olgan so'zlar ro'yxatining ketma-ket takrorlanishi amalga oshiriladi.

Amalda eng ko'p ishlatiladigan trigrammalar - 3 uzunlikdagi pastki satrlar. N ning kattaroq qiymatini tanlash minimal so'z uzunligini cheklashga olib keladi, bunda allaqachon xatolarni aniqlash mumkin bo'ladi.

Xususiyatlari:
N-gramm algoritmi barcha mumkin bo'lgan noto'g'ri yozilgan so'zlarni topa olmaydi. Masalan, VOTKA so'zini olsak va uni trigrammalarga ajratsak: VO T CA → VO T O T TO T CA - ularning barchasida T xatosi borligini ko'rishingiz mumkin. Shunday qilib, "VODKA" so'zi topilmaydi, chunki unda ushbu trigrammalarning hech biri mavjud emas va tegishli ro'yxatlarga kiritilmaydi. Shunday qilib, so'z uzunligi qanchalik qisqa bo'lsa va undagi xatolar qancha ko'p bo'lsa, so'rovning N-grammlariga mos keladigan ro'yxatlarga kiritilmasligi va natijada mavjud bo'lmasligi ehtimoli shunchalik yuqori bo'ladi.

Shu bilan birga, N-gramm usuli o'z ixtiyoriy xususiyatlar va murakkablik bilan o'z ko'rsatkichlaringizdan foydalanish uchun to'liq imkoniyatlarni qoldiradi, ammo buning uchun siz to'lashingiz kerak - undan foydalanganda siz hali ham lug'atning taxminan 15% dan ortig'ini takrorlashingiz kerak, bu juda katta. katta lug'atlar uchun ko'p.

Mumkin yaxshilanishlar:
Siz N-gramm xesh jadvallarini so'z uzunligi va so'zdagi N-gramm pozitsiyasi bo'yicha ajratishingiz mumkin (modifikatsiya 1). Qanday qilib qidiruv so'zi va so'rovining uzunligi dan ortiq farq qilishi mumkin emas k va N-grammning so'zdagi o'rinlari k dan ko'p bo'lmagan farq qilishi mumkin. Shunday qilib, faqat ushbu N-grammning so'zdagi pozitsiyasiga mos keladigan jadvalni, shuningdek, chapdagi k jadvalni va o'ngdagi k jadvalni tekshirish kerak bo'ladi, ya'ni. Jami 2k + 1 qo'shni jadvallar.

Jadvallarni so'z uzunligiga bo'lish va shunga o'xshash faqat qo'shnilarini ko'rish orqali ko'rish uchun zarur bo'lgan to'plam hajmini yanada kamaytirishingiz mumkin. 2k + 1 jadvallar (2-modda).

Bu algoritm L.M.Boytsovning maqolasida tasvirlangan. Imzo bo'yicha xeshlash. U xesh-jadvalda xesh (imzo) sifatida ishlatiladigan bit pozitsiyalari ko'rinishidagi so'zning "tuzilmasi" ning juda aniq tasviriga asoslanadi.

Indekslash jarayonida bunday xeshlar har bir so'z uchun hisoblab chiqiladi va lug'at so'zlari ro'yxatining ushbu xeshga muvofiqligi jadvalga kiritiladi. Keyin, qidiruv vaqtida so'rov uchun xesh hisoblanadi va asl nusxadan k bitdan ko'p bo'lmagan farq qiluvchi barcha qo'shni xeshlar qidiriladi. Ushbu xeshlarning har biri uchun unga mos keladigan so'zlar ro'yxati sanab o'tiladi.

Xeshni hisoblash jarayoni - xeshning har bir biti alifbodagi belgilar guruhi bilan bog'langan. Bit 1 holatida i xesh asl so'zda dan belgi borligini bildiradi i-chi alifbo guruhlari. So'zdagi harflarning tartibi umuman muhim emas.

Bitta belgini o'chirish yoki xesh qiymatini o'zgartirmaydi (agar so'zda bir xil alifbo guruhidagi belgilar mavjud bo'lsa) yoki bu guruhga mos keladigan bit 0 ga o'zgaradi. Kiritilganda xuddi shu tarzda bitta bit 1 ga o'rnatiladi, aks holda hech qanday o'zgarishlar bo'lmaydi. Belgilarni almashtirishda hamma narsa biroz murakkabroq - xesh butunlay o'zgarishsiz qolishi yoki 1 yoki 2 pozitsiyada o'zgarishi mumkin. O'zgartirishlar bilan hech qanday o'zgarishlar ro'y bermaydi, chunki yuqorida aytib o'tilganidek, xeshni yaratishda belgilar tartibi hisobga olinmaydi. Shunday qilib, k xatoni to'liq qoplash uchun hech bo'lmaganda o'zgartirish kerak 2k oz xashda.

Ishlash vaqti, o'rtacha, k "tugallanmagan" (qo'shishlar, o'chirishlar va ko'chirishlar, shuningdek almashtirishlarning kichik qismi) bilan:

Xususiyatlari:
Bitta belgini almashtirishda bir vaqtning o'zida ikkita bit o'zgarishi mumkinligi sababli, masalan, bir vaqtning o'zida 2 bitdan ko'p bo'lmagan buzilishlarni amalga oshiradigan algoritm haqiqatda to'liq natijalarni bermaydi. ikkita almashtiriladigan so'zlarning muhim (xesh hajmining alifboga nisbatiga qarab) bo'lmaganligi (va xesh hajmi qanchalik katta bo'lsa, belgilarni tez-tez almashtirish bir vaqtning o'zida ikkita bitning buzilishiga olib keladi va natija kamroq to'liq bo'ladi). Bundan tashqari, ushbu algoritm prefikslarni qidirishga ruxsat bermaydi.

BK daraxtlari

Daraxtlar Burkhard-Keller metrik daraxtlar bo'lsa, bunday daraxtlarni qurish algoritmlari uchburchak tengsizligiga mos keladigan metrikaning xususiyatiga asoslanadi:

Bu xususiyat o'lchovlarga ixtiyoriy o'lchamlarning metrik bo'shliqlarini yaratishga imkon beradi. Bunday metrik bo'shliqlar shart emas Evklid, shuning uchun, masalan, ko'rsatkichlar Levenshteyn va Damerau-Levenshteyn shakl evklid bo'lmagan bo'sh joy. Ushbu xususiyatlardan kelib chiqib, siz Barkhard-Keller daraxtlari bo'lgan bunday metrik fazoda qidiradigan ma'lumotlar strukturasini qurishingiz mumkin.

Yaxshilanishlar:
Ba'zi ko'rsatkichlarning cheklangan masofani hisoblash qobiliyatidan cho'qqining avlodlarigacha bo'lgan maksimal masofa va natijada olingan masofa yig'indisiga teng yuqori chegarani o'rnatish orqali foydalanishingiz mumkin, bu jarayonni biroz tezlashtiradi:

Sinov

Sinov noutbukda o'tkazildi Intel Core Duo T2500 (2GHz / 667MHz FSB / 2MB), 2Gb RAM, OS - Ubuntu 10.10 Desktop i686, JRE - OpenJDK 6 yangilanishi 20.

Sinov Damerau-Levenshtein masofasi va xatolar soni yordamida amalga oshirildi k = 2... Indeks hajmi lug'at bilan birga ko'rsatilgan (65 MB).

Indeks hajmi: 65 MB
Qidiruv vaqti: 320ms / 330ms
Natijalarning to'liqligi: 100%

N-gram (asl)
Indeks hajmi: 170 MB
Indeksni yaratish vaqti: 32 s
Qidiruv vaqti: 71ms / 110ms
Natijalarning toʻliqligi: 65%
N-gram (modifikatsiya 1)
Indeks hajmi: 170 MB
Indeksni yaratish vaqti: 32 s
Qidiruv vaqti: 39ms / 46ms
Natijalarning toʻliqligi: 63%
N-gram (modifikatsiya 2)
Indeks hajmi: 170 MB
Indeksni yaratish vaqti: 32 s
Qidiruv vaqti: 37ms / 45ms
Natijalarning toʻliqligi: 62%

Indeks hajmi: 85 MB
Indeksni yaratish vaqti: 0,6 s
Qidiruv vaqti: 55 ms
Natijalarning toʻliqligi: 56,5%

BK daraxtlari
Indeks hajmi: 150 MB
Indeksni yaratish vaqti: 120 s
Qidiruv vaqti: 540 ms
Natijalarning toʻliqligi: 63%

Jami

Ko'pgina indekslangan loyqa qidiruv algoritmlari haqiqatan ham pastki chiziqli emas (ya'ni, asimptotik ish vaqtiga ega) O (log n) yoki undan past) va ularning tezligi odatda bevosita bog'liq N... Shunga qaramay, ko'plab yaxshilanishlar va yaxshilanishlar juda katta hajmdagi lug'atlar bilan ham qisqa muddatga erishishga imkon beradi.

Boshqa narsalar qatori, ma'lum bir fan sohasiga allaqachon qo'llaniladigan turli xil texnika va texnikalarni moslashtirishga asoslangan juda ko'p turli xil va samarasiz usullar mavjud. Bunday usullar orasida prefiks daraxtlarini (Trie) loyqa qidiruv muammolariga moslashtirish bor, men uning past samaradorligi tufayli e'tibor bermadim. Ammo original yondashuvlarga asoslangan algoritmlar ham mavjud, masalan, algoritm Maassa-Novaka, garchi u subchiziqli asimptotik ish vaqtiga ega bo'lsa-da, ulkan indeks o'lchami ko'rinishida paydo bo'ladigan bunday vaqtinchalik taxmin orqasida yashiringan ulkan konstantalar tufayli juda samarasizdir.

Realda loyqa qidiruv algoritmlaridan amaliy foydalanish qidiruv tizimlari fonetik algoritmlar bilan chambarchas bog'liq bo'lib, leksik o'zboshimchalik algoritmlari - bir xil so'zning turli xil so'z shakllarining asosiy qismini ajratib ko'rsatish (masalan, bunday funksionallik Snowball va Yandex mystem tomonidan taqdim etilgan), shuningdek, statistik ma'lumotlarga asoslangan reyting yoki murakkab murakkab ko'rsatkichlar.

  • Levenshtein masofasi (qirqish va prefiks opsiyasi bilan);
  • Damerau-Levenshtein masofasi (qirqish va prefiks opsiyasi bilan);
  • Bitap algoritmi (Shift-OR / Shift-AND Wu-Manber modifikatsiyalari bilan);
  • Namuna kengaytirish algoritmi;
  • N-gramm usuli (original va o'zgartirishlar bilan);
  • Imzo bo'yicha xesh usuli;
  • BK daraxtlari.
Men kodni tushunishni osonlashtirmoqchi edim, ammo amaliy foydalanish uchun etarlicha samarali. JVM dan oxirgi sharbatlarni siqish mening vazifamning bir qismi emas edi. Rohatlaning.

Shuni ta'kidlash kerakki, ushbu mavzuni o'rganish jarayonida menda indeks hajmining o'rtacha o'sishi va erkinlikning ba'zi cheklanishi tufayli qidiruv vaqtini kattalik tartibiga qisqartirishga imkon beradigan o'zimning ba'zi ishlanmalarim bor. ko'rsatkichlarni tanlash. Ammo bu butunlay boshqacha hikoya.

Men ba'zi n-gramm ilovalarini amalga oshirmoqchiman (afzalroq PHP da).

Qaysi turdagi n-grammlar ko'p maqsadlar uchun ko'proq mos keladi? So'z darajasi yoki belgilar darajasi n-gramm darajasi? PHP da n-grammatik tokenizer qanday amalga oshirilishi mumkin?

Birinchidan, men N-gramm nima ekanligini bilmoqchiman. Bu to `g` ri? Men n-grammni shunday tushunaman:

Jumla: "Men Nyu-Yorkda yashayman".

so'z darajasidagi biramlar (n uchun 2): "# Men", "Men yashayman", "Men yashayman", "Nyu-Yorkda", "NY #"

belgilar darajasi biram (n uchun 2): "#I", "I #", "#l", "li", "iv", "ve", "e #", "#i", "in", "n #", "#N", "NY", "Y #"

Ushbu n-gram-bo'laklar qatoriga ega bo'lganingizdan so'ng, siz dublikatlarni tashlab, chastotani belgilaydigan har bir qism uchun hisoblagich qo'shasiz:

so'z darajasidagi bigrammalar:

belgilar darajasining bigramlari:

Bu to'g'rimi?

Bundan tashqari, men n-gramm bilan nima qilishingiz mumkinligi haqida ko'proq bilishni xohlayman:

  • n-gramm yordamida matn tilini qanday aniqlash mumkin?
  • Ikki tilli korpus bo'lmasa ham, mashina tarjimasini n-gramm yordamida amalga oshirish mumkinmi?
  • Spam filtrini qanday yaratish mumkin (spam, jambon)? N-grammlarni Bayes filtri bilan birlashtirasizmi?
  • Mavzuni qanday topish mumkin? Masalan: basketbol yoki itlar haqida matn bormi? Mening yondashuvim ("itlar" va "basketbol" uchun Vikipediya maqolasi bilan quyidagilarni bajaring): ikkala hujjat uchun n-gramm vektorlarini chizing, ularni normallashtiring, Manxetten / Evklid masofasini hisoblang, natija 1 ga qanchalik yaqin bo'lsa, shuncha yuqori bo'ladi. o'xshashlik bo'ladi

Mening arizamga, ayniqsa oxirgisiga qanday qaraysiz?

Menga yordam bera olasiz degan umiddaman. Oldindan raxmat!

2 ta javob

Word n-gram odatda siz eslatib o'tgan matn tahlili ilovalarining ko'pchiligi uchun foydaliroq bo'ladi, ramziy trigramlar kabi biror narsa berishi mumkin bo'lgan tilni aniqlash bundan mustasno. yuqori ball... Samarali ravishda siz o'zingizni qiziqtirgan har bir tilda matn tanasi uchun n-gramm vektorini yaratasiz va keyin har bir korpusdagi trigrammalarning chastotalarini siz tasniflayotgan hujjatdagi trigrammalar bilan solishtirasiz. Masalan, trigramma, ehtimol, tez-tez paydo bo'ladi ingliz tili nemis tilidan ko'ra va ma'lum darajadagi statistik korrelyatsiyani ta'minlaydi. N-gramm hujjatlariga ega bo'lganingizdan so'ng, sizda keyingi tahlil qilish uchun ko'plab algoritmlar, Baysian filtrlari, N yaqin qo'shni, vektor mashinalarini qo'llab-quvvatlash va boshqalarni tanlashingiz mumkin.

Siz aytib o'tgan ilovalardan mashina tarjimasi, ehtimol, eng uydirma, chunki n-grammning o'zi sizni uzoqqa olib kelmaydi. Kirish faylini n-gramga o'zgartirish - bu ma'lumotlarni keyingi xususiyatlarni tahlil qilish uchun formatga qo'yishning bir usuli, ammo siz ko'plab kontekstli ma'lumotlarni yo'qotib qo'ysangiz, u tarjima uchun foydali bo'lmasligi mumkin.

E'tibor berish kerak bo'lgan narsa shundaki, agar o'lchamlar bir xil bo'lmasa, bitta hujjat uchun vektor va boshqa hujjat uchun vektor yaratish etarli emas. Ya'ni, vektordagi birinchi yozuv bitta hujjatda bo'lishi mumkin emas va boshqa hujjatda bo'lishi mumkin yoki algoritmlar ishlamaydi. Siz shunga o'xshash vektorlarga ega bo'lasiz, chunki aksariyat hujjatlar sizni qiziqtirgan n-grammdan ortiq bo'lmaydi. Ushbu astar shuningdek, tahlilingizga qaysi grammlarni kiritishingizni oldindan hal qilishingizni talab qiladi. Bu ko'pincha nimani saqlash kerakligini hal qilish uchun turli n-grammlarning statistik ahamiyatini hal qilish uchun ikki bosqichli algoritm sifatida amalga oshiriladi. Qo'shimcha ma'lumot olish uchun Google "xususiyatlarini tanlash".

So'zga asoslangan n-gramm va vektor mashinasini qo'llab-quvvatlash ajoyib yo'l mavzuni aniqlash uchun, lekin tasniflagichni tayyorlash uchun sizga "mavzu bo'yicha" va "mavzudan tashqari" mavzular bo'yicha oldindan tasniflangan katta hajmdagi matn kerak. Siz topasiz ko'p miqdorda citeseerx kabi saytlarda ushbu muammoga turlicha yondashuvlarni tushuntiruvchi ilmiy maqolalar. Men bu muammoga Evklid masofaviy yondashuvni tavsiya etmayman, chunki u statistik ahamiyatga asoslangan holda individual n-grammlarni tortmaydi, shuning uchun a, is va of ni o'z ichiga olgan ikkita hujjat Baysianni o'z ichiga olgan ikkita hujjatga qaraganda yaxshiroq mos keladi. Sizni qiziqtirgan n-grammdan to'xtatuvchi so'zlarni olib tashlash buni biroz yaxshilaydi.

Siz n-gramm ta'rifi haqida haqsiz.

Qidiruv tipidagi ilovalar uchun so'z darajasidagi n-grammlardan foydalanishingiz mumkin. Belgilar darajasidagi n-grammlardan matnning o'zini tahlil qilish uchun ko'proq foydalanish mumkin. Masalan, matn tilini aniqlash uchun men harflarning chastotalarini tilning belgilangan chastotalariga nisbatan ishlatgan bo'lardim. Ya'ni, matn taxminan ushbu tildagi harflarning paydo bo'lish chastotasiga mos kelishi kerak.

PHP so'zlari uchun n-grammatik tokenizer strtok yordamida amalga oshirilishi mumkin:

Belgilar uchun splitdan foydalaning:

Keyin massivni xohlaganingizcha istalgan miqdordagi n-grammga bo'lishingiz mumkin.

Bayes filtrlari n-gramm bilan birgalikda ishlatilishi mumkin bo'lgan spam filtrlari sifatida foydalanishga o'rgatilgan bo'lishi kerak. Biroq, u o'rganishi uchun unga ko'p ma'lumot berishingiz kerak.

Sizning oxirgi yondashuvingiz sahifa kontekstini o'rganayotganda juda yaxshi ko'rinadi ... lekin buni qilish hali ham juda qiyin, ammo n-gramm buning uchun yaxshi boshlanish nuqtasi kabi ko'rinadi.


Ta'rif Amaliy masalalar misollari N-gramm tili modelini yaratish n-gramm ehtimolini hisoblash O'quv korpusining siyrakligini yo'q qilish o Qo'shish Smoothing o Witten-Bell Discounting o Good-Tyuring Discounting o Katzs Backoff o O'chirilgan interpolatsiyani baholash Entropiyadan foydalangan holda n-gramm tili modeli


N-gramm - bu qandaydir ketma-ketlikning N elementdan iborat kichik ketma-ketligi. So'z ketma-ketligini ko'rib chiqing. Unigrams mushuk, it, ot, ... Bigrams kichik mushuk, katta it, kuchli ot, ... Trigramlar kichik mushuk yeydi, katta it hurlaydi, kuchli ot yuguradi, ... Ta'rif


Amaliy topshiriqlarga misollar Nutqni aniqlash. Har xil imlodagi baʼzi soʻzlar bir xil talaffuz qilinadi. Vazifa - kontekstda to'g'ri so'zni tanlash. Berilgan mavzu bo'yicha matnlarni yaratish. Misol: Yandex. Annotatsiyalar. Semantik xatolarni qidiring. U aniqlashtirishga harakat qilmoqda - sintaksis nuqtai nazaridan, bu haqiqat, semantika nuqtai nazaridan, yo'q. U bilishga harakat qilmoqda - to'g'ri. Ingliz tilidagi matnlarda aniqlashga urinishdan ko'ra ko'proq uchraydi, ya'ni agar statistik ma'lumotlar mavjud bo'lsa, siz bunday xatolikni topib, yo'q qilishingiz mumkin.


n-grammning til modelini yaratish Sanab o'tilgan amaliy masalalarni yechish uchun N-grammning til modelini yaratish kerak. Modelni yaratish uchun quyidagilar kerak: 1. O'quv korpusidagi n-grammlarning ehtimolliklarini hisoblash. 2. Anti-aliasing usullaridan birini qo'llagan holda, korpusning siyrakligi muammosini bartaraf qiling. 3. Olingan n-gramm tili modelining sifatini entropiya yordamida baholang.


N-gramm ehtimolini hisoblash (1) O'quv korpusida ma'lum n-grammlar turli chastotalar bilan topiladi. Har bir n-gramm uchun biz uning korpusda necha marta paydo bo'lishini hisoblashimiz mumkin. Olingan ma'lumotlarga asoslanib, ehtimollik modelini qurish mumkin, undan keyin ma'lum bir test korpusida n-gramm ehtimolini baholash uchun foydalanish mumkin.


N-gramm ehtimolini hisoblash (2) Misolni ko'rib chiqing. Korpus bitta jumladan iborat bo'lsin: Ular hovuz bo'yida sayr qilishdi, keyin o't ustida yotib, yulduzlarga qarashdi. n-gramm tanlang. Unigrams: They, picknicked, by, ... Bigrams: They picknicked, picknicked by, by the, ... Trigrams They picknicked by, picknicked by the, by the pool, ...


N-gramm ehtimolini hisoblash (3) Endi siz n-grammlarni hisoblashingiz mumkin. Barcha tanlangan bi- va trigrammalar korpusda bir marta sodir bo'ladi. Barcha unigrammalar, so'zdan tashqari, bir marta keladi. The so'zi uch marta keladi. Endi siz har bir n-gramm necha marta sodir bo'lishini bilganingizdan so'ng, siz n-grammning ehtimollik modelini yaratishingiz mumkin. Unigramlarda u so'zining ehtimoli quyidagi formula bo'yicha hisoblanishi mumkin: Masalan, so'z uchun ehtimollik 3/16 bo'ladi (chunki korpusda 16 ta so'z bor, ulardan 3 tasi the so'zi). . O'quv korpusida u bilan uchrashish soni Ular hovuz bo'yida sayr qilishdi, keyin o't ustida yotib, yulduzlarga qarashdi.


1, ehtimollik biroz boshqacha ko'rib chiqiladi. Bigramlar misolini ko'rib chiqing: basseynning bigramma ehtimolini hisoblash kerak bo'lsin. Agar bigrammaning har bir so'zini qandaydir hodisa deb hisoblasak, u holda "title =" (! LANG: N-gramm ehtimolini hisoblash (4) n> 1 bo'lgan n-gramm uchun ehtimollik biroz boshqacha tarzda hisoblanadi. Bigramlar misolini ko'rib chiqaylik: hovuzning bigramma ehtimolini hisoblash kerak bo'lsin.Agar bigrammaning har bir so'zini qandaydir hodisa deb hisoblasak, imon" class="link_thumb"> 9 !} N-gramm ehtimolini hisoblash (4) n> 1 bo'lgan n-gramm uchun ehtimollik biroz boshqacha tarzda hisoblanadi. Bigramlar misolini ko'rib chiqing: basseynning bigramma ehtimolini hisoblash kerak bo'lsin. Agar biz bigrammaning har bir so'zini hodisa deb hisoblasak, u holda hodisalar to'plamining ehtimolini quyidagi formula bo'yicha hisoblash mumkin: Shunday qilib, bigram hovuzining ehtimoli:, bu erda 1, ehtimollik biroz boshqacha ko'rib chiqiladi. Bigramlar misolini ko'rib chiqing: basseynning bigramma ehtimolini hisoblash kerak bo'lsin. Agar bigrammaning har bir so'zini hodisa deb hisoblasak, u holda ehtimollik "> 1 bo'lsa, ehtimollik biroz boshqacha ko'rib chiqiladi. Bigramma holatini ko'rib chiqaylik: bigrammaning ehtimolini hisoblash kerak bo'lsin. Agar biz hisobga olsak. hodisa sifatida bigramma har bir so'z, keyin hodisalar majmui ehtimoli formula bilan hisoblash mumkin : Shunday qilib, bigram hovuz ehtimoli:, bu erda "> 1, ehtimollik bir oz boshqacha hisoblanadi. Bigramlar misolini ko'rib chiqing: basseynning bigramma ehtimolini hisoblash kerak bo'lsin. Agar bigrammaning har bir so'zini qandaydir hodisa deb hisoblasak, u holda "title =" (! LANG: N-gramm ehtimolini hisoblash (4) n> 1 bo'lgan n-gramm uchun ehtimollik biroz boshqacha tarzda hisoblanadi. Bigramlar misolini ko'rib chiqaylik: hovuzning bigramma ehtimolini hisoblash kerak bo'lsin.Agar bigrammaning har bir so'zini qandaydir hodisa deb hisoblasak, imon"> title="N-gramm ehtimolini hisoblash (4) n> 1 bo'lgan n-gramm uchun ehtimollik biroz boshqacha tarzda hisoblanadi. Bigramlar misolini ko'rib chiqing: basseynning bigramma ehtimolini hisoblash kerak bo'lsin. Bigrammaning har bir so‘zini hodisa deb hisoblasak, iymon"> !}


N-gramm ehtimolini hisoblash (5) Endi ixtiyoriy n-gramm (yoki n uzunlikdagi jumla) ehtimolini hisoblashni ko'rib chiqing. Bigramlar holatini kengaytirib, biz n-gramm uchun ehtimollik formulasini olamiz: Bunday formuladan foydalanib, ehtimollikni hisoblash oson emas, shuning uchun soddalashtirish kiritiladi - belgilangan uzunlikdagi tarixdan foydalanish, ya'ni. Shunday qilib, jumlaning ehtimolligini hisoblash ushbu jumlani tashkil etuvchi N-grammlarning shartli ehtimolini hisoblashga qisqartiriladi:




Korpusning siyrakligini bartaraf etish (1) n-grammlarning oddiy (silliqsiz) til modeli muammosi: ba'zi n-grammlar uchun ehtimollik juda kam baholanishi mumkin (hatto nolga teng), garchi haqiqatda (sinov korpusida) bu n-grammlar juda tez-tez sodir bo'lishi mumkin ... Sababi: cheklangan o'quv korpusi va uning o'ziga xosligi. Yechim: ba'zi n-grammlarning ehtimolini kamaytirish orqali, o'quv korpusida bo'lmagan (yoki juda kam uchraydigan) n-grammlarning ehtimolini oshiring.




Korpusning siyrakligini yo'q qilish (3) Sparlikni yo'q qilish algoritmlarida quyidagi tushunchalar qo'llaniladi: Turlar - matndagi turli xil so'zlar (so'zlar ketma-ketligi). Tokenlar - matndagi barcha so'zlar (so'zlar ketma-ketligi). Ular hovuz bo'yida sayr qilishdi, keyin o't ustida yotishdi va yulduzlarga qarashdi - 14 tur, 16 nishon





Bir qo'shimcha tekislash (4) Usul hisob-kitoblarda katta xatolikka olib keladi (masalan, oldingi slaydda xitoycha so'z uchun bigramlar soni 8 baravar kamayganligi ko'rsatilgan). Sinovlar shuni ko'rsatdiki, silliq bo'lmagan model ko'pincha aniqroqdir. Binobarin, usul faqat nazariy nuqtai nazardan qiziq.


Witten-Bell Discounting (1) Oddiy g'oyaga asoslanib: n-gramm yetishmasligi ehtimolini baholash uchun o'quv korpusida topilgan n-gramlar haqidagi ma'lumotlardan foydalaning. Usul g'oyasi siqish algoritmlaridan olingan: hodisalarning ikki turi ko'rib chiqiladi - yangi belgi (tur) va belgi (token) bilan uchrashdi. Barcha etishmayotgan n-grammlar uchun ehtimollik formulasi (yaʼni oʻquv korpusida boʻlmagan test korpusida n-grammni topish ehtimoli): N - oʻquv korpusidagi tokenlar soni, T - o'quv korpusida allaqachon sodir bo'lgan turlar






Witten-Bell chegirma (4) => => => "> =>"> => "title =" (! LANG: Witten-Bell Discounting (4) => =>"> title="Witten-Bell chegirma (4) => =>"> !}




Good-Turing Discounting (1) Ideya: nol marta (s marta) uchrashgan n-grammlar uchun ball bir marta uchrashgan n-grammlar soniga proportsionaldir (s + 1 marta). Bir misolni ko'rib chiqaylik: 18 ta baliq tutildi, deylik. Hammasi ushlandi turli xil turlari- 6 va uchta turda faqat bitta vakil tutildi. Keyingi baliqning yangi turga tegishli bo'lish ehtimolini topishimiz kerak. Hammasi bo'lib 7 ta tur mavjud (allaqachon 6 tur qo'lga olingan).








Katzs Backoff (2) a koeffitsienti (N-1) -grammlarning ehtimollik taqsimotiga muvofiq N-gramm qoldiq ehtimolini to'g'ri taqsimlash uchun zarur. Agar a ni kiritmasangiz, taxmin xato bo'ladi, chunki tenglik bajarilmaydi: a ni hisoblash hisobot oxirida berilgan. Entropiya yordamida til modelini baholash (1) Entropiya noaniqlik o'lchovidir. Entropiyadan foydalanib, siz N-grammning eng mos til modelini aniqlay olasiz amaliy vazifa... Ikkilik entropiya formulasi: Misol: tanga otish testining entropiyasini hisoblang. Javob: 1 bit, tajriba natijalari bir xil ehtimolli bo'lishi sharti bilan (har ikki tomon 1/2 ehtimollik bilan tushib ketadi).




Til modelini entropiya yordamida baholash (3) Turli til modellarini solishtirish uchun oʻzaro entropiya qoʻllaniladi: H (p, m) oʻzaro entropiya qiymati H (p) haqiqiy entropiyaga qanchalik yaqin boʻlsa, til shunchalik yaxshi boʻladi. model: Bizning holatda, H (p ) sinov holatining entropiyasidir. m (w) - til modeli (masalan, N-gram modeli)


Til modelini entropiya yordamida baholash (4) Til modeli sifatini baholashning yana bir usuli mavjud bo'lib, u deyiladi. ulanish ko'rsatkichi (chalkashlik). G'oya: butun test ishining ehtimolini hisoblang. Yaxshiroq model yuqori ehtimollikni ko'rsatadi. Ajablanish formulasi: Shunday qilib, chalkashlik qanchalik kam bo'lsa yaxshiroq model... Siz chalkashlikni ma'lum bir so'zdan keyin kelishi mumkin bo'lgan so'zlarning o'rtacha soni sifatida talqin qilishingiz mumkin (ya'ni, chalkashlik qanchalik ko'p bo'lsa, noaniqlik shunchalik yuqori bo'ladi va shuning uchun til modeli yomonroq). Ajablanish va binar entropiya o'rtasidagi bog'liqlik:


Til modelini entropiyadan foydalangan holda baholash (5) Misol tariqasida, unigramlar, bigramlar va trigramlarning o'rganilgan modellari yordamida olingan ma'lum bir korpus uchun chalkashlik qiymatlarini ko'rib chiqing: Trigrammalarda chalkashlik eng kichikdir, chunki trigrammalarning shartli ehtimolliklarini hisoblashda barcha modellarning eng uzun tarix uzunligi (2 ga teng) bilan izohlash yordam beradi. UnigramBigramTrigram chalkashligi