Kuinka luoda upotus englanninkielisten lauseiden luettelosta

Kuinka Luoda Upotus Englanninkielisten Lauseiden Luettelosta



Oletko koskaan ajatellut, että kun kommunikoimme koneidemme (tietokoneidemme) kanssa ja annamme heille ohjeita tietyn tehtävän suorittamiseen, kuten tietyn haun suorittamiseen tai käännökseen kielestä toiseen, kuinka tietokone ymmärtää ja käsittelee tämän? Tämä kaikki tehdään luonnollisen kielen käsittelyn tekoäly-alakentän kautta. Tietokone ymmärtää numeeriset arvot ja NLP:n 'sanan upotus'-tekniikka muuntaa tietokoneille syötteenä antamamme sanan ja tekstit kyseiseksi numeeriseksi vektoriksi, jotta tietokone voisi tunnistaa sen. Useat muut NLP:n prosessit tapahtuvat tämän ihmisen ja tietokoneen välisen vuorovaikutuksen lisäksi kielimallien avulla, mutta käsittelemme sanan upottamista yksityiskohtaisesti tässä oppaassa.

Syntaksi:

Tekstin sanan upottamiseen liittyvät luonnollisen kielen käsittelyyn kuuluvat eri toiminnot. Tämä artikkeli kattaa 'word2vec'-toiminnon tähän tarkoitukseen. Selvyyden vuoksi sana upottaminen muuntaa tekstisyötteemme vektoriesitykseen, jossa sanat, joilla on enemmän tai vähemmän samat kontekstuaaliset merkitykset, ovat antaneet saman esityksen.

'word2vec'-algoritmi on hermoverkkomalli, joka on koulutettu siten, että se oppii sanojen upotuksen ennustamalla ensin sanan kontekstin, jossa se esiintyy. Tämä malli ottaa tekstin syötteenä. Sitten jokaiselle tekstin sanalle luodaan vektoriesitys kyseiselle sanalle. Tämä malli perustuu ajatukseen, että sanoilla, joilla näyttää olevan sama konteksti, on sama merkitys. Sanan 'word2vec' syntaksi on seuraava:







$ Word2Vec(lauseet, min_count)

Tällä algoritmilla on kaksi parametria, jotka ovat 'lauseet' ja 'minimimäärä'. Lause on muuttuja, johon lauseluettelo tai lausemuotoinen teksti on tallennettu ja minimi_määrä puhuu laskenta-arvosta 1, mikä tarkoittaa, että mikä tahansa tekstin sana, joka on esiintynyt vähemmän kuin yksi, on jätettävä huomiotta. .



Esimerkki 1:

Tässä esimerkissä luomme sanan upotukset sanoille, jotka ovat olemassa englanninkielisten lauseiden luettelossa. Luodaksemme sanan 'upotus', meidän on käytettävä 'word2vec' -mallia. Tämä malli on paketti Pythonin 'gensim'-kirjastosta. Meillä on oltava Gensim asennettuna Python-kirjaston tietovarastoihimme voidaksemme toimia Word2vecin kanssa.



Tämän esimerkin toteuttamiseksi työskentelemme 'google colab' -verkkopython-kääntäjän parissa. Asenna gensim käyttämällä 'pip install gensim' -komentoa. Tämä alkaa ladata tämän kirjaston ja kaikki siihen liittyvät paketit. Kun se on asennettu, tuo 'word2vector'-paketti gensimistä.





Tämän 'word2vec'-mallin kouluttamiseksi meidän on luotava koulutustietojoukko. Tätä varten luomme lauseluettelon, joka sisältää neljästä viiteen englanninkielistä lausetta. Tallennamme tämän luettelon 'training_data' -muuttujaan.

Seuraava vaihe harjoitustietojoukon luomisen jälkeen on 'word2vec'-mallin kouluttaminen näille tiedoille. Joten kutsumme mallia. Annamme harjoitustiedot tämän mallin syöttöparametreissa, jotka olemme tallentaneet 'input'-muuttujaan. Sitten määritämme toisen parametrin, joka on 'minimi_määrä'. Asetamme sen arvoksi '1'. Tämän harjoitusmallin tulos tallennetaan 'traained_model'-muuttujaan.



Kun mallin koulutus on valmis, voimme yksinkertaisesti käyttää mallia 'wv'-etuliitteellä, joka on sana vektorimalli. Saatamme myös käyttää sanojemme tunnuksen sanastoa ja tulostaa ne seuraavalla tavalla:

vocabof_tokens = luettelo (model.wv.vocab)

Malli edustaa meidän tapauksessamme koulutettua mallia. Nyt pääsemme yhden sanan vektoriesitykseen lauseluettelossa, joka meidän tapauksessamme on 'omena'. Teemme tämän yksinkertaisesti soittamalla koulutetulle mallille. Välitämme sanan, jonka vektoriesityksen haluamme tulostaa 'malliksi. wv ['omena']' syöteargumenttiaan. Sitten tulostamme tulokset 'print'-toiminnolla.

alkaen kansana mallit tuonti Word2Vec

koulutustiedot = [ [ 'omena' , 'On' , 'the' , 'makea' , 'omena' , 'for' , 'word2vec' ] ,
[ 'Tämä' , 'On' , 'the' , 'toinen' , 'omena' ] ,
[ 'tässä' , 'toinen' , 'omena' ] ,
[ 'yksi' , 'makea' , 'omena' ] ,
[ 'ja' , 'lisää' , 'makea' , 'omena' ] ]

malli = Word2Vec ( koulutustiedot , min_count = 1 )
Tulosta ( malli )
vocabof_tokens = lista ( malli. wv . index_to_key )
Tulosta ( vocabof_tokens )
Tulosta ( malli. wv [ 'omena' ] )

Aiemmin mainitusta lähdöstä ja koodista näkyy sanan upottaminen sanalle 'omena'. Esimerkissä loimme ensin harjoitustietojoukon. Sitten koulutimme mallin siihen ja teimme mallista yhteenvedon. Sitten mallin avulla saimme pääsyn sanojen token-sanastoon. Sen jälkeen näytimme sanan upotus sanalle 'omena'.

Esimerkki 2:

Luodaan toinen lauseluettelo gensim-kirjaston avulla. Harjoittele mallimme jokaiselle lauseen sanalle luodaksesi sanan upotus käyttämällä 'word2vec'-mallia. Ensin gensim-kirjastopaketista tuodaan 'word2vec' -malli. Sitten luomme toisen tietojoukon, joka on luettelo, jossa on kaksi lausetta. Jokaisessa luettelon lauseessa on neljä sanaa.

Nyt tallennamme tämän luettelon 'data'-muuttujaan. Sitten kutsumme 'word2vec()'-mallia ja syötämme tiedot tämän mallin argumenteille minimi_count-arvolla, joka on yhtä suuri kuin '1'. Näin koulutamme malliamme. Nyt se pystyy ja voi oppia luettelossa olevien lauseiden sisältämien sanojen upottamisen ennustamalla kontekstin, jossa ne esiintyvät. Testaaksemme mallimme tuloksia, välitämme tiedoissamme mallille sanan, kuten 'koira'. Sitten tulostamme tulokset 'print()'-funktiolla.

alkaen kansana mallit tuonti Word2Vec
tiedot = [ [ 'kani' , 'on' , 'hampaat' ] , [ 'koira' , 'on' , 'korvat' ] ]
malli = Word2Vec ( tiedot , min_count = 1 )
Tulosta ( malli. wv [ 'koira' ] )

Voimme tarkkailla malliin syöttämämme sanan vektoriesitystä sen syötteenä edellisestä tulosteen katkelmasta.

Johtopäätös

Tämä opas esittelee menetelmän luoda sanan upotus englanninkielisten lauseiden luettelossa oleville sanoille. Opimme Pythonin 'gensim'-kirjastosta, joka tarjoaa 'word2vec'-mallin sanan upotuksen luomiseen. Lisäksi opimme syöttöparametreista, 'word2vec'-mallin opettamisesta harjoitusdatalle ja sanan esittämiseen vektorin esityksenä.