Kaip sukurti įterpimą iš angliškų sakinių sąrašo

Kaip Sukurti Iterpima Is Anglisku Sakiniu Saraso



Ar kada susimąstėte, kai bendraujame su savo mašinomis (kompiuteriais) ir duodame jiems nurodymus atlikti konkrečią užduotį, pavyzdžiui, atlikti konkrečią paiešką ar versti iš vienos kalbos į kitą, kaip kompiuteris tai supranta ir apdoroja? Visa tai daroma per natūralios kalbos apdorojimo dirbtinio intelekto polaukį. Kompiuteris supranta skaitines reikšmes, o NLP „žodžių įterpimo“ technika paverčia žodį ir tekstus, kuriuos pateikiame kompiuteriams kaip įvestį, į tą skaitinį vektorių, kad kompiuteris galėtų jį atpažinti. Keletas kitų NLP procesų vyksta ne tik žmogaus ir kompiuterio sąveikoje naudojant kalbos modelius, tačiau šiame vadove išsamiai aptarsime žodžio įterpimą.

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ą.

kaip tauta modeliai importuoti Word2Vec

mokymo_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 ()“.

kaip tauta modeliai importuoti Word2Vec
duomenis = [ [ '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.