Hanske Ord Embeddings

Språklige regulariteter

la Oss nå undersøke hvordan Hanske embeddings fungerer. Som kjent, word2vec word vektorer fange mange språklige regulariteter. For å gi det kanoniske eksempelet, hvis vi tar ordvektorer for ordene «paris», «frankrike» og «tyskland» og utfør følgende operasjon:

\

den resulterende vektoren vil være nær vektoren for»berlin»

la oss laste ned De samme Wikipedia-dataene som brukes som en demo av word2vec:

i neste trinn vil vi lage et ordforråd, et sett med ord som vi ønsker å lære ordvektorer. Merk at alle text2vec funksjoner som opererer på rå tekstdata (create_vocabulary, create_corpus, create_dtm, create_tcm) har en streaming API, og du bør iterere over tokens som det første argumentet for disse funksjonene.

disse ordene skal ikke være for uvanlige. Fot eksempel vi kan ikke beregne en meningsfull ord vektor for et ord som vi så bare en gang i hele corpus. Her tar vi bare ord som vises minst fem ganger. text2vec gir flere alternativer for å filtrere vokabular (se ?prune_vocabulary).

nå har vi 71 290 termer i vokabularet og er klare til å konstruere term-co-occurence matrix (TCM).

nå har Vi EN tcm-matrise og kan faktorisere den via Hanskealgoritmen.
text2vec bruker en parallell stokastisk gradient descent algoritme. Som standard vil den bruke alle kjerner på maskinen din, men du kan angi antall kjerner hvis du ønsker det.

La oss passe vår modell. (Det kan ta flere minutter å passe!)

## INFO epoch 1, loss 0.1755 ## INFO epoch 2, loss 0.1228 ## INFO epoch 3, loss 0.1085 ## INFO epoch 4, loss 0.1005 ## INFO epoch 5, loss 0.0954 ## INFO epoch 6, loss 0.0918 ## INFO epoch 7, loss 0.0890 ## INFO epoch 8, loss 0.0869 ## INFO epoch 9, loss 0.0851 ## INFO epoch 10, loss 0.0837
## 71290 50

Merk at modellen lærer to sett med ordvektorer-hoved og kontekst. I hovedsak er de de samme siden modellen er symmetrisk. Fra vår erfaring å lære to sett med ord vektorer fører til høyere kvalitet embeddings. Hanskemodell er» dekomponering » – modell (arver fra mlapiDecomposition – generisk klasse av modeller som dekomponerer inngangsmatrise i to matriser med lav rang). Så på nivå med alle andre mlapiDecomposition modell andre low-rank matrise (kontekst ord vektorer) er tilgjengelig i components felt:

## 50 71290

Merk at som i alle modeller som arver fra mlapiDecomposition transformert matrise vil har nrow = nrow(input), ncol = rank og andre component matrise vil har nrow = rank, ncol = ncol(input).

mens begge ordvektorer matriser kan brukes som resultat, er det vanligvis bedre (ide Fra Hanskepapir) til gjennomsnitt eller ta en sum av hoved-og kontekstvektor:

Vi kan finne de nærmeste ordvektorer for vårt paris – frankrike + tyskland eksempel:

## paris berlin munich germany versailles ## 0.7724678 0.7156243 0.6962157 0.6381500 0.6170311

du kan oppnå mye bedre resultater ved å eksperimentere med skip_grams_window og parametrene til GloVe – klassen(inkludert ordvektorstørrelse og antall iterasjoner). For flere detaljer og store eksperimenter på wikipedia-data, se dette gamle innlegget på bloggen min.

You might also like

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.