Lemmatisatie
Veeg om het menu te tonen
Inzicht in lemmatizatie
Lemmatizatie is een tekstnormalisatietechniek die in NLP wordt gebruikt om woorden terug te brengen naar hun woordenboekvorm, bekend als een lemma.
In tegenstelling tot stemming, waarbij simpelweg affixen worden verwijderd, houdt lemmatizatie rekening met de context en zet het woord om naar de woordenboekvorm. Bijvoorbeeld, 'am', 'are' en 'is' worden allemaal omgezet naar 'be'. Deze aanpak kan de omvang van de woordenschat (het aantal unieke woorden) in grote tekstcorpora aanzienlijk verkleinen, waardoor de efficiëntie bij het trainen van modellen toeneemt.
Aan de andere kant is lemmatizatie nauwkeuriger, maar ook computationeel intensiever en kan het tijdrovend zijn bij grote datasets. Voor nog betere nauwkeurigheid wordt bovendien aanbevolen om morfologische analyse en part-of-speech tagging uit te voeren vóór lemmatizatie.
Maak je voorlopig geen zorgen over part-of-speech tagging, want dit is het volgende onderwerp dat aan bod komt.
Lemmatisatie met NLTK
De WordNet Lemmatizer, aangeboden door de NLTK-bibliotheek, maakt gebruik van het WordNet-corpus om lemmatisatie uit te voeren.
WordNet is een semantisch rijke lexicale database voor het Engels die veel verder gaat dan een eenvoudig corpus. Het groepeert woorden in synoniemensets, of synsets, die elk een afzonderlijk concept weergeven en voorzien zijn van definities en gebruiksvoorbeelden. Daarnaast legt WordNet betekenisvolle relaties vast tussen deze synsets — zoals hyperoniemen (algemenere termen) en hyponiemen (specifiekere termen) — en biedt zo een krachtig kader voor het verkennen en disambigueren van woordbetekenissen.
Wanneer je de WordNet Lemmatizer gebruikt, zoekt deze het doelwoord op in de WordNet database om de meest geschikte lemma van het woord te vinden.
Zoals hierboven vermeld, kunnen woorden verschillende betekenissen hebben afhankelijk van de context (bijvoorbeeld "running" als werkwoord versus "running" als zelfstandig naamwoord). De lemmatizer kan daarom vereisen dat je de woordsoort specificeert (bijvoorbeeld werkwoord, zelfstandig naamwoord, bijvoeglijk naamwoord). Dit helpt om het juiste lemma te selecteren op basis van de rol van het woord in een zin.
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)
from nltk.stem import WordNetLemmatizer
Deze regel importeert de WordNetLemmatizer-klasse.
nltk.download('wordnet')
Deze regel downloadt het WordNet-corpus en zorgt er zo voor dat alle functionaliteiten met betrekking tot WordNet, zoals lemmatisatie, gebruikt kunnen worden.
lemmatizer = WordNetLemmatizer()
Deze regel maakt een instantie van de WordNetLemmatizer-klasse aan die wordt gebruikt om lemmatisatie uit te voeren.
parts_of_speech = ['v', 'n']
Deze regel maakt een lijst van woordsoorten die gebruikt zullen worden bij lemmatisatie.
lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech]
Deze regel maakt een lijst van lemmatisaties van woorden met behulp van list comprehension. Het proces van lemmatisatie wordt uitgevoerd via de lemmatize()-methode van het lemmatizer-object. De string die een woord voorstelt moet het eerste argument zijn en de gewenste woordsoort als het tweede optionele argument ('v' voor werkwoord, 'a' voor bijvoeglijk naamwoord, 'n' voor zelfstandig naamwoord, enz.).
Je kunt het specificeren van het woordsoort achterwege laten door lemmatizer.lemmatize("running") aan te roepen, maar zoals je ziet leveren verschillende woordsoorten verschillende resultaten op. Daarom is het aan te raden om vooraf woordsoort-tagging toe te passen.
Bedankt voor je feedback!
Vraag AI
Vraag AI
Vraag wat u wilt of probeer een van de voorgestelde vragen om onze chat te starten.
Lemmatisatie
Inzicht in lemmatizatie
Lemmatizatie is een tekstnormalisatietechniek die in NLP wordt gebruikt om woorden terug te brengen naar hun woordenboekvorm, bekend als een lemma.
In tegenstelling tot stemming, waarbij simpelweg affixen worden verwijderd, houdt lemmatizatie rekening met de context en zet het woord om naar de woordenboekvorm. Bijvoorbeeld, 'am', 'are' en 'is' worden allemaal omgezet naar 'be'. Deze aanpak kan de omvang van de woordenschat (het aantal unieke woorden) in grote tekstcorpora aanzienlijk verkleinen, waardoor de efficiëntie bij het trainen van modellen toeneemt.
Aan de andere kant is lemmatizatie nauwkeuriger, maar ook computationeel intensiever en kan het tijdrovend zijn bij grote datasets. Voor nog betere nauwkeurigheid wordt bovendien aanbevolen om morfologische analyse en part-of-speech tagging uit te voeren vóór lemmatizatie.
Maak je voorlopig geen zorgen over part-of-speech tagging, want dit is het volgende onderwerp dat aan bod komt.
Lemmatisatie met NLTK
De WordNet Lemmatizer, aangeboden door de NLTK-bibliotheek, maakt gebruik van het WordNet-corpus om lemmatisatie uit te voeren.
WordNet is een semantisch rijke lexicale database voor het Engels die veel verder gaat dan een eenvoudig corpus. Het groepeert woorden in synoniemensets, of synsets, die elk een afzonderlijk concept weergeven en voorzien zijn van definities en gebruiksvoorbeelden. Daarnaast legt WordNet betekenisvolle relaties vast tussen deze synsets — zoals hyperoniemen (algemenere termen) en hyponiemen (specifiekere termen) — en biedt zo een krachtig kader voor het verkennen en disambigueren van woordbetekenissen.
Wanneer je de WordNet Lemmatizer gebruikt, zoekt deze het doelwoord op in de WordNet database om de meest geschikte lemma van het woord te vinden.
Zoals hierboven vermeld, kunnen woorden verschillende betekenissen hebben afhankelijk van de context (bijvoorbeeld "running" als werkwoord versus "running" als zelfstandig naamwoord). De lemmatizer kan daarom vereisen dat je de woordsoort specificeert (bijvoorbeeld werkwoord, zelfstandig naamwoord, bijvoeglijk naamwoord). Dit helpt om het juiste lemma te selecteren op basis van de rol van het woord in een zin.
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)
from nltk.stem import WordNetLemmatizer
Deze regel importeert de WordNetLemmatizer-klasse.
nltk.download('wordnet')
Deze regel downloadt het WordNet-corpus en zorgt er zo voor dat alle functionaliteiten met betrekking tot WordNet, zoals lemmatisatie, gebruikt kunnen worden.
lemmatizer = WordNetLemmatizer()
Deze regel maakt een instantie van de WordNetLemmatizer-klasse aan die wordt gebruikt om lemmatisatie uit te voeren.
parts_of_speech = ['v', 'n']
Deze regel maakt een lijst van woordsoorten die gebruikt zullen worden bij lemmatisatie.
lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech]
Deze regel maakt een lijst van lemmatisaties van woorden met behulp van list comprehension. Het proces van lemmatisatie wordt uitgevoerd via de lemmatize()-methode van het lemmatizer-object. De string die een woord voorstelt moet het eerste argument zijn en de gewenste woordsoort als het tweede optionele argument ('v' voor werkwoord, 'a' voor bijvoeglijk naamwoord, 'n' voor zelfstandig naamwoord, enz.).
Je kunt het specificeren van het woordsoort achterwege laten door lemmatizer.lemmatize("running") aan te roepen, maar zoals je ziet leveren verschillende woordsoorten verschillende resultaten op. Daarom is het aan te raden om vooraf woordsoort-tagging toe te passen.
Bedankt voor je feedback!