Paano Gumawa ng Pag-embed mula sa Listahan ng Mga Pangungusap sa Ingles

Paano Gumawa Ng Pag Embed Mula Sa Listahan Ng Mga Pangungusap Sa Ingles



Naisip mo na ba kapag nakikipag-usap kami sa aming mga makina (mga computer) at binibigyan sila ng mga tagubilin upang magsagawa ng isang partikular na gawain para sa amin tulad ng pagsasagawa ng isang partikular na paghahanap o magsalin mula sa isang wika patungo sa isa pa, paano ito naiintindihan at pinoproseso ng isang computer? Ginagawa ang lahat sa pamamagitan ng Artificial Intelligence subfield ng Natural Language Processing. Nauunawaan ng computer ang mga numerical value at ang pamamaraan ng NLP na 'pag-embed ng salita' ay nagko-convert ng salita at mga text na ibinibigay namin bilang input sa mga computer sa numerical vector na iyon upang makilala ito ng computer. Maraming iba pang proseso ng NLP ang nangyayari sa kabila ng pakikipag-ugnayan ng tao-computer na ito sa pamamagitan ng mga modelo ng wika ngunit tatalakayin namin nang detalyado ang salitang pag-embed sa gabay na ito.

Syntax:

Ang iba't ibang mga function ay nasa ilalim ng Natural Language Processing para sa pag-embed ng salita ng teksto. Sinasaklaw ng artikulong ito ang function na 'word2vec' para sa layuning ito. Upang gawing mas malinaw, iko-convert ng salitang pag-embed ang aming mga text input sa representasyon ng vector kung saan ang mga salitang iyon na may higit o mas kaunting mga kahulugan sa konteksto ay nagbigay ng parehong representasyon.

Ang algorithm ng 'word2vec' ay isang modelo ng neural network na sinanay sa paraang natututunan nito ang pag-embed ng mga salita sa pamamagitan ng unang paghula sa konteksto ng salita kung saan ito lumilitaw. Kinukuha ng modelong ito ang text bilang input nito. Pagkatapos, para sa bawat salita sa teksto, ang representasyon ng vector ay nilikha para sa salitang iyon. Ang modelong ito ay batay sa ideya na ang mga salita na lumilitaw na may parehong konteksto ay may parehong kahulugan. Ang syntax para sa 'word2vec' ay ang mga sumusunod:







$ Word2Vec(mga pangungusap, min_count)

Ang algorithm na ito ay may dalawang parameter na 'mga pangungusap' at 'minimum_count'. Ang pangungusap ay ang variable kung saan ang listahan ng mga pangungusap o ang teksto sa anyo ng mga pangungusap ay naka-imbak at ang minimum_count ay nagsasalita tungkol sa bilang ng halaga ng 1 na nangangahulugan na ang alinman sa mga salita sa teksto na lumitaw na mas mababa sa isa ay kailangang balewalain .



Halimbawa 1:

Sa halimbawang ito, gumawa kami ng salitang embed para sa mga salitang umiiral sa listahan ng mga English na pangungusap. Upang lumikha ng salitang 'pag-embed', kailangan nating gamitin ang modelong 'word2vec'. Ang modelong ito ay isang pakete ng 'gensim' library ng Python. Kailangan nating mai-install ang Gensim sa aming mga repositoryo ng library ng Python upang gumana sa 'word2vec'.



Upang maipatupad ang halimbawang ito, gagawa kami sa 'google colab' online na Python compiler. Upang i-install ang gensim, gamitin ang command na 'pip install gensim'. Nagsisimula itong i-download ang library na ito kasama ang lahat ng nauugnay na package nito. Kapag na-install na ito, i-import ang package na 'word2vector' mula sa gensim.





Para sanayin ang modelong 'word2vec' na ito, kailangan naming gumawa ng dataset ng pagsasanay. Para diyan, gumawa kami ng listahan ng mga pangungusap na naglalaman ng apat hanggang limang English na pangungusap. Ise-save namin ang listahang ito sa variable na 'training_data'.

Ang aming susunod na hakbang pagkatapos gumawa ng dataset ng pagsasanay ay ang sanayin ang modelong 'word2vec' sa data na ito. Kaya, tinatawag namin ang modelo. Ibinibigay namin ang data ng pagsasanay sa mga parameter ng input ng modelong ito na na-save namin sa variable na 'input'. Pagkatapos, tinukoy namin ang pangalawang parameter na 'minimum_count'. Itinakda namin ang halaga nito na katumbas ng '1'. Ang output mula sa modelong pagsasanay na ito ay naka-save sa variable na 'trained_model'.



Kapag tapos na tayo sa pagsasanay sa modelo, maaari na nating i-access ang modelo gamit ang prefix na 'wv' na salitang vector model. Maaari rin naming i-access ang bokabularyo ng token ng aming mga salita at maaaring i-print ang mga ito gamit ang pamamaraan tulad ng sumusunod:

vocabof_tokens = listahan (model.wv.vocab)

Ang modelo ay kumakatawan sa sinanay na modelo sa aming kaso. Ngayon, na-access namin ang representasyon ng vector ng isang salita sa listahan ng pangungusap na, sa aming kaso, ay 'mansanas'. Ginagawa namin ito sa pamamagitan lamang ng pagtawag sa sinanay na modelo. Ipinapasa namin ang salita na ang representasyon ng vector ay gusto naming i-print bilang 'modelo. wv ['mansanas']' sa input argument nito. Pagkatapos, i-print namin ang mga resulta gamit ang function na 'print'.

mula sa bilang isang bansa mga modelo angkat Word2Vec

pagsasanay_data = [ [ 'mansanas' , 'ay' , 'ang' , 'matamis' , 'mansanas' , 'para sa' , 'word2vec' ] ,
[ 'ito' , 'ay' , 'ang' , 'pangalawa' , 'mansanas' ] ,
[ 'dito' , 'isa pa' , 'mansanas' ] ,
[ 'isa' , 'matamis' , 'mansanas' ] ,
[ 'at' , 'higit pa' , 'matamis' , 'mansanas' ] ]

modelo = Word2Vec ( pagsasanay_data , min_count = 1 )
print ( modelo )
vocabof_tokens = listahan ( modelo. wv . index_to_key )
print ( vocabof_tokens )
print ( modelo. wv [ 'mansanas' ] )

Mula sa naunang nabanggit na output at code, ipinapakita ang salitang pag-embed para sa salitang 'mansanas'. Sa halimbawa, una kaming gumawa ng dataset ng pagsasanay. Pagkatapos, sinanay namin ang isang modelo tungkol dito at ibinubuod ang modelo. Pagkatapos, gamit ang modelo, nakakuha kami ng access sa token na bokabularyo ng mga salita. Pagkatapos nito, ipinakita namin ang salitang pag-embed para sa salitang 'mansanas'.

Halimbawa 2:

Gamit ang library ng gensim, gumawa tayo ng isa pang listahan ng mga pangungusap. Sanayin ang aming modelo para sa bawat salita sa pangungusap upang lumikha ng salitang pag-embed gamit ang modelong 'word2vec'. Una, mula sa gensim library package, ang 'word2vec' na modelo ay na-import. Pagkatapos, gumawa kami ng isa pang set ng data na magiging listahan na naglalaman ng dalawang pangungusap. Ang bawat pangungusap sa listahan ay may apat na salita.

Ngayon, ise-save namin ang listahang ito sa variable na 'data'. Pagkatapos, tinatawag namin ang 'word2vec()' na modelo at pinapakain ang data sa mga argumento ng modelong ito na may minimum_count na halaga na katumbas ng '1'. Ito ay kung paano namin sinasanay ang aming modelo. Ngayon, nagagawa at natututo na nito ang salitang pag-embed ng mga salita na umiiral sa mga pangungusap na nasa listahan sa pamamagitan ng paghula sa konteksto kung saan umiiral ang mga ito. Upang subukan ang mga resulta ng aming modelo, ipinapasa lang namin ang isang salita tulad ng 'aso' sa aming data sa modelo. Pagkatapos, i-print namin ang mga resulta gamit ang function na 'print()'.

mula sa bilang isang bansa mga modelo angkat Word2Vec
datos = [ [ 'kuneho' , 'may' , 'ngipin' ] , [ 'aso' , 'may' , 'mga tainga' ] ]
modelo = Word2Vec ( datos , min_count = 1 )
print ( modelo. wv [ 'aso' ] )

Maaari naming obserbahan ang representasyon ng vector ng salita na ipinakain namin sa modelo bilang input nito mula sa nakaraang snippet ng output.

Konklusyon

Ang gabay na ito ay nagpapakita ng paraan upang lumikha ng salitang pag-embed para sa mga salitang umiiral sa listahan ng mga pangungusap sa Ingles. Nalaman namin ang tungkol sa 'gensim' library ng Python na nagbibigay ng 'word2vec' na modelo para gawin ang word na pag-embed. Higit pa rito, natutunan namin ang tungkol sa mga parameter ng pag-input, kung paano sanayin ang modelong 'word2vec' sa data ng pagsasanay, at kung paano ipakita ang salita sa isang representasyon ng vector.