Oppikaa tekoälyä Pythonilla · Oppitunti

GloVe- ja FastText-upotukset

Globaalit yhteisesiintymistilastot, FastTextin osasanat, esikoulutettujen upotusten lataaminen.

Oppitunti 2/413 vaihetta

GloVe- ja FastText-upotukset on ilmainen Oppikaa tekoälyä Pythonilla-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea tästä oppimispolusta kokonaan mitkä tahansa 3 oppituntia ilmaiseksi — sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä käytännön harjoittelun sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppitunti kuuluu Oppikaa tekoälyä Pythonilla-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.

Word2Vecin lisäksi

Word2Vec oppii paikallisista asiayhteysikkunoista. Kaksi muuta vaikutusvaltaista upotusmenetelmää lähestyy asiaa eri tavoin: GloVe käyttää globaaleja tilastoja ja FastText merkkijonoja.

Mikä GloVe on

GloVe (Global Vectors) koulutetaan globaalin yhteisesiintymismatriisin avulla. Matriisi kuvaa, kuinka usein kukin sanapari esiintyy yhdessä koko korpuksessa, ei vain paikallisissa ikkunoissa.

Miksi globaalit tilastot auttavat

Hajottamalla koko yhteisesiintymismatriisin GloVe tallentaa koko korpuksen kattavia suhteita ja sanojen välisiä suhteita. Tuloksena on usein laadukkaita vektoreita, jotka vastaavat tai päihittävät Word2Vecin analogiatehtävissä.

Esikoulutettujen vektoreiden lataaminen

Upotusten kouluttaminen vaatii valtavia korpuksia, joten yleensä lataamme esikoulutettuja upotuksia. gensim.downloader hakee suosittuja malleja, kuten GloVe-vektoreita, yhdellä rivillä.

import gensim.downloader as api

glove = api.load("glove-wiki-gigaword-100")
print(glove["computer"].shape)   # (100,)

Esikoulutetun GloVen käyttäminen

Lataamisen jälkeen GloVe-vektorit tukevat samoja toimintoja kuin Word2Vec: samankaltaisuuksien etsimistä ja analogioita.

import gensim.downloader as api

glove = api.load("glove-wiki-gigaword-100")
print(glove.most_similar("king", topn=3))
print(glove.most_similar(positive=["king", "woman"], negative=["man"], topn=1))

Sanaston ulkopuolisten sanojen ongelma

Word2Vec ja GloVe määrittävät vektorit vain koulutuksessa nähdyille sanoille. Uudella tai väärin kirjoitetulla sanalla (sanaston ulkopuolinen, OOV) ei ole vektoria, mikä on todellinen rajoite sotkuisessa tekstissä.

Mikä FastText on

FastText ratkaisee OOV-ongelman esittämällä jokaisen sanan merkkien n-grammien joukkona. Sana "playing" sisältää osia, kuten "pla", "lay" ja "ing", joten se jakaa rakennetta sukulaissanojensa kanssa.

Miten merkkien n-grammit auttavat

Koska sanavektori rakennetaan sanan osista, FastText voi muodostaa vektorin ennestään näkemättömälle sanalle sen n-grammeista. Se tallentaa myös morfologiaa ja auttaa käsittelemään etuliitteitä, jälkiliitteitä ja harvinaisia sanoja.

FastTextin kouluttaminen

gensim tarjoaa FastText-luokan, jonka rajapinta muistuttaa Word2Veciä. min_n- ja max_n-parametrit määrittävät merkkien n-grammien vaihteluvälin.

from gensim.models import FastText

model = FastText(
    sentences,
    vector_size=100,
    window=5,
    min_count=1,
    min_n=3,
    max_n=6,
)

FastText käsittelee OOV-sanat

Myös koulutuksessa näkemättömälle sanalle palautetaan vektori, joka kootaan sen merkkien n-grammeista. Tämä on FastTextin tunnusomainen etu Word2Veciin ja GloVeen verrattuna.

from gensim.models import FastText

model = FastText(sentences, vector_size=100, min_n=3, max_n=6, min_count=1)
# works even if "catlike" was never in training
vec = model.wv["catlike"]

Upotuksen valitseminen

Käyttäkää GloVe- tai Word2Vec-menetelmää puhtaalle tekstille, jonka sanasto on kiinteä. Valitkaa FastText morfologisesti rikkaille kielille, meluisalle tekstille tai silloin, kun OOV-sanoja esiintyy usein. Esikoulutetut vektorit ovat kaikissa tapauksissa hyvä lähtökohta.

Pikatesti

Testatkaa upotuksia koskevat tietonne.

Kertaus

Kertaus: GloVe oppii globaaleista yhteisesiintymistilastoista, kun taas FastText käyttää merkkien n-grammeja sanaston ulkopuolisten sanojen ja morfologian käsittelyyn. Ladatkaa esikoulutetut vektorit komennolla gensim.downloader.load. Molemmat tukevat samankaltaisuuksien etsimistä ja analogioita. Valitkaa FastText meluisalle tai morfologisesti rikkaalle tekstille ja GloVe/Word2Vec puhtaille, kiinteän sanaston aineistoille.

Aloita maksutta

Opi Python tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
53
Oppitunnit
225

Usein kysytyt kysymykset

Onko oppitunti ”GloVe- ja FastText-upotukset” ilmainen?

Kyllä — voit lukea täällä verkossa kokonaan ilmaiseksi mitkä tahansa Oppikaa tekoälyä Pythonilla-oppimispolun 3 oppituntia, myös oppitunnin “GloVe- ja FastText-upotukset”. Sen jälkeen CoddyKit PRO avaa kaikki oppitunnit sekä interaktiiviset harjoitukset sisäänrakennetulla koodieditorilla ja ympäri vuorokauden toimivalla tekoälytuutorilla. Oppikaa tekoälyä Pythonilla-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”GloVe- ja FastText-upotukset”?

Globaalit yhteisesiintymistilastot, FastTextin osasanat, esikoulutettujen upotusten lataaminen. Harjoittelet Oppikaa tekoälyä Pythonilla-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Oppikaa tekoälyä Pythonilla-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Oppikaa tekoälyä Pythonilla-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”GloVe- ja FastText-upotukset”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Oppikaa tekoälyä Pythonilla-oppitunnilla?

Kyllä. Jokainen Oppikaa tekoälyä Pythonilla-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. Word2Vec: Skip-gram ja CBOW
  2. GloVe- ja FastText-upotukset
  3. Tekstin luokittelu BERTillä
  4. Semanttinen samankaltaisuus ja lauseupotukset
← Takaisin: Oppikaa tekoälyä Pythonilla