Stemmen en lemmatiseren zijn algoritmen die worden gebruikt innatuurlijke taalverwerking(NLP) om tekst te normaliseren en woorden en documenten voor te bereiden voor verdere verwerking inMachinaal leren. Ze worden bijvoorbeeld gebruikt door zoekmachines of chatbots om de betekenis van woorden te achterhalen.
InNLPmen wil bijvoorbeeld erkennen dat de woorden "vind ik leuk" en "geliefd" hetzelfde woord zijn in verschillende tijden. Het doel is dan om beide woorden terug te brengen tot een gemeenschappelijke wortel, wat wordt gedaan door stamvorming of lemmatisering. Op deze manier worden beide woorden op dezelfde manier behandeld, anders zouden "like" en "liked" voor het model net zo verschillend zijn als "like" en "car".
Wat is NLP?
Natuurlijke taalverwerkingis een tak van informatica die zich bezighoudt met het begrijpen en verwerken van natuurlijke taal, b.v. teksten of spraakopnamen. Het doel is dat een machine met mensen kan communiceren op dezelfde manier waarop mensen al eeuwenlang met elkaar communiceren.
Ook voor ons mensen is het leren van een nieuwe taal niet eenvoudig en vergt veel tijd en doorzettingsvermogen. Wanneer een machine een natuurlijke taal wil leren, is dat niet anders. Daarom zijn er binnen enkele deelgebieden ontstaanNatuurlijke taalverwerkingdie nodig zijn om de taal volledig te begrijpen.
Deze onderverdelingen kunnen ook onafhankelijk worden gebruikt om individuele taken op te lossen:
- Spraakherkenningprobeert opgenomen spraak te begrijpen en om te zetten in tekstuele informatie. Dit maakt het gemakkelijker voor stroomafwaartse algoritmen om het te verwerken. Spraakherkenning kan echter ook op zichzelf worden gebruikt om bijvoorbeeld dictaten of lezingen om te zetten in tekst.
- Onderdeel van spraaklabelswordt gebruikt om de grammaticale samenstelling van een zin te herkennen en om de afzonderlijke zinscomponenten, zoals een zelfstandig naamwoord of een werkwoord, te markeren.
- Erkenning van benoemde entiteitenprobeert binnen een tekst woorden en zinsdelen te vinden die kunnen worden toegewezen aan een vooraf gedefinieerde klasse. Zo kunnen bijvoorbeeld alle zinnen in een tekstgedeelte die de naam van een persoon bevatten of een tijd uitdrukken, worden gemarkeerd.
- Sentiment analyseclassificeert het sentiment van een tekst in verschillende niveaus. Hierdoor is het bijvoorbeeld mogelijk om automatisch te detecteren of een productreview positiever of negatiever is.
- Generatie van natuurlijke taalis een algemene groep applicaties die worden gebruikt om automatisch nieuwe teksten te genereren die zo natuurlijk mogelijk klinken. Zo kunnen korte productteksten worden gebruikt om volledige marketingbeschrijvingen van dit product te maken.
Stemmen en lemmatisering helpen op veel van deze gebieden door de basis te leggen voor het correct begrijpen van woorden en hun betekenis.
Wat is Stemmen?
Stammen is het proces waarbij achtervoegsels uit woorden worden verwijderd om een zogenaamd wortelwoord te creëren. De woorden "vind-ik-leuks", "waarschijnlijk" en "vind-ik-leuk" resulteren allemaal in de gemeenschappelijke wortel "vind-ik-leuk", die kan worden gebruikt als synoniem voor alle drie de woorden. Op deze manier kan een NLP-model leren dat alle drie de woorden op de een of andere manier vergelijkbaar zijn en in een vergelijkbare context worden gebruikt.
Stemmen stelt ons in staat om woorden te standaardiseren naar hun basisstam, ongeacht hun verbuigingen, wat handig is in veel toepassingen zoals clustering oftekst classificatie. Zoekmachines gebruiken deze technieken op grote schaal om betere resultaten te produceren, ongeacht de woordvorm. Voordat het woord stamt in 2003 op Google werd geïntroduceerd, leverde een zoekopdracht naar 'vis' geen websites over vissen op.
Porters stemmenAlgoritme is een van de meest populaire Stemming-methoden en werd voorgesteld in 1980. Het is gebaseerd op het idee dat de achtervoegsels in de Engelse taal zijn samengesteld uit een combinatie van kleinere en eenvoudigere achtervoegsels. Het staat bekend om zijn efficiënte en eenvoudige processen, maar het heeft ook verschillende nadelen.
Omdat het is gebaseerd op vele, hardgecodeerde regels die voortkomen uit de Engelse taal, kan het alleen worden gebruikt voor Engelse woorden. Er kunnen ook gevallen zijn waarin de uitvoer van Porter's Stemmer geen Engels woord is, maar alleen een kunstmatige woordstam.
from nltk.stem.porter import *porter_stem = PorterStemmer()print(porter_stem.stem('alumnus'))Out:'alumnu'
De grootste problemen zijn echter Over- en Understemming, wat veelvoorkomende tekortkomingen zijn van de meeste van deze algoritmen.
Wat is over- en onderstemming?
Telkens wanneer ons algoritme meerdere woorden naar dezelfde wortel laat stammen, ook al zijn ze niet gerelateerd, noemen we dat Overstemming. Ook al zijn de woorden 'universeel', 'universiteit' en 'universum' verwant en komen ze uit hetzelfde stamwoord, toch liggen hun betekenissen ver uit elkaar. Wanneer we deze woorden in een goede zoekmachine zouden typen, zouden de zoekresultaten heel anders moeten zijn en niet als synoniemen moeten worden behandeld. We noemen zo'n fout een fout-positief.

Under-Stemming is precies het tegenovergestelde van dat gedrag en omvat gevallen waarin meerdere woorden niet tot een gemeenschappelijke stam komen, ook al zou dat wel moeten. Het woord "alumnus" beschrijft een voormalige student van een universiteit en wordt meestal gebruikt voor mannelijke personen. "Alumnae" is de vrouwelijke versie ervan en "alumni" zijn meerdere oud-studenten van een universiteit.

Deze woorden moeten absoluut als synoniemen worden behandeld in een basiszoekmachine of andere NLP-toepassingen. De meeste Stemmer-algoritmen knippen het echter niet naar hun gemeenschappelijke root, wat een fout-negatieve fout is.
Hoe wordt stemgebruik gebruikt bij zoekmachineoptimalisatie?
Bij zoekmachineoptimalisatie (SEO) verwijst staming naar een techniek die door zoekmachines wordt gebruikt om varianten van een zoekopdracht of trefwoord te identificeren door de gemeenschappelijke stam van verwante woorden te herkennen en te matchen.
Als een gebruiker bijvoorbeeld zoekt naar 'hardloopschoenen', kan een zoekmachine die gebruikmaakt van stamwoorden ook resultaten retourneren voor gerelateerde zoekwoorden, zoals 'hardloopschoenen' of 'hardloopschoenen', omdat ze dezelfde stam hebben ('rennen'). Dit zorgt ervoor dat relevante resultaten worden weergegeven, zelfs als de zoekopdracht van de gebruiker niet exact overeenkomt met de inhoud van een webpagina.
Stammen wordt door zoekmachines gebruikt om de relevantie en nauwkeurigheid van zoekresultaten te verbeteren door hen in staat te stellen varianten van een trefwoord of zoekopdracht te vinden zonder alleen te vertrouwen op exacte overeenkomsten. Dit kan de gebruikerservaring verbeteren en de kans vergroten dat een gebruiker de informatie vindt waarnaar hij op zoek is.
In termen van zoekmachineoptimalisatie kan het gebruik van variaties op een zoekwoord in de inhoud ook helpen de zichtbaarheid van een website in de zoekresultaten te verbeteren. Door verwante woorden en zinsdelen op te nemen die dezelfde root hebben als het doelzoekwoord, kan een webpagina aan zoekmachines signaleren dat deze relevant is voor een breder scala aan zoekopdrachten, wat de positie en zichtbaarheid in de zoekresultaten kan verbeteren.
Wat is lemmatisering?
Lemmatisering is een ontwikkeling van Stemmer-methoden en beschrijft het proces van het groeperen van de verschillende verbogen vormen van een woord, zodat ze als één item kunnen worden geanalyseerd. Lemmatizers zijn vergelijkbaar met Stemmer-methoden, maar het voegt context toe aan de woorden. Het koppelt dus woorden met vergelijkbare betekenissen aan één woord. Lemmatizer-algoritmen gebruiken meestal ook positionele argumenten als invoer, bijvoorbeeld of het woord een bijvoeglijk naamwoord, zelfstandig naamwoord of werkwoord is.

Telkens wanneer we tekstvoorverwerking voor NLP uitvoeren, hebben we zowel stemvorming als lemmatisering nodig. Soms vind je zelfs artikelen of discussies waarin beide woorden als synoniemen worden gebruikt, ook al zijn ze dat niet. Gewoonlijk hebben Lemmatizers de voorkeur boven Stemmer-methoden omdat het een contextuele analyse van woorden is in plaats van een hardgecodeerde regel te gebruiken om achtervoegsels af te hakken. Als de tekstdocumenten echter erg lang zijn, kost een lemmatizer aanzienlijk meer tijd, wat een groot nadeel is.
Wat is het verschil tussen Lemmatisering en Stemming?
Kort gezegd is het verschil tussen deze algoritmen dat alleen een lemmatizer de betekenis van het woord meeneemt in de evaluatie. Bij het stammen wordt slechts een bepaald aantal letters aan het einde van het woord afgesneden om een woordstam te verkrijgen. De betekenis van het woord speelt daarin geen rol.
Zoals te zien is in het vorige voorbeeld, herkent een lemmatizer dat het Engelse woord "beter" is afgeleid van het woord "goed" omdat beide vergelijkbare betekenissen hebben. Stammen daarentegen kon zo'n onderscheid niet maken en zou waarschijnlijk "bet" of "bett" als stamwoord teruggeven.
Is Lemmatisering beter dan Stemmen?
Bij tekstvoorverwerking voor NLP hebben we zowel stam- als lemmatizers nodig, dus beide algoritmen hebben hun bestaansreden. Soms kun je zelfs artikelen of discussies vinden waarin beide woorden als synoniemen worden gebruikt, hoewel dat niet het geval is.
Doorgaans hebben lemmatizers de voorkeur boven stemmermethoden omdat het een contextuele analyse van woorden is in plaats van een hardgecodeerde regel te gebruiken om achtervoegsels af te kappen. Deze contextualiteit is vooral belangrijk wanneer content specifiek moet worden begrepen, zoals bijvoorbeeld bij een chatbot.
Voor andere toepassingen kunnen de functionaliteiten van Stemming voldoende zijn. Zoekmachines maken er bijvoorbeeld op grote schaal gebruik van om zoekresultaten te verbeteren. Door niet alleen op de zoekterm maar ook op de woordstammen in de index te zoeken, kunnen verschillende woordvormen worden overwonnen en kan het zoeken ook nog eens enorm worden versneld.
In welke gebieden worden deze algoritmen gebruikt?
Zoals eerder vermeld, zijn deze twee methoden vooral interessant op het gebied vanNatuurlijke taalverwerking. De volgende toepassingen maken er gebruik van:
- Zoek algoritmen: De kwaliteit van zoekresultaten kan aanzienlijk worden verbeterd als bijvoorbeeld woordstammen worden gebruikt en spelfouten of meervoudsvormen dus niet zo belangrijk zijn.
- Kennis grafieken: Bij het bouwen van kennisstructuren, zoals een Knowledge Graph, helpen deze algoritmen om entiteiten, zoals mensen of plaatsen, te extraheren en te verbinden met andere entiteiten. Deze kennisgrafieken kunnen op hun beurt ook zoekalgoritmen verbeteren.
- Sentiment analyse: In veel toepassingen is het zinvol om teksten te classificeren op gevoel, bijvoorbeeld positief of negatief. Hierdoor kunnen bijvoorbeeld productreviews zeer snel worden geclassificeerd en gerichter worden verwerkt. Het gebruik van de gepresenteerde algoritmen kan het classificatiemodel helpen om betere voorspellingen te doen.
Dit is wat je mee moet nemen
- Stemmen en lemmatiseren zijn methoden die ons helpen bij het voorbewerken van tekst voor natuurlijke taalverwerking.
- Beiden helpen om meerdere woorden toe te wijzen aan een gemeenschappelijk stamwoord.
- Op die manier worden deze woorden op dezelfde manier behandeld en leert het model dat ze in vergelijkbare contexten kunnen worden gebruikt.
Wat is gegevensvergroting?
Gebruik en methoden van gegevensvergroting.
Lees verder
Wat is Tableau?
Leer hoe je Tableau gebruikt voor datavisualisatie en -analyse in onze uitgebreide gids.
Lees verder
Wat is de normalisatie van databases?
Meer informatie over databasenormalisatie en hoe dit uw database kan verbeteren. Maximaliseer efficiëntie en minimaliseer redundantie met normalisatie.
Lees verder
Wat zijn de primaire sleutel en de buitenlandse sleutel?
Meer informatie over primaire en externe sleutels in databasebeheer. Begrijp hun verschillen, belang en gebruik. Lees meer in dit artikel!
Lees verder
Wat is Apache-parket?
Leer hoe u Big Data-opslag kunt optimaliseren met Apache Parquet. Ontdek de functies, voordelen en implementatie ervan in deze uitgebreide gids.
Lees verder
Wat zijn CSV-bestanden?
Leer alles over CSV-bestanden, inclusief hoe ze zijn gestructureerd, best practices en vergelijking met Apache Parquet.
Lees verder
Wat is de CAP-stelling?
CAP-stelling begrijpen: consistentie, beschikbaarheid en partitietolerantie in gedistribueerde systemen. Leer de compromissen in systeemontwerp.
Lees verder
Wat is batchverwerking?
Meer informatie over batchverwerking in datawetenschap. Ontdek hoe batchverwerking werkt, de voordelen en veelgebruikte toepassingen.
Lees verder
Wat is de moderne gegevensstapel?
Ontdek de moderne datastack: een uitgebreide gids voor het bouwen van schaalbare en efficiënte datapijplijnen. Leer nu meer!
Lees verder
Wat is Apache Airflow?
Ontdek Apache Airflow, een platform voor het programmatisch schrijven, plannen en bewaken van workflows in data engineering.
Lees verder
Andere artikelen over het onderwerp Stemming versus Lemmatisering
- Op ditwebsite, kunt u een online tool gebruiken waarmee u verschillende Stemmer-algoritmen kunt testen door een woord direct online te verwerken.
FAQs
Should I use stemming or lemmatization? ›
Lemmatization has higher accuracy than stemming. Lemmatization is preferred for context analysis, whereas stemming is recommended when the context is not important.
What is the difference between stem and lemma? ›Lemmatization and Stemming are the foundation of derived (inflected) words and hence the only difference between lemma and stem is that lemma is an actual word whereas, the stem may not be an actual language word. Lemmatization uses a corpus to attain a lemma, making it slower than stemming.
Should you Lemmatize before stemming? ›Short answer- go with stemming when the vocab space is small and the documents are large. Conversely, go with word embeddings when the vocab space is large but the documents are small. However, don't use lemmatization as the increased performance to increased cost ratio is quite low.
What is the difference between stemming and tokenization? ›Stemming is the process of reducing a word to its root stem. For example, the word “develop” can also take the form of “developed” or “developing.” When tokenized, all three of those words result in different tokens. Users could potentially resolve that at query time with a trailing wildcard search, i.e. develop* .