Hur man skapar en inbäddning från en lista med engelska meningar

Hur Man Skapar En Inbaddning Fran En Lista Med Engelska Meningar



Har du någonsin tänkt på när vi kommunicerar med våra maskiner (datorer) och ger dem instruktioner för att utföra en specifik uppgift för oss som att utföra en specifik sökning eller att översätta från ett språk till ett annat, hur förstår och bearbetar en dator detta? Allt detta görs genom artificiell intelligens under området Natural Language Processing. Datorn förstår de numeriska värdena och NLP:s teknik för 'ordinbäddning' omvandlar ordet och texterna som vi ger som input till datorerna till den numeriska vektorn så att datorn kan känna igen det. Flera andra processer av NLP sker utöver denna människa-dator-interaktion genom språkmodeller, men vi kommer att täcka ordet inbäddning i detalj i den här guiden.

Syntax:

Olika funktioner faller under Natural Language Processing för ordinbäddning av text. Den här artikeln täcker funktionen 'word2vec' för detta ändamål. För att göra det tydligare omvandlar ordet inbäddning våra textinmatningar till vektorrepresentationen där de ord som har mer eller mindre samma kontextuella betydelser har gett samma representation.

Algoritmen 'word2vec' är en neural nätverksmodell som tränas på ett sådant sätt att den lär sig inbäddningen av orden genom att först förutsäga ordets sammanhang i vilket det förekommer. Denna modell tar in texten som sin input. Sedan, för varje ord i texten, skapas vektorrepresentationen för det ordet. Denna modell bygger på tanken att de ord som verkar ha samma sammanhang har samma betydelser. Syntaxen för 'word2vec' är följande:







$ Word2Vec(satser, min_antal)

Denna algoritm har två parametrar som är 'meningar' och 'minimum_antal'. Meningen är variabeln där listan med meningar eller texten i form av meningar lagras och minimum_count talar om räknevärdet 1 vilket innebär att något av orden i texten som har förekommit mindre än ett behöver ignoreras .



Exempel 1:

I det här exemplet skapar vi ordet inbäddningar för de ord som finns i listan över engelska meningar. För att skapa ordet 'inbäddning' måste vi använda modellen 'word2vec'. Denna modell är ett paket av Pythons 'gensim'-bibliotek. Vi måste ha Gensim installerat i våra Python-bibliotek för att fungera med 'word2vec'.



För att implementera detta exempel kommer vi att arbeta med 'google colab' online Python-kompilatorn. För att installera gensim, använd kommandot 'pip install gensim'. Detta börjar ladda ner det här biblioteket med alla tillhörande paket. När det är installerat importerar du 'word2vector'-paketet från gensim.





För att träna denna 'word2vec'-modell måste vi skapa en träningsdatauppsättning. För det skapar vi en lista med meningar som innehåller fyra till fem engelska meningar. Vi sparar den här listan i variabeln 'training_data'.

Vårt nästa steg efter att ha skapat träningsdatauppsättningen är att träna 'word2vec'-modellen på dessa data. Så vi kallar modellen. Vi ger träningsdata i ingångsparametrarna för denna modell som vi sparade i variabeln 'input'. Sedan anger vi den andra parametern som är 'minimum_count'. Vi sätter dess värde lika med '1'. Utdata från denna träningsmodell sparas i variabeln 'trained_model'.



När vi är klara med att träna modellen kan vi helt enkelt komma åt modellen med prefixet 'wv' som är ordet vektormodell. Vi kan också komma åt tokens ordförråd för våra ord och kan skriva ut dem med metoden enligt följande:

vocabof_tokens = lista (model.wv.vocab)

Modellen representerar den tränade modellen i vårt fall. Nu kommer vi åt vektorrepresentationen av det ena ordet i listan över meningen som i vårt fall är 'äpple'. Det gör vi genom att helt enkelt ringa den utbildade modellen. Vi skickar ordet vars vektorrepresentation vi vill skriva ut som 'modell. wv ['äpple']” till dess inmatningsargument. Sedan skriver vi ut resultaten med funktionen 'skriv ut'.

från som nation modeller importera Word2Vec

träningsdata = [ [ 'äpple' , 'är' , 'de' , 'ljuv' , 'äpple' , 'för' , 'word2vec' ] ,
[ 'detta' , 'är' , 'de' , 'andra' , 'äpple' ] ,
[ 'här' , 'annan' , 'äpple' ] ,
[ 'ett' , 'ljuv' , 'äpple' ] ,
[ 'och' , 'Mer' , 'ljuv' , 'äpple' ] ]

modell = Word2Vec ( träningsdata , min_count = 1 )
skriva ut ( modell )
vocabof_tokens = lista ( modell. wv . index_to_key )
skriva ut ( vocabof_tokens )
skriva ut ( modell. wv [ 'äpple' ] )

Från den tidigare nämnda utgången och koden visas ordet inbäddning för ordet 'äpple'. I exemplet skapade vi först en träningsdatauppsättning. Sedan tränade vi en modell på den och sammanfattade modellen. Sedan, med hjälp av modellen, fick vi tillgång till ordens symboliska vokabulär. Efter det visade vi ordet inbäddning för ordet 'äpple'.

Exempel 2:

Med hjälp av gensim-biblioteket, låt oss skapa en annan lista med meningar. Träna vår modell för varje ord i meningen för att skapa ordet inbäddning med hjälp av 'word2vec'-modellen. Först, från gensim-bibliotekspaketet, importeras 'word2vec'-modellen. Sedan skapar vi en annan datamängd som kommer att vara listan som innehåller de två meningarna. Varje mening i listan har fyra ord.

Nu sparar vi den här listan i variabeln 'data'. Sedan anropar vi 'word2vec()'-modellen och matar data till argumenten för denna modell med minimum_count-värdet som är lika med '1'. Så här tränar vi vår modell. Nu kan och kan den lära sig ordinbäddningen av orden som finns i meningarna som finns i listan genom att förutsäga det sammanhang där de finns. För att testa resultaten av vår modell skickar vi helt enkelt ett ord som 'hund' i vår data till modellen. Sedan skriver vi ut resultaten med funktionen 'print()'.

från som nation modeller importera Word2Vec
data = [ [ 'kanin' , 'har' , 'tänder' ] , [ 'hund' , 'har' , 'öron' ] ]
modell = Word2Vec ( data , min_count = 1 )
skriva ut ( modell. wv [ 'hund' ] )

Vi kan observera vektorrepresentationen av ordet som vi matade till modellen som dess indata från det föregående utdraget.

Slutsats

Den här guiden visar metoden för att skapa ordinbäddning för orden som finns i listan över engelska meningar. Vi lärde oss om 'gensim'-biblioteket i Python som tillhandahåller 'word2vec'-modellen för att skapa ordet inbäddning. Dessutom lärde vi oss om ingångsparametrar, hur man tränar 'word2vec'-modellen på träningsdata och hur man presenterar ordet i en representation av vektorn.