Hogyan készítsünk beágyazást angol mondatok listájából

Hogyan Keszitsunk Beagyazast Angol Mondatok Listajabol



Gondolt már arra, amikor a gépeinkkel (számítógépeinkkel) kommunikálunk, és utasításokat adunk nekik egy adott feladat elvégzésére, például egy adott keresés végrehajtására vagy az egyik nyelvről a másikra fordításra, hogyan érti meg és dolgozza fel ezt a számítógép? Mindez a természetes nyelvi feldolgozás mesterséges intelligencia almezőjén keresztül történik. A számítógép megérti a számértékeket, és az NLP „szóbeágyazás” technikája átalakítja a szót és a számítógépeknek bemenetként megadott szövegeket a számvektorrá, hogy a számítógép felismerje. Az NLP számos más folyamata az ember-számítógép interakción túlmenően nyelvi modelleken keresztül történik, de ebben az útmutatóban részletesen foglalkozunk a beágyazás szóval.

Szintaxis:

A szöveg szóbeágyazásánál különböző funkciók tartoznak a Natural Language Processing alá. Ez a cikk az erre a célra szolgáló „word2vec” függvényt tárgyalja. A világosabbá tétel érdekében a beágyazás szó a szövegbevitelünket vektoros reprezentációvá alakítja át, ahol a többé-kevésbé azonos kontextuális jelentésű szavak ugyanazt a reprezentációt adták.

A „word2vec” algoritmus egy neurális hálózati modell, amelyet úgy tanítanak, hogy megtanulja a szavak beágyazását úgy, hogy először megjósolja a szó kontextusát, amelyben az megjelenik. Ez a modell a szöveget veszi be bemenetként. Ezután a szövegben szereplő minden egyes szóhoz létrejön a vektoros ábrázolás az adott szóhoz. Ez a modell azon az elgondoláson alapul, hogy az azonos kontextusú szavaknak ugyanaz a jelentése. A „word2vec” szintaxisa a következő:







$ Word2Vec(mondatok, min_szám)

Ennek az algoritmusnak két paramétere van, ezek a „mondatok” és a „minimális_szám”. A mondat az a változó, ahol a mondatok listája vagy a mondatok formájában lévő szöveg tárolódik, és a minimum_count 1-es számértékről beszél, ami azt jelenti, hogy a szövegben az egynél kevesebb szót figyelmen kívül kell hagyni. .



1. példa:

Ebben a példában létrehozzuk a szóbeágyazásokat az angol mondatok listájában szereplő szavakhoz. A „beágyazás” szó létrehozásához a „word2vec” modellt kell használnunk. Ez a modell a Python „gensim” könyvtárának csomagja. A „word2vec” használatához telepíteni kell a Gensim-et a Python-könyvtárak tárolóiba.



A példa megvalósításához a „google colab” online Python fordítóval fogunk dolgozni. A gensim telepítéséhez használja a „pip install gensim” parancsot. Ezzel megkezdődik a könyvtár letöltése az összes kapcsolódó csomaggal együtt. A telepítés után importálja a „word2vector” csomagot a gensimből.





Ennek a „word2vec” modellnek a betanításához létre kell hoznunk egy képzési adatkészletet. Ehhez létrehozunk egy mondatlistát, amely négy-öt angol mondatot tartalmaz. Ezt a listát a „training_data” változóba mentjük.

A következő lépésünk a betanítási adatkészlet létrehozása után a „word2vec” modell betanítása ezeken az adatokon. Tehát hívjuk a modellt. Ennek a modellnek a bemeneti paramétereiben adjuk meg a betanítási adatokat, amelyeket az „input” változóban mentettünk el. Ezután megadjuk a második paramétert, ami a „minimális_szám”. Értékét „1”-re állítjuk. Ennek a betanítási modellnek a kimenete a „trained_model” változóba kerül mentésre.



Ha végeztünk a modell betanításával, egyszerűen elérhetjük a modellt a „wv” előtaggal, ami a vektormodell szó. Hozzáférhetünk szavaink token szótárához is, és kinyomtathatjuk őket a következő módszerrel:

vocabof_tokens = lista (model.wv.vocab)

A modell esetünkben a betanított modellt reprezentálja. Most elérjük a mondatlistában szereplő egyetlen szó vektoros ábrázolását, amely esetünkben az „alma”. Ezt úgy tesszük, hogy egyszerűen felhívjuk a betanított modellt. A szót, amelynek vektoros ábrázolását ki akarjuk nyomtatni, „modellként” adjuk át. wv [‘alma’]” bemeneti argumentumához. Ezután a „print” funkcióval kinyomtatjuk az eredményeket.

tól től mint nemzet modellek import Word2Vec

képzési_adatok = [ [ 'alma' , 'van' , 'a' , 'édes' , 'alma' , 'for' , 'szó2vec' ] ,
[ 'ez' , 'van' , 'a' , 'második' , 'alma' ] ,
[ 'itt' , 'egy másik' , 'alma' ] ,
[ 'egy' , 'édes' , 'alma' ] ,
[ 'és' , 'több' , 'édes' , 'alma' ] ]

modell = Word2Vec ( képzési_adatok , min_count = 1 )
nyomtatás ( modell )
vocabof_tokens = lista ( modell. wv . index_to_key )
nyomtatás ( vocabof_tokens )
nyomtatás ( modell. wv [ 'alma' ] )

A korábban említett kimenetből és kódból megjelenik az „alma” szó beágyazása. A példában először létrehoztunk egy képzési adatkészletet. Ezután betanítottunk rá egy modellt, és összefoglaltuk a modellt. Ezután a modell segítségével hozzáfértünk a szavak jelképes szókészletéhez. Ezt követően az „alma” szóhoz megjelenítettük a beágyazás szót.

2. példa:

A gensim könyvtár segítségével hozzunk létre egy másik mondatlistát. Tanítsa meg modellünket a mondat minden egyes szavára, hogy létrehozza a szóbeágyazást a „word2vec” modell segítségével. Először a gensim könyvtárcsomagból a „word2vec” modellt importálják. Ezután létrehozunk egy másik adatkészletet, amely a két mondatot tartalmazó lista lesz. A lista minden mondatában négy szó található.

Most elmentjük ezt a listát a „data” változóba. Ezután meghívjuk a „word2vec()” modellt, és betápláljuk az adatokat a modell argumentumaiba a minimum_count értékkel, amely egyenlő „1”-el. Így képezzük a modellünket. Most már képes és meg is tudja tanulni a listában szereplő mondatokban létező szavak szóbeágyazását azáltal, hogy megjósolja a szövegkörnyezetet, amelyben léteznek. Modellünk eredményeinek teszteléséhez egyszerűen átadunk egy olyan szót, mint a „kutya” az adatainkban a modellnek. Ezután a „print()” függvény segítségével kinyomtatjuk az eredményeket.

tól től mint nemzet modellek import Word2Vec
adat = [ [ 'nyúl' , 'van' , 'fogak' ] , [ 'kutya' , 'van' , 'fülek' ] ]
modell = Word2Vec ( adat , min_count = 1 )
nyomtatás ( modell. wv [ 'kutya' ] )

Megfigyelhetjük annak a szónak a vektoros reprezentációját, amelyet a modellbe betápláltunk a kimenet előző részletéből.

Következtetés

Ez az útmutató bemutatja a szóbeágyazás létrehozásának módszerét az angol mondatok listájában szereplő szavakhoz. Megismertük a Python „gensim” könyvtárát, amely a „word2vec” modellt biztosítja a szóbeágyazás létrehozásához. Továbbá megtanultuk a bemeneti paramétereket, hogyan lehet betanítani a „word2vec” modellt a betanítási adatokra, és hogyan lehet a szót vektorábrázolásban bemutatni.