|
|
||
|---|---|---|
| .. | ||
| lab | ||
| NER-TF.ipynb | ||
| README.md | ||
README.md
Nimien tunnistus (Named Entity Recognition)
TÀhÀn mennessÀ olemme keskittyneet pÀÀasiassa yhteen NLP-tehtÀvÀÀn - luokitteluun. On kuitenkin olemassa myös muita NLP-tehtÀviÀ, joita voidaan toteuttaa neuroverkoilla. Yksi nÀistÀ tehtÀvistÀ on nimien tunnistus (NER), joka keskittyy tunnistamaan tekstistÀ tiettyjÀ entiteettejÀ, kuten paikkoja, henkilön nimiÀ, pÀivÀmÀÀrÀ- ja aikavÀlejÀ, kemiallisia kaavoja ja niin edelleen.
Ennakkokysely
Esimerkki NER:n kÀytöstÀ
Oletetaan, ettĂ€ haluat kehittÀÀ luonnollisen kielen chatbotin, joka on samanlainen kuin Amazon Alexa tai Google Assistant. ĂlykkÀÀt chatbotit toimivat ymmĂ€rtĂ€mĂ€llĂ€ kĂ€yttĂ€jĂ€n tarpeet tekemĂ€llĂ€ tekstiluokittelua syötteenĂ€ annettuun lauseeseen. TĂ€mĂ€n luokittelun tuloksena saadaan niin sanottu intentio, joka mÀÀrittÀÀ, mitĂ€ chatbotin tulisi tehdĂ€.
Kuva: kirjoittaja
KÀyttÀjÀ voi kuitenkin antaa joitakin parametreja osana lausetta. Esimerkiksi sÀÀtÀ kysyessÀÀn hÀn voi mÀÀrittÀÀ sijainnin tai ajankohdan. Botin tulisi pystyÀ ymmÀrtÀmÀÀn nÀmÀ entiteetit ja tÀyttÀmÀÀn parametripaikat vastaavasti ennen toiminnan suorittamista. Juuri tÀssÀ NER astuu kuvaan.
â Toinen esimerkki voisi olla tieteellisten lÀÀketieteellisten artikkeleiden analysointi. Yksi tĂ€rkeimmistĂ€ asioista, joita meidĂ€n tĂ€ytyy etsiĂ€, ovat tietyt lÀÀketieteelliset termit, kuten sairaudet ja lÀÀkeaineet. Vaikka pieni mÀÀrĂ€ sairauksia voidaan todennĂ€köisesti tunnistaa merkkijonohakua kĂ€yttĂ€mĂ€llĂ€, monimutkaisemmat entiteetit, kuten kemialliset yhdisteet ja lÀÀkkeiden nimet, vaativat monimutkaisempaa lĂ€hestymistapaa.
NER token-luokitteluna
NER-mallit ovat pohjimmiltaan token-luokittelumalleja, koska jokaiselle syötteen tokenille meidÀn tÀytyy pÀÀttÀÀ, kuuluuko se johonkin entiteettiin vai ei, ja jos kuuluu - mihin entiteettiluokkaan.
Tarkastellaan seuraavaa artikkelin otsikkoa:
Kolmiliuskaisen lÀpÀn vuoto ja litiumkarbonaatin toksisuus vastasyntyneellÀ lapsella.
Entiteetit tÀssÀ ovat:
- Kolmiliuskaisen lÀpÀn vuoto on sairaus (
DIS) - Litiumkarbonaatti on kemiallinen aine (
CHEM) - Toksisuus on myös sairaus (
DIS)
Huomaa, ettÀ yksi entiteetti voi ulottua usean tokenin yli. Ja kuten tÀssÀ tapauksessa, meidÀn tÀytyy erottaa toisistaan kaksi perÀkkÀistÀ entiteettiÀ. Siksi on yleistÀ kÀyttÀÀ kahta luokkaa kullekin entiteetille - yksi mÀÀrittÀÀ entiteetin ensimmÀisen tokenin (usein kÀytetÀÀn etuliitettÀ B-, joka tarkoittaa beginning eli alkua), ja toinen entiteetin jatkumon (I-, joka tarkoittaa inner eli sisÀistÀ tokenia). KÀytÀmme myös O-luokkaa edustamaan kaikkia muita tokeneita. TÀllainen tokenien tagitus tunnetaan nimellÀ BIO-tagitus (tai IOB). Kun otsikko on tagitettu, se nÀyttÀÀ tÀltÀ:
| Token | Tag |
|---|---|
| Kolmiliuskaisen | B-DIS |
| lÀpÀn | I-DIS |
| vuoto | I-DIS |
| ja | O |
| litium | B-CHEM |
| karbonaatti | I-CHEM |
| toksisuus | B-DIS |
| vastasyntyneellÀ | O |
| lapsella | O |
| . | O |
Koska meidÀn tÀytyy rakentaa yksi-yhteen vastaavuus tokenien ja luokkien vÀlillÀ, voimme kouluttaa oikeanpuoleisen moni-moniin neuroverkkopohjaisen mallin tÀstÀ kuvasta:
Kuva tÀstÀ blogikirjoituksesta kirjoittajalta Andrej Karpathy. NER token-luokittelumallit vastaavat oikeanpuoleista verkkoarkkitehtuuria tÀssÀ kuvassa.
NER-mallien kouluttaminen
Koska NER-malli on pohjimmiltaan token-luokittelumalli, voimme kÀyttÀÀ RNN:itÀ, joihin olemme jo tutustuneet, tÀmÀn tehtÀvÀn suorittamiseen. TÀssÀ tapauksessa jokainen toistuvan verkon lohko palauttaa tokenin ID:n. Seuraava esimerkkivihko nÀyttÀÀ, kuinka LSTM voidaan kouluttaa token-luokitteluun.
âïž Esimerkkivihkot: NER
Jatka oppimista seuraavassa vihkossa:
Yhteenveto
NER-malli on token-luokittelumalli, mikÀ tarkoittaa, ettÀ sitÀ voidaan kÀyttÀÀ token-luokittelun suorittamiseen. TÀmÀ on erittÀin yleinen tehtÀvÀ NLP:ssÀ, ja se auttaa tunnistamaan tekstistÀ tiettyjÀ entiteettejÀ, kuten paikkoja, nimiÀ, pÀivÀmÀÀriÀ ja paljon muuta.
đ Haaste
Suorita alla linkitetty tehtÀvÀ, jossa koulutat nimien tunnistusmallin lÀÀketieteellisiÀ termejÀ varten, ja kokeile sitÀ sitten eri datasetillÀ.
JĂ€lkikysely
Kertaus ja itseopiskelu
Lue blogikirjoitus The Unreasonable Effectiveness of Recurrent Neural Networks ja tutustu artikkelin lisÀlukemisosioon syventÀÀksesi tietÀmystÀsi.
TehtÀvÀ
TÀmÀn oppitunnin tehtÀvÀssÀ sinun tulee kouluttaa lÀÀketieteellisten entiteettien tunnistusmalli. Voit aloittaa LSTM-mallin kouluttamisella, kuten tÀssÀ oppitunnissa on kuvattu, ja jatkaa BERT-transformerimallin kÀyttÀmiseen. Lue ohjeet saadaksesi kaikki yksityiskohdat.
