AI-For-Beginners/translations/fi/lessons/5-NLP
leestott 07e1ffa96b 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
..
13-TextRep 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
14-Embeddings 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
15-LanguageModeling 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
16-RNN 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
17-GenerativeNetworks 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
18-Transformers 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
19-NER 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
20-LangModels 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00
README.md 🌐 Update translations via Co-op Translator 2025-08-28 22:12:36 +00:00

README.md

Luonnollisen kielen kÀsittely

Yhteenveto NLP-tehtÀvistÀ doodlena

TÀssÀ osiossa keskitymme kÀyttÀmÀÀn neuroverkkoja luonnollisen kielen kÀsittelyyn (NLP) liittyvien tehtÀvien ratkaisemiseen. On monia NLP-ongelmia, joita haluamme tietokoneiden pystyvÀn ratkaisemaan:

  • Tekstin luokittelu on tyypillinen luokitteluongelma, joka liittyy tekstijonoihin. EsimerkkejĂ€ ovat sĂ€hköpostiviestien luokittelu roskapostiksi tai ei-roskapostiksi, tai artikkeleiden luokittelu urheiluun, liiketoimintaan, politiikkaan jne. LisĂ€ksi chatbotteja kehitettĂ€essĂ€ meidĂ€n on usein ymmĂ€rrettĂ€vĂ€, mitĂ€ kĂ€yttĂ€jĂ€ haluaa sanoa – tĂ€ssĂ€ tapauksessa kĂ€sittelemme tarkoituksen luokittelua. Tarkoituksen luokittelussa on usein kĂ€siteltĂ€vĂ€ monia kategorioita.
  • Tunneanalyysi on tyypillinen regressio-ongelma, jossa meidĂ€n on annettava lauseelle numero (tunne), joka vastaa sen positiivisuuden/negatiivisuuden astetta. Kehittyneempi versio tunneanalyysistĂ€ on aspektipohjainen tunneanalyysi (ABSA), jossa tunteet kohdistetaan koko lauseen sijaan sen eri osiin (aspekteihin), esim. TĂ€ssĂ€ ravintolassa pidin ruoasta, mutta tunnelma oli kamala.
  • Nimekkeiden tunnistus (NER) viittaa ongelmaan, jossa tekstistĂ€ poimitaan tiettyjĂ€ entiteettejĂ€. Esimerkiksi lauseessa Minun tĂ€ytyy lentÀÀ huomenna Pariisiin sanat huomenna viittaavat AIKAAN ja Pariisi PAIKKAAN.
  • Avainsanojen poiminta on samankaltainen kuin NER, mutta siinĂ€ sanat, jotka ovat tĂ€rkeitĂ€ lauseen merkityksen kannalta, poimitaan automaattisesti ilman erityistĂ€ esikoulutusta tiettyihin entiteettityyppeihin.
  • Tekstin klusterointi voi olla hyödyllistĂ€, kun haluamme ryhmitellĂ€ yhteen samankaltaisia lauseita, esimerkiksi teknisen tuen keskusteluissa esiintyviĂ€ samankaltaisia pyyntöjĂ€.
  • Kysymys-vastausjĂ€rjestelmĂ€t viittaavat mallin kykyyn vastata tiettyyn kysymykseen. Malli saa syötteenĂ€ tekstikappaleen ja kysymyksen, ja sen on löydettĂ€vĂ€ tekstistĂ€ kohta, jossa vastaus kysymykseen on (tai joskus luotava vastausteksti).
  • Tekstin generointi on mallin kyky luoda uutta tekstiĂ€. SitĂ€ voidaan pitÀÀ luokittelutehtĂ€vĂ€nĂ€, jossa ennustetaan seuraava kirjain/sana jonkin tekstisyötteen perusteella. Kehittyneet tekstin generointimallit, kuten GPT-3, pystyvĂ€t ratkaisemaan muita NLP-tehtĂ€viĂ€ kĂ€yttĂ€mĂ€llĂ€ tekniikoita, kuten prompt-ohjelmointi tai prompt-suunnittelu.
  • Tekstin tiivistĂ€minen on tekniikka, jossa haluamme tietokoneen "lukevan" pitkĂ€n tekstin ja tiivistĂ€vĂ€n sen muutamaan lauseeseen.
  • KonekÀÀnnös voidaan nĂ€hdĂ€ yhdistelmĂ€nĂ€ tekstin ymmĂ€rtĂ€mistĂ€ yhdellĂ€ kielellĂ€ ja tekstin generointia toisella kielellĂ€.

Aluksi suurin osa NLP-tehtÀvistÀ ratkaistiin perinteisillÀ menetelmillÀ, kuten kielioppeja hyödyntÀmÀllÀ. Esimerkiksi konekÀÀnnöksessÀ kÀytettiin jÀsennin-ohjelmia, jotka muunsivat alkuperÀisen lauseen syntaksipuuksi, minkÀ jÀlkeen korkeampia semanttisia rakenteita poimittiin lauseen merkityksen esittÀmiseksi. TÀmÀn merkityksen ja kohdekielen kieliopin perusteella luotiin lopputulos. NykyÀÀn monet NLP-tehtÀvÀt ratkaistaan tehokkaammin neuroverkkojen avulla.

Monet klassiset NLP-menetelmÀt on toteutettu Natural Language Processing Toolkit (NLTK) -kirjastossa Pythonille. Verkossa on saatavilla erinomainen NLTK-kirja, joka kattaa, miten erilaisia NLP-tehtÀviÀ voidaan ratkaista NLTK:ta kÀyttÀen.

Kurssillamme keskitymme pÀÀasiassa neuroverkkojen kÀyttöön NLP:ssÀ, ja kÀytÀmme NLTK:ta tarvittaessa.

Olemme jo oppineet kÀyttÀmÀÀn neuroverkkoja taulukkodatan ja kuvien kÀsittelyyn. Suurin ero nÀiden datatyyppien ja tekstin vÀlillÀ on, ettÀ teksti on vaihtelevan pituinen jono, kun taas kuvien tapauksessa syötteen koko tiedetÀÀn etukÀteen. Vaikka konvoluutiot voivat poimia kuvioita syötteestÀ, tekstin kuviot ovat monimutkaisempia. Esimerkiksi kielteisyys voi olla erotettuna subjektista monilla sanoilla (esim. En pidÀ appelsiineista vs. En pidÀ noista isoista vÀrikkÀistÀ maukkaista appelsiineista), ja se tulisi silti tulkita yhtenÀ kuviona. Siksi kielen kÀsittelyyn tarvitaan uusia neuroverkkotyyppejÀ, kuten toistoverkkoja ja transformereita.

Kirjastojen asentaminen

Jos kÀytÀt paikallista Python-asennusta tÀmÀn kurssin suorittamiseen, saatat joutua asentamaan kaikki NLP:ssÀ tarvittavat kirjastot seuraavilla komennoilla:

PyTorchille

pip install -r requirements-torch.txt

TensorFlow'lle

pip install -r requirements-tf.txt

Voit kokeilla NLP:tÀ TensorFlow'lla Microsoft Learnissa

GPU-varoitus

TÀssÀ osiossa joissakin esimerkeissÀ koulutamme melko suuria malleja.

  • KĂ€ytĂ€ GPU:lla varustettua tietokonetta: On suositeltavaa suorittaa muistikirjat GPU:lla varustetulla tietokoneella, jotta odotusajat suurten mallien kanssa lyhenevĂ€t.
  • GPU-muistin rajoitukset: GPU:lla suorittaminen voi johtaa tilanteisiin, joissa GPU-muisti loppuu, erityisesti suuria malleja koulutettaessa.
  • GPU-muistin kulutus: GPU-muistin kulutus koulutuksen aikana riippuu useista tekijöistĂ€, kuten minibatchin koosta.
  • PienennĂ€ minibatchin kokoa: Jos kohtaat GPU-muistiongelmia, harkitse minibatchin koon pienentĂ€mistĂ€ koodissasi mahdollisena ratkaisuna.
  • TensorFlow'n GPU-muistin vapautus: TensorFlow'n vanhemmat versiot eivĂ€t vĂ€lttĂ€mĂ€ttĂ€ vapauta GPU-muistia oikein, kun koulutetaan useita malleja yhdessĂ€ Python-ytimessĂ€. GPU-muistin kĂ€ytön hallitsemiseksi tehokkaasti voit mÀÀrittÀÀ TensorFlow'n varaamaan GPU-muistia vain tarpeen mukaan.
  • Koodin sisĂ€llyttĂ€minen: Voit asettaa TensorFlow'n kasvattamaan GPU-muistin varausta vain tarvittaessa lisÀÀmĂ€llĂ€ seuraavan koodin muistikirjoihisi:
physical_devices = tf.config.list_physical_devices('GPU') 
if len(physical_devices)>0:
    tf.config.experimental.set_memory_growth(physical_devices[0], True) 

Jos olet kiinnostunut oppimaan NLP:stÀ klassisen koneoppimisen nÀkökulmasta, kÀy tÀssÀ oppituntikokonaisuudessa.

TÀssÀ osiossa

TÀssÀ osiossa opimme:


Vastuuvapauslauseke:
TÀmÀ asiakirja on kÀÀnnetty kÀyttÀmÀllÀ tekoÀlypohjaista kÀÀnnöspalvelua Co-op Translator. Vaikka pyrimme tarkkuuteen, huomioithan, ettÀ automaattiset kÀÀnnökset voivat sisÀltÀÀ virheitÀ tai epÀtarkkuuksia. AlkuperÀistÀ asiakirjaa sen alkuperÀisellÀ kielellÀ tulisi pitÀÀ ensisijaisena lÀhteenÀ. Kriittisen tiedon osalta suositellaan ammattimaista ihmiskÀÀnnöstÀ. Emme ole vastuussa vÀÀrinkÀsityksistÀ tai virhetulkinnoista, jotka johtuvat tÀmÀn kÀÀnnöksen kÀytöstÀ.