Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Oppiskele Sanojen Upotusten Perusteet | Sanaesitykset
Johdatus NLP:hen Pythonilla

Sanojen Upotusten Perusteet

Pyyhkäise näyttääksesi valikon

Sanallisten upotusten ymmärtäminen

Perinteisillä tekstin esitystavoilla, kuten bag of words ja TF-IDF, on merkittäviä rajoituksia. Ne käsittelevät sanoja erillisinä, sivuuttavat semanttiset suhteet ja tuottavat korkean ulottuvuuden harvoja vektoreita, jotka muuttuvat laskennallisesti tehottomiksi suurissa aineistoissa.

Haittapuolet

Sanalliset upotukset ratkaisevat nämä ongelmat ottamalla huomioon sanojen esiintymisyhteyden ja tarjoavat kielelle vivahteikkaamman ymmärryksen.

Note
Määritelmä

Sanaesitykset ovat tiheitä vektoriedustuksia sanoista jatkuvassa vektoriavaruudessa, jossa semanttisesti samankaltaiset sanat sijoittuvat lähelle toisiaan.

Useita malleja ja menetelmiä on kehitetty tuottamaan merkityksellisiä sanaesityksiä:

  • Word2Vec: Googlen kehittämä Word2Vec esittää sanat tiheinä vektoreina kahden arkkitehtuurin avulla: continuous bag of words (CBoW), joka ennustaa sanan sen ympäröivän kontekstin perusteella, ja Skip-gram, joka ennustaa ympäröivät sanat annetusta sanasta;

  • GloVe: Stanfordin kehittämä GloVe (global vectors) tuottaa sanaesityksiä analysoimalla koko korpuksen globaaleja sanapariyhteyksiä, tunnistaen semanttisia suhteita sen perusteella, kuinka usein sanaparit esiintyvät yhdessä;

  • FastText: Facebook AI Researchin esittelemä FastText pohjautuu Word2Veciin, mutta esittää sanat merkki n-grammeina. Tämä mahdollistaa osasanatason tiedon mallintamisen, parantaen kykyä käsitellä harvinaisia ja sanaston ulkopuolisia sanoja sekä morfologisesti rikkaita kieliä.

Mallit

Word2Vec ja FastText ovat yleisimmin käytetyt mallit sanaupotusten luomiseen. Koska FastText on kuitenkin vain paranneltu versio Word2Vecistä, ohitamme sen ja keskitymme ainoastaan Word2Vec-malliin.

Kuinka Word2Vec toimii?

Word2Vec muuntaa sanat vektoreiksi prosessilla, joka alkaa one-hot-koodauksella, jossa jokainen sanaston sana esitetään yksilöllisellä vektorilla, jossa on yksi 1 nollien joukossa. Tarkastellaan esimerkkiä:

One-hot-koodaus

Tämä vektori toimii syötteenä neuroverkolle, joka on suunniteltu 'oppimaan' sanaupotuksia. Verkon arkkitehtuuri voi perustua kahteen malliin:

  • CBoW (continuous bag of words): ennustaa kohdesanan ympäröivien sanojen muodostaman kontekstin perusteella;
  • Skip-gram: ennustaa ympäröivät kontekstisanat kohdesanan perusteella.

Molemmissa Word2Vec-arkkitehtuureissa mallille annetaan jokaisella harjoituskierroksella kohdesana ja sitä ympäröivät sanat kontekstina, jotka esitetään one-hot-koodattuina vektoreina. Harjoitusaineisto koostuu siis näistä pareista tai ryhmistä, joissa jokainen kohdesana liitetään sitä ympäröiviin kontekstisanoihin.

Jokainen sana sanastossa toimii vuorollaan kohdesanana, kun malli käy tekstin läpi käyttäen liukuvaa kontekstikkunaa. Tämä tekniikka siirtyy järjestelmällisesti sanasta toiseen varmistaen, että kaikki mahdolliset kontekstit korpuksessa tulevat huomioiduiksi oppimisessa.

Note
Määritelmä

Kontekstikkuna on kiinteä määrä sanoja kohdesanan ympärillä, joita malli käyttää kontekstin oppimiseen. Se määrittää, kuinka monta sanaa ennen ja jälkeen kohdesanan otetaan huomioon harjoittelun aikana.

Tarkastellaan esimerkkiä, jossa ikkunan koko on 2, jotta asia selkeytyy:

Liukuva ikkuna

Konteksti-ikkunan koko 2 tarkoittaa, että malli ottaa huomioon enintään 2 sanaa sekä kohdesanan vasemmalta että oikealta puolelta, mikäli nämä sanat ovat saatavilla tekstin rajoissa. Kuten huomaat, jos jommallakummalla puolella on alle 2 sanaa, malli ottaa mukaan niin monta sanaa kuin on saatavilla.

question mark

Mitä tarkoittaa konteksti-ikkuna, jonka koko on 5?

Valitse oikea vastaus

Oliko kaikki selvää?

Miten voimme parantaa sitä?

Kiitos palautteestasi!

Osio 4. Luku 1

Kysy tekoälyä

expand

Kysy tekoälyä

ChatGPT

Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme

Osio 4. Luku 1
some-alt