Vijesti o Tehnologiji, Recenzije i Savjeti!

Vodič za ugradnje dokumenata pomoću modela distribuirane vrećice riječi (DBOW).

Napomena: Sljedeći članak će vam pomoći: Vodič za ugradnje dokumenata pomoću modela distribuirane vrećice riječi (DBOW).

U jednom od naših prethodnih članaka imali smo uvod u model Doc2Vec koji je važan model za ugradnju dokumenata. Tehnika ugrađivanja dokumenata proizvodi vektorske prikaze fiksne duljine iz zadanih dokumenata i čini složene NLP zadatke lakšim i bržim. Postoje različite varijante modela Doc2Vec, a Distributed Bag-of-Words DBOW jedna je od njih koja je bolja među svojim kolegama. U ovom članku, naša je rasprava usmjerena na ugradnje dokumenata pomoću DBOW modela s praktičnom implementacijom s Gensimom. Glavne točke o kojima će se raspravljati u članku navedene su u nastavku.

Sadržaj

    Što su ugradnje dokumenata? Što su Doc2Vec modeli? Distribuirana vrećica riječi (DBOW) Implementacija DBOW-a pomoću Gensima

Počnimo s razumijevanjem ugrađivanja dokumenata,

Što su ugradnje dokumenata?

Osim vježbanja kada stvari dođu do primjene NLP-a u stvarnom svijetu, strojevi moraju razumjeti koji je kontekst iza teksta koji je zasigurno duži od samo jedne riječi. Na primjer, želimo pronaći tweetove vezane uz kriket od Twitter. Možemo započeti sastavljanjem popisa svih riječi koje su povezane s kriketom, a zatim ćemo pokušati pronaći tweetove koji sadrže bilo koju riječ s popisa.

Ovaj pristup može funkcionirati do neke mjere, ali što ako bilo koji tweet vezan uz kriket ne sadrži riječi s popisa. Uzmimo primjer bilo kojeg tweeta koji sadrži ime indijskog igrača kriketa bez spominjanja da je on indijski igrač kriketa. U svakodnevnom životu možemo pronaći mnogo aplikacija i web stranica poput Facebooktwitter, stack overflow itd. koji koriste ovaj pristup i ne uspijevaju dobiti prave rezultate za nas.

Kako bismo se nosili s takvim poteškoćama, možemo koristiti ugradnje dokumenata koji u osnovi uče vektorski prikaz svakog dokumenta iz umetanja cijelog svijeta. Ovo se također može smatrati učenjem vektorske reprezentacije u postavci odlomka umjesto učenja vektorske reprezentacije iz cijelog korpusa.

Ugrađivanje dokumenata također se može smatrati pristupom diskretne aproksimacije ugrađivanja riječi. Budući da aproksimacija ili učenje vektorske reprezentacije ugrađivanja riječi pretvara cijeli korpus u vektore, nalazimo poteškoće u uspostavljanju kontekstualnog odnosa između riječi u vektorskom obliku. Izdvajanje malog korpusa i njegovo pretvaranje u vektorski prikaz daje opseg uspostavljanja kontekstualnih odnosa između riječi.

Na primjer, homonimi mogu imati različite kontekste u različitim odlomcima, a za jednostavan vektorski prikaz teško je razlikovati različita značenja. Dok je diskretan cijeli korpus u smislu paragrafa ili rečenica, a zatim generiranje vektorske reprezentacije diskretnog korpusa može nam dati smisleniju vektorsku reprezentaciju.

Što su Doc2Vec modeli?

Kao što smo već spomenuli, ugradnje dokumenata mogu se smatrati diskretnim vektorskim prikazima umetanja riječi. U području ugrađivanja dokumenata uglavnom nalazimo implementaciju modela Doc2Vec koji nam pomaže u izradi ugrađivanja dokumenata. U sažetku cijele teorije koja stoji iza Doc2Vec-a, možemo reći da je Doc2Vec model vektorske reprezentacije odlomaka izdvojenih iz umetanja cijele riječi ili tekstualnih dokumenata. Detaljno objašnjenje modela Doc2Vec možete pronaći u ovom članku.

Također možemo reći da su modeli Doc2Vec slični modelima Word2Vec. Dok govorimo o vektorskoj reprezentaciji riječi u Word2Vec modelima, riječi kontekstualiziramo učenjem njihove okoline, a Doc2Vec se može smatrati vektorskom reprezentacijom riječi dok postoji dodavanje konteksta odlomka.

Također, Doc2Vec modeli imaju dvije varijante slične Word2Vec-u:

    Model raspodijeljene memorije Distribuirana vrećica riječi

Ove varijante također imaju sličnosti s varijantama Word2Veca. Model raspodijeljene memorije sličan je kontinuiranoj vrećici modela riječi, a distribuirana vrećica riječi sličan je modelu preskakanja grama. U ovom smo članku usredotočeni na model distribuirane vrećice riječi. Bez gubljenja toliko vremena krenimo prema uvođenju modela distribuirane vrećice riječi.

Distributed Bag-of-Words (DBOW)

Model Distributed Bag-Of-Words (DBOW) sličan je skip-gram varijanti word2veca jer to također pomaže u pogađanju riječi konteksta iz ciljane riječi. Razlika između distribuirane vrećice riječi i modela distribuirane memorije je u tome što model distribuirane memorije približava riječ koristeći kontekst okolnih riječi, a model distribuirane vrećice riječi koristi ciljnu riječ za približavanje kontekstu riječi. Kada govorimo o razlici između distribuirane vrećice riječi i modela preskakanja grama, model preskakanja grama koristi ciljnu riječ kao ulaz, dok distribuirana vrećica riječi uključuje ID odlomka kao ulaz za predviđanje nasumično odabranih riječi iz dokumenta. Donja slika objašnjava rad modela distribuirane vrećice riječi:

Na ovoj slici možemo vidjeti da se ID odlomka koristi za riječi koje su nasumično odabrane iz umetnutih riječi odlomka. Polazeći od ID-a odlomka, predviđa broj koji kombinira model preskakanja grama. U mnogim usporedbama možemo otkriti da modeli distribuirane vrećice riječi daju bolje rezultate od modela distribuirane memorije. Pogledajmo kako možemo implementirati model distribuirane vrećice riječi.

Implementacija DBOW modela pomoću Gensima

Za implementaciju modela distribuirane vrećice riječi koristit ćemo python jezik i biblioteku gensim. Detaljan uvod u biblioteku Gensim možete pronaći ovdje. Knjižnicu možemo instalirati pomoću sljedećih redaka kodova.

!pip instaliraj –nadogradi gensim

Sada prijeđimo na sljedeći korak gdje se od nas traži da uvezemo neke module.

from gensim.test.utils import common_texts from gensim.models.doc2vec import Doc2Vec, TaggedDocument

Koristeći gornje retke kodova, nazvali smo uzorak podataka pod nazivom common_text i model Doc2Vec. Također smo uvezli modul TaggedDocument kako bismo mogli obraditi naše podatke prema zahtjevima modela. Pogledajmo kakvi su podaci:

pprint(zajednički_tekstovi)

Izlaz:

Vodič za ugradnje dokumenata pomoću modela distribuirane vrećice riječi (DBOW). 1

Ovdje se vidi da imamo 9 rečenice u uzorku podataka. Ili ih možemo smatrati odlomcima jer model Doc2Vec radi na odlomcima. Obradimo skup podataka i dajmo ID odlomka pomoću modula TaggedDocuments.

dokumenti = [TaggedDocument(doc, [i]) za i, dokument u enumerate(common_texts)]

pprint (dokumenti)

Izlaz:

Vodič za ugradnje dokumenata pomoću modela distribuirane vrećice riječi (DBOW). 2

Ovdje možemo vidjeti oznake s riječima u našim označenim dokumentima. Istrenirajmo naš model na dokumentu.

model = Doc2Vec(dokumenti, veličina_vektora=5prozor=2min_broj=1radnici=4dm=0)

U gornjem kodu, instancirali smo model s označenim dokumentom, vektor značajke dimenzionalnosti 5udaljenost između trenutne i predviđene riječi u rečenici je 2i 4 radne niti za obuku modela. Time smo zanemarili riječi s frekvencijom nižom od 1. Jedna stvar koja je ovdje uočljiva je ako je dm = 0 u instanci tada samo mi možemo koristiti model distribuirane vrećice riječi. Provjerimo detalje o modelima.

model.build_vocab(dokumenti)

ispis(str(model))

Izlaz:

Vodič za ugradnje dokumenata pomoću modela distribuirane vrećice riječi (DBOW). 3

Kao što vidimo, ovdje smo stvorili DBOW varijantu Doc2Vec modela za distribuiranu vreću riječi. Provjerimo kako radi ugradnja dokumenta tako što ćemo zaključiti vektor za novi dokument.

vektor = model.infer_vector([“human”, “interface”])

pprint (vektor)

Izlaz:

Vodič za ugradnje dokumenata pomoću modela distribuirane vrećice riječi (DBOW). 4

Gornji izlaz može se usporediti s drugim vektorima preko kosinusne sličnosti. Model koji smo trenirali temelji se na iterativnim pristupima aproksimacije tako da može postojati mogućnost ponovljenih zaključaka da je isti tekst različit vektor. Gornji izlaz također daje vektorski prikaz riječi koje smo koristili s modulom infer_vector.

Završne riječi

U članku smo raspravljali o ugrađivanju dokumenata i otkrili da su Doc2Vec modeli potrebni za modeliranje ugrađivanja dokumenata iz korpusa riječi. Također smo razgovarali o tome da je model distribuirane vrećice riječi vrsta Doc2Vec modela koji se može koristiti za bolju izvedbu u našim NLP zadacima.

Reference