Ako vytvoriť vloženie zo zoznamu anglických viet

Ako Vytvorit Vlozenie Zo Zoznamu Anglickych Viet



Zamysleli ste sa niekedy nad tým, keď komunikujeme s našimi strojmi (počítačmi) a dávame im pokyny, aby za nás vykonali konkrétnu úlohu, ako keby sme vykonali konkrétne vyhľadávanie alebo prekladali z jedného jazyka do druhého, ako tomu počítač rozumie a spracováva? To všetko sa deje prostredníctvom podpoľa umelej inteligencie spracovania prirodzeného jazyka. Počítač rozumie číselným hodnotám a technika „vkladania slov“ NLP konvertuje slovo a texty, ktoré dávame počítačom ako vstup do tohto číselného vektora, aby ich počítač mohol rozpoznať. Niekoľko ďalších procesov NLP prebieha nad rámec tejto interakcie medzi človekom a počítačom prostredníctvom jazykových modelov, ale v tejto príručke sa budeme podrobne zaoberať slovom vkladanie.

Syntax:

Rôzne funkcie spadajú pod spracovanie prirodzeného jazyka pre vkladanie slov do textu. Tento článok sa zaoberá funkciou „word2vec“ na tento účel. Aby to bolo jasnejšie, slovo vkladanie konvertuje naše textové vstupy do vektorovej reprezentácie, kde slová, ktoré majú viac-menej rovnaký kontextový význam, poskytli rovnakú reprezentáciu.

Algoritmus „word2vec“ je model neurónovej siete, ktorý je trénovaný tak, že sa naučí vkladať slová tak, že najprv predpovedá kontext slova, v ktorom sa vyskytuje. Tento model berie text ako svoj vstup. Potom sa pre každé slovo v texte vytvorí vektorová reprezentácia daného slova. Tento model je založený na myšlienke, že slová, ktoré sa zdajú mať rovnaký kontext, majú rovnaký význam. Syntax pre „word2vec“ je nasledovná:







$ Word2Vec(vety, min_počet)

Tento algoritmus má dva parametre, ktorými sú „vety“ a „minimálny_počet“. Veta je premenná, kde je uložený zoznam viet alebo text vo forme viet a minimum_count hovorí o hodnote počtu 1, čo znamená, že ktorékoľvek zo slov v texte, ktoré sa objavilo menej ako jedna, je potrebné ignorovať. .



Príklad 1:

V tomto príklade vytvoríme vloženie slov pre slová, ktoré existujú v zozname anglických viet. Na vytvorenie slova „embedding“ musíme použiť model „word2vec“. Tento model je balíkom knižnice „gensim“ Pythonu. Potrebujeme mať nainštalovaný Gensim v našich repozitároch knižnice Python, aby sme mohli pracovať s „word2vec“.



Na implementáciu tohto príkladu budeme pracovať na online kompilátore Pythonu „google colab“. Ak chcete nainštalovať gensim, použite príkaz „pip install gensim“. Tým sa spustí sťahovanie tejto knižnice so všetkými súvisiacimi balíkmi. Akonáhle je nainštalovaný, siwe importujte balík „word2vector“ z gensimu.





Na trénovanie tohto modelu „word2vec“ potrebujeme vytvoriť trénovaciu dátovú množinu. Na to vytvoríme zoznam viet, ktorý obsahuje štyri až päť anglických viet. Tento zoznam uložíme do premennej „training_data“.

Naším ďalším krokom po vytvorení tréningového súboru údajov je natrénovať model „word2vec“ na týchto údajoch. Takže voláme model. Tréningové dáta dávame do vstupných parametrov tohto modelu, ktoré sme uložili do premennej „vstup“. Potom zadáme druhý parameter, ktorým je „minimum_count“. Nastavíme jej hodnotu rovnú „1“. Výstup z tohto tréningového modelu je uložený v premennej „trained_model“.



Keď skončíme s trénovaním modelu, môžeme jednoducho pristupovať k modelu s predponou „wv“, čo je slovo vektorový model. Môžeme tiež získať prístup k slovnej zásobe našich slov a môžeme ich vytlačiť nasledujúcim spôsobom:

vocabof_tokens = zoznam (model.wv.vocab)

Model predstavuje v našom prípade trénovaný model. Teraz pristupujeme k vektorovej reprezentácii jedného slova v zozname vety, ktorým je v našom prípade „jablko“. Robíme to jednoduchým zavolaním trénovaného modelu. Slovo, ktorého vektorovú reprezentáciu chceme vytlačiť, odovzdáme ako „model. wv [‚jablko‘]“ na svoj vstupný argument. Potom výsledky vytlačíme pomocou funkcie „tlač“.

od ako národ modelov importovať Word2Vec

tréningové_údaje = [ [ 'jablko' , 'je' , 'the' , 'sladký' , 'jablko' , 'pre' , 'word2vec' ] ,
[ 'toto' , 'je' , 'the' , 'druhý' , 'jablko' ] ,
[ 'tu' , 'ďalší' , 'jablko' ] ,
[ 'jeden' , 'sladký' , 'jablko' ] ,
[ 'a' , 'viac' , 'sladký' , 'jablko' ] ]

Model = Word2Vec ( tréningové_údaje , min_count = 1 )
vytlačiť ( Model )
vocabof_tokens = zoznam ( Model. wv . index_to_key )
vytlačiť ( vocabof_tokens )
vytlačiť ( Model. wv [ 'jablko' ] )

Z vyššie uvedeného výstupu a kódu je zobrazené vloženie slova pre slovo „jablko“. V tomto príklade sme najprv vytvorili množinu tréningových údajov. Potom sme na ňom natrénovali model a zhrnuli ho. Potom sme pomocou modelu získali prístup k symbolickej slovnej zásobe slov. Potom sme zobrazili vloženie slova pre slovo „jablko“.

Príklad 2:

Pomocou knižnice gensim vytvoríme ďalší zoznam viet. Trénujte náš model pre každé slovo vo vete, aby ste vytvorili vkladanie slova pomocou modelu „word2vec“. Najprv sa z balíka knižnice gensim importuje model „word2vec“. Potom vytvoríme ďalšiu množinu údajov, ktorou bude zoznam, ktorý obsahuje dve vety. Každá veta v zozname má štyri slová.

Teraz tento zoznam uložíme do premennej „data“. Potom zavoláme model „word2vec()“ a údaje vložíme do argumentov tohto modelu s hodnotou minimum_count, ktorá sa rovná „1“. Takto trénujeme náš model. Teraz je schopný a môže sa naučiť vkladanie slov zo slov, ktoré existujú vo vetách, ktoré sú prítomné v zozname, predpovedaním kontextu, v ktorom existujú. Aby sme otestovali výsledky nášho modelu, jednoducho odošleme do modelu slovo ako „pes“ v našich údajoch. Potom výsledky vytlačíme pomocou funkcie „print()“.

od ako národ modelov importovať Word2Vec
údajov = [ [ 'králik' , 'má' , 'zuby' ] , [ 'pes' , 'má' , 'uši' ] ]
Model = Word2Vec ( údajov , min_count = 1 )
vytlačiť ( Model. wv [ 'pes' ] )

Môžeme pozorovať vektorovú reprezentáciu slova, ktoré sme priviedli do modelu ako jeho vstup z predchádzajúceho úryvku výstupu.

Záver

Táto príručka ukazuje metódu na vytvorenie vkladania slov pre slová, ktoré existujú v zozname anglických viet. Dozvedeli sme sa o knižnici „gensim“ Pythonu, ktorá poskytuje model „word2vec“ na vytvorenie vkladania slov. Ďalej sme sa dozvedeli o vstupných parametroch, ako trénovať model „word2vec“ na trénovacích dátach a ako prezentovať slovo v reprezentácii vektora.