Sintaksė:
Į Natūralios kalbos apdorojimą patenka įvairios funkcijos, skirtos žodžių įterpimui į tekstą. Šiame straipsnyje aptariama šiam tikslui skirta funkcija „word2vec“. Kad būtų aiškiau, žodis įterpimas konvertuoja mūsų teksto įvestis į vektorinį vaizdavimą, kai tie žodžiai, kurių kontekstinė reikšmė daugiau ar mažiau yra vienodi, pateikia tą patį vaizdą.
Algoritmas „word2vec“ yra neuroninio tinklo modelis, kuris yra parengtas taip, kad išmoktų įterpti žodžius, pirmiausia numatydamas žodžio kontekstą, kuriame jis pasirodo. Šis modelis įveda tekstą kaip įvestį. Tada kiekvienam teksto žodžiui sukuriamas to žodžio vektorinis vaizdas. Šis modelis pagrįstas mintimi, kad žodžiai, kurie, atrodo, turi tą patį kontekstą, turi tas pačias reikšmes. „word2vec“ sintaksė yra tokia:
$ Word2Vec(sakiniai, min_skaičius)
Šis algoritmas turi du parametrus, kurie yra „sakiniai“ ir „minimalus_skaičius“. Sakinys yra kintamasis, kuriame saugomas sakinių sąrašas arba tekstas sakinių pavidalu, o minimum_count kalba apie skaičių reikšmę 1, o tai reiškia, kad bet kurį iš teksto žodžių, kurie pasirodė mažiau nei vienas, reikia ignoruoti .
1 pavyzdys:
Šiame pavyzdyje mes sukuriame žodžių įterpimus žodžiams, kurie yra angliškų sakinių sąraše. Norėdami sukurti žodį „įterpimas“, turime naudoti „word2vec“ modelį. Šis modelis yra Python „gensim“ bibliotekos paketas. Turime turėti „Gensim“ įdiegtą „Python“ bibliotekos saugyklose, kad galėtume dirbti su „word2vec“.
Norėdami įgyvendinti šį pavyzdį, dirbsime su „google colab“ internetiniu Python kompiliatoriumi. Norėdami įdiegti gensim, naudokite komandą „pip install gensim“. Pradedama atsisiųsti šią biblioteką su visais susijusiais paketais. Kai jis bus įdiegtas, importuokite „word2vector“ paketą iš „gensim“.
Norėdami išmokyti šį „word2vec“ modelį, turime sukurti mokymo duomenų rinkinį. Tam sudarome sakinių sąrašą, kuriame yra nuo keturių iki penkių angliškų sakinių. Išsaugome šį sąrašą kintamajame „training_data“.
Kitas mūsų žingsnis sukūrus mokymo duomenų rinkinį yra parengti „word2vec“ modelį pagal šiuos duomenis. Taigi, mes vadiname modelį. Šio modelio įvesties parametruose pateikiame mokymo duomenis, kuriuos išsaugojome kintamajame „įvestis“. Tada nurodome antrąjį parametrą, kuris yra „minimalus_skaičius“. Mes nustatome jo vertę, lygią „1“. Šio mokymo modelio išvestis išsaugoma kintamajame „traained_model“.
Baigę modeliuoti, galime tiesiog pasiekti modelį su „wv“ priešdėliu, kuris yra žodžio vektorinis modelis. Taip pat galime pasiekti savo žodžių žetono žodyną ir atspausdinti juos tokiu būdu:
vocabof_tokens = sąrašas (modelis.wv.vocab)Mūsų atveju modelis atstovauja apmokytam modeliui. Dabar pasiekiame vieno žodžio sakinio sąraše vektorinį atvaizdavimą, kuris mūsų atveju yra „obuolys“. Tai darome tiesiog paskambinę apmokytam modeliui. Žodį, kurio vektorinį atvaizdavimą norime atspausdinti, perduodame kaip „modelis. wv [‘obuolys’]“ į savo įvesties argumentą. Tada atspausdiname rezultatus naudodami „spausdinimo“ funkciją.
iš kaip tauta modeliai importuoti Word2Vecmokymo_duomenys = [ [ 'obuolys' , 'yra' , 'the' , 'saldus' , 'obuolys' , 'dėl' , 'word2vec' ] ,
[ 'tai' , 'yra' , 'the' , 'antras' , 'obuolys' ] ,
[ 'čia' , 'kitas' , 'obuolys' ] ,
[ 'vienas' , 'saldus' , 'obuolys' ] ,
[ 'ir' , 'daugiau' , 'saldus' , 'obuolys' ] ]
modelis = Word2Vec ( mokymo_duomenys , min_count = 1 )
spausdinti ( modelis )
vocabof_tokens = sąrašą ( modelis. wv . index_to_key )
spausdinti ( vocabof_tokens )
spausdinti ( modelis. wv [ 'obuolys' ] )
Iš anksčiau minėtos išvesties ir kodo rodomas žodžio 'obuolys' įterpimas. Pavyzdyje pirmiausia sukūrėme mokymo duomenų rinkinį. Tada apmokėme modelį ir apibendriname modelį. Tada, naudodamiesi modeliu, gavome prieigą prie žetonų žodžių žodyno. Po to mes parodėme žodį „obuolių“ įterpimas.
2 pavyzdys:
Naudodami gensim biblioteką sukurkime kitą sakinių sąrašą. Išmokykite kiekvieno sakinio žodžio modelį, kad sukurtumėte žodžio įterpimą naudodami modelį „word2vec“. Pirma, iš gensim bibliotekos paketo importuojamas „word2vec“ modelis. Tada sukuriame kitą duomenų rinkinį, kuris bus sąrašas, kuriame yra du sakiniai. Kiekviename sąrašo sakinyje yra keturi žodžiai.
Dabar šį sąrašą išsaugome kintamajame „duomenys“. Tada iškviečiame modelį „word2vec()“ ir pateikiame duomenis į šio modelio argumentus, kurių minimali_skaitymo reikšmė yra lygi „1“. Taip treniruojame savo modelį. Dabar jis gali išmokti ir gali išmokti žodžių, esančių sąraše pateiktuose sakiniuose, įterpimą, numatydamas kontekstą, kuriame jie egzistuoja. Norėdami patikrinti savo modelio rezultatus, modeliui tiesiog perduodame tokį žodį kaip „šuo“. Tada spausdiname rezultatus naudodami funkciją „print ()“.
iš kaip tauta modeliai importuoti Word2Vecduomenis = [ [ 'triušis' , 'turi' , 'dantys' ] , [ 'šuo' , 'turi' , 'ausys' ] ]
modelis = Word2Vec ( duomenis , min_count = 1 )
spausdinti ( modelis. wv [ 'šuo' ] )
Galime stebėti vektorinį žodžio, kurį pateikėme modeliui kaip įvestį iš ankstesnio išvesties fragmento, vaizdavimą.
Išvada
Šiame vadove parodytas būdas sukurti žodžių įterpimą žodžiams, kurie yra angliškų sakinių sąraše. Sužinojome apie Python „gensim“ biblioteką, kuri suteikia „word2vec“ modelį, kad būtų galima sukurti žodžio įterpimą. Be to, sužinojome apie įvesties parametrus, kaip parengti „word2vec“ modelį mokymo duomenims ir kaip pateikti žodį vektoriaus vaizde.