Lemmatisaatio
Lemmatisaation ymmärtäminen
Lemmatisaatio on tekstin normalisointitekniikka, jota käytetään NLP:ssä vähentämään sanat niiden sanakirjamuotoon, jota kutsutaan lemmaksi.
Toisin kuin stemmaus, joka karkeasti katkaisee affiksit, lemmatisointi ottaa huomioon kontekstin ja muuntaa sanan sanakirjamuotoon. Esimerkiksi 'am', 'are' ja 'is' lemmatisoidaan kaikki muotoon 'be'. Tämä lähestymistapa voi merkittävästi pienentää sanaston kokoa (uniikkien sanojen määrä) suurissa tekstikorpuksissa, mikä lisää tehokkuutta mallien koulutuksessa.
Toisaalta, vaikka lemmatisointi on tarkempaa, se on myös laskennallisesti raskaampaa ja voi olla aikaa vievää suurten aineistojen kanssa. Lisäksi vielä paremman tarkkuuden saavuttamiseksi suositellaan morfologista analyysiä ja osaluokkamerkintää ennen lemmatisointia.
Älä huolehdi sanaluokkien tunnistamisesta vielä, sillä opit siitä seuraavaksi.
Lemmatisaatio NLTK:lla
WordNet Lemmatizer, jonka tarjoaa NLTK-kirjasto, hyödyntää WordNet-korpusta lemmatisaation suorittamiseen.
WordNet on semanttisesti rikas englanninkielinen leksikaalinen tietokanta, joka menee paljon yksinkertaista korpusta pidemmälle. Se ryhmittelee sanat synonyymijoukkoihin eli synset-joukkoihin, joista jokainen kuvaa tiettyä käsitettä ja sisältää määritelmiä sekä esimerkkikäyttöjä. Lisäksi WordNet sisältää merkityksellisiä suhteita näiden synsettien välillä — kuten hyperonyymit (yleisemmät käsitteet) ja hyponyymit (tarkemmat käsitteet) — tarjoten tehokkaan kehyksen sanojen merkitysten tutkimiseen ja erotteluun.
Kun käytät WordNet Lemmatizeria, se etsii kohdesanan WordNet-tietokannasta löytääkseen sanan sopivimman lemmamuodon.
Kuten aiemmin mainittiin, koska sanoilla voi olla eri merkityksiä eri konteksteissa (esim. "running" verbinä vs. "running" substantiivina), lemmatisaattori saattaa vaatia sinun määrittelevän sanaluokan (esim. verbi, substantiivi, adjektiivi). Tämä auttaa valitsemaan oikean lemmamuodon sanan lauseessa olevan roolin perusteella.
1234567891011from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() # Parts of speech, 'v' for verb and 'n' for noun parts_of_speech = ['v', 'n'] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech] print("Lemmatized words:", lemmatized_words)
Voit jättää sanaluokan määrittämättä kutsumalla lemmatizer.lemmatize("running"), mutta kuten huomaat, eri sanaluokat tuottavat erilaisia tuloksia. Siksi olisi suositeltavaa suorittaa sanaluokkien tunnistus etukäteen.
Kiitos palautteestasi!
Kysy tekoälyä
Kysy tekoälyä
Kysy mitä tahansa tai kokeile jotakin ehdotetuista kysymyksistä aloittaaksesi keskustelumme
Awesome!
Completion rate improved to 3.45
Lemmatisaatio
Pyyhkäise näyttääksesi valikon
Lemmatisaation ymmärtäminen
Lemmatisaatio on tekstin normalisointitekniikka, jota käytetään NLP:ssä vähentämään sanat niiden sanakirjamuotoon, jota kutsutaan lemmaksi.
Toisin kuin stemmaus, joka karkeasti katkaisee affiksit, lemmatisointi ottaa huomioon kontekstin ja muuntaa sanan sanakirjamuotoon. Esimerkiksi 'am', 'are' ja 'is' lemmatisoidaan kaikki muotoon 'be'. Tämä lähestymistapa voi merkittävästi pienentää sanaston kokoa (uniikkien sanojen määrä) suurissa tekstikorpuksissa, mikä lisää tehokkuutta mallien koulutuksessa.
Toisaalta, vaikka lemmatisointi on tarkempaa, se on myös laskennallisesti raskaampaa ja voi olla aikaa vievää suurten aineistojen kanssa. Lisäksi vielä paremman tarkkuuden saavuttamiseksi suositellaan morfologista analyysiä ja osaluokkamerkintää ennen lemmatisointia.
Älä huolehdi sanaluokkien tunnistamisesta vielä, sillä opit siitä seuraavaksi.
Lemmatisaatio NLTK:lla
WordNet Lemmatizer, jonka tarjoaa NLTK-kirjasto, hyödyntää WordNet-korpusta lemmatisaation suorittamiseen.
WordNet on semanttisesti rikas englanninkielinen leksikaalinen tietokanta, joka menee paljon yksinkertaista korpusta pidemmälle. Se ryhmittelee sanat synonyymijoukkoihin eli synset-joukkoihin, joista jokainen kuvaa tiettyä käsitettä ja sisältää määritelmiä sekä esimerkkikäyttöjä. Lisäksi WordNet sisältää merkityksellisiä suhteita näiden synsettien välillä — kuten hyperonyymit (yleisemmät käsitteet) ja hyponyymit (tarkemmat käsitteet) — tarjoten tehokkaan kehyksen sanojen merkitysten tutkimiseen ja erotteluun.
Kun käytät WordNet Lemmatizeria, se etsii kohdesanan WordNet-tietokannasta löytääkseen sanan sopivimman lemmamuodon.
Kuten aiemmin mainittiin, koska sanoilla voi olla eri merkityksiä eri konteksteissa (esim. "running" verbinä vs. "running" substantiivina), lemmatisaattori saattaa vaatia sinun määrittelevän sanaluokan (esim. verbi, substantiivi, adjektiivi). Tämä auttaa valitsemaan oikean lemmamuodon sanan lauseessa olevan roolin perusteella.
1234567891011from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() # Parts of speech, 'v' for verb and 'n' for noun parts_of_speech = ['v', 'n'] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech] print("Lemmatized words:", lemmatized_words)
Voit jättää sanaluokan määrittämättä kutsumalla lemmatizer.lemmatize("running"), mutta kuten huomaat, eri sanaluokat tuottavat erilaisia tuloksia. Siksi olisi suositeltavaa suorittaa sanaluokkien tunnistus etukäteen.
Kiitos palautteestasi!