Kuidas luua ingliskeelsete lausete loendist manustamist

Kuidas Luua Ingliskeelsete Lausete Loendist Manustamist



Kas olete kunagi mõelnud, kui suhtleme oma masinatega (arvutitega) ja anname neile juhiseid konkreetse ülesande täitmiseks, näiteks konkreetse otsingu tegemiseks või ühest keelest teise tõlkimiseks, kuidas arvuti seda mõistab ja töötleb? Seda kõike tehakse loomuliku keele töötlemise tehisintellekti alamvälja kaudu. Arvuti mõistab arvväärtusi ja NLP “sõna manustamise” tehnika teisendab sõna ja tekstid, mille me arvutitele sisendiks anname, selleks arvvektoriks, et arvuti saaks selle ära tunda. Mitmed teised NLP protsessid toimuvad väljaspool seda inimese ja arvuti suhtlust keelemudelite kaudu, kuid me käsitleme selles juhendis üksikasjalikult sõna manustamist.

Süntaks:

Teksti sõna manustamise loomuliku keele töötlemise alla kuuluvad erinevad funktsioonid. See artikkel hõlmab sel eesmärgil funktsiooni 'word2vec'. Selgemaks muutmiseks teisendab sõna manustamine meie tekstisisendid vektoresitluseks, kus need sõnad, millel on enam-vähem sama kontekstuaalne tähendus, on andnud sama esituse.

Algoritm 'word2vec' on närvivõrgu mudel, mis on koolitatud nii, et see õpib sõnade manustamise selgeks, ennustades esmalt sõna konteksti, milles see ilmub. See mudel võtab sisendiks teksti. Seejärel luuakse teksti iga sõna jaoks selle sõna vektorkujutus. See mudel põhineb ideel, et sõnadel, millel näib olevat sama kontekst, on sama tähendus. Sõna 'word2vec' süntaks on järgmine:







$ Word2Vec(laused, min_count)

Sellel algoritmil on kaks parameetrit, mis on 'laused' ja 'minimaalne_arv'. Lause on muutuja, kuhu salvestatakse lauseloend või lausekujuline tekst ja miinimum_arv räägib loendusväärtusest 1, mis tähendab, et tekstis tuleb ignoreerida kõiki sõnu, mis on esinenud vähem kui üks .



Näide 1:

Selles näites loome ingliskeelsete lausete loendis olevate sõnade jaoks sõna manused. Sõna 'manustamine' loomiseks peame kasutama mudelit 'word2vec'. See mudel on Pythoni 'gensim' raamatukogu pakett. Word2veciga töötamiseks peab meie Pythoni teegi hoidlatesse installima Gensim.



Selle näite rakendamiseks töötame Pythoni veebikompilaatoriga 'google colab'. Gensim installimiseks kasutage käsku 'pip install gensim'. See alustab selle teegi allalaadimist kõigi sellega seotud pakettidega. Kui see on installitud, importige gensimist pakett 'word2vector'.





Selle 'word2vec' mudeli koolitamiseks peame looma koolitusandmestiku. Selleks loome lausete loendi, mis sisaldab nelja kuni viit ingliskeelset lauset. Salvestame selle loendi muutujasse 'training_data'.

Meie järgmine samm pärast koolitusandmestiku loomist on 'word2vec' mudeli koolitamine nende andmete põhjal. Niisiis, me nimetame mudelit. Anname selle mudeli sisendparameetrites koolitusandmed, mille salvestasime muutujasse “sisend”. Seejärel määrame teise parameetri, mis on 'minimaalne_arv'. Seadsime selle väärtuseks 1. Selle treeningmudeli väljund salvestatakse muutujasse „treening_model”.



Kui oleme mudeli koolitamise lõpetanud, pääseme mudelile lihtsalt juurde eesliitega 'wv', mis on sõna vektormudel. Samuti võime juurde pääseda meie sõnade märgisõnavarale ja printida need järgmisel meetodil:

vocabof_tokens = loend (model.wv.vocab)

Mudel esindab meie puhul koolitatud mudelit. Nüüd pääseme juurde lauseloendis oleva ühe sõna vektoresitlusele, mis meie puhul on 'õun'. Teeme seda lihtsalt väljaõppinud mudelile helistades. Sõna, mille vektoresitlust tahame printida, edastame kui „mudel. wv ['õun']” oma sisendargumendile. Seejärel prindime tulemused printimisfunktsiooniga.

alates rahvana mudelid importida Word2Vec

koolituse_andmed = [ [ 'õun' , 'on' , 'the' , 'armas' , 'õun' , 'eest' , 'word2vec' ] ,
[ 'see' , 'on' , 'the' , 'teine' , 'õun' ] ,
[ 'siin' , 'teine' , 'õun' ] ,
[ 'üks' , 'armas' , 'õun' ] ,
[ 'ja' , 'rohkem' , 'armas' , 'õun' ] ]

mudel = Word2Vec ( koolituse_andmed , min_count = 1 )
printida ( mudel )
vocabof_tokens = nimekirja ( mudel. wv . indeks_võtmesse )
printida ( vocabof_tokens )
printida ( mudel. wv [ 'õun' ] )

Eelnevalt mainitud väljundist ja koodist kuvatakse sõna 'õun' jaoks sõna manustamine. Näites lõime esmalt koolituse andmestiku. Seejärel koolitasime modelli selle kohta ja tegime mudelist kokkuvõtte. Seejärel saime mudeli abil ligipääsu sõnade sümboolsele sõnavarale. Pärast seda kuvasime sõna 'õun' jaoks sõna manustamine.

Näide 2:

Kasutades gensim raamatukogu, loome teise lausete loendi. Treenige meie mudelit iga lause sõna jaoks, et luua sõna manustamine mudeli „word2vec” abil. Esiteks imporditakse gensim raamatukogu paketist 'word2vec' mudel. Seejärel loome teise andmekogumi, mis on loend, milles on kaks lauset. Igas loendis olevas lauses on neli sõna.

Nüüd salvestame selle loendi muutujasse 'andmed'. Seejärel kutsume välja mudeli 'word2vec()' ja edastame andmed selle mudeli argumentidele minimaalse_arvu väärtusega, mis on võrdne väärtusega '1'. Nii koolitame oma modelli. Nüüd on see võimeline ja suudab õppida loendis olevates lausetes esinevate sõnade manustamist, ennustades nende olemasolu konteksti. Meie mudeli tulemuste testimiseks edastame mudelile lihtsalt oma andmetes sõna nagu 'koer'. Seejärel prindime tulemused funktsiooni 'print()' abil.

alates rahvana mudelid importida Word2Vec
andmeid = [ [ 'Jänes' , 'on' , 'hambad' ] , [ 'koer' , 'on' , 'kõrvad' ] ]
mudel = Word2Vec ( andmeid , min_count = 1 )
printida ( mudel. wv [ 'koer' ] )

Saame jälgida selle sõna vektoresitlust, mille me mudelile sisestasime väljundi eelmisest jupist selle sisendiks.

Järeldus

See juhend tutvustab meetodit, kuidas luua ingliskeelsete lausete loendis olevate sõnade jaoks sõna manustamine. Saime teada Pythoni 'gensim' raamatukogust, mis pakub sõna manustamise loomiseks mudelit 'word2vec'. Lisaks õppisime tundma sisendparameetreid, kuidas treenida sõna2vec mudelit koolitusandmetel ja kuidas sõna esitada vektori esituses.