Lemmatisatie uitgelegd & Top 3 manieren om te implementeren in Python (2023)

Lemmatisering is de omzetting van een woord in zijn basisvorm of lemma. Dit verschilt van stammen, waarbij een woord wordt teruggebracht tot zijn stamvorm door de voorvoegsels en achtervoegsels te verwijderen. Lemmatisering houdt daarentegen rekening met de context en betekenis van een woord en probeert het om te zetten in een betekenisvoller en gemakkelijker te bewerken formaat.

Inhoudsopgave

De woorden 'was', 'is' en 'zullen zijn' kunnen bijvoorbeeld allemaal worden gelemmatiseerd tot het woord 'zijn'. Evenzo kunnen de woorden "beter" en "beste" worden gelemmatiseerd tot het woord "goed".

Lemmatisatie uitgelegd & Top 3 manieren om te implementeren in Python (1)

Lemmatisering reduceert de tekst tot de hoofdmap, waardoor het gemakkelijker wordt om trefwoorden te vinden.

Wat is lemmatisering?

Lemmatisering wordt vaak gebruikt in natuurlijke taalverwerking (NLP) en toepassingen voor het ophalen van informatie, waar het de nauwkeurigheid en prestaties van tekstanalyse en zoekalgoritmen kan verbeteren. Door woorden om te zetten in hun basisvorm, kan lemmatisering de dimensionaliteit van de tekstgegevens verminderen en de algoritmen in staat stellen zich te concentreren op de meest kritische en relevante informatie in de tekst.

(Video) Learn Python In 1 Hour: Full Beginner Python Course

Er zijn veel verschillende tools en bibliotheken beschikbaar voor het uitvoeren van lemmatisering in Python. Enkele populaire voorbeelden zijn NLTK, SpaCy en Gensim. Om deze bibliotheken voor lemmatisering te gebruiken, moet u meestal eerst de tekst in afzonderlijke woorden tokeniseren en vervolgens de lemmatiseringsfunctie op elk token toepassen.

Wat is stamelen?

Stammenreduceert een woord tot zijn stamvorm, meestal door voorvoegsels en achtervoegsels te verwijderen. Dit is een veelgebruikte techniek die wordt gebruikt in natuurlijke taalverwerking (NLP) en toepassingen voor het ophalen van informatie, waar het kan helpen de complexiteit en ruis in de tekstgegevens te verminderen en het gemakkelijker maakt om ermee te werken.

De woorden 'agressief', 'agressiviteit' en 'agressor' kunnen bijvoorbeeld allemaal worden afgeleid van het woord 'agressief', wat de grondvorm is van deze woorden. Evenzo kunnen de woorden 'universiteiten' en 'universiteit' worden afgeleid van het woord 'universiteit', wat de grondvorm is van deze woorden.

Verschil tussen stammen en lemmatisering

Lemmatisering en stamvorm brengen woorden terug tot hun basisvorm of stamvorm. Er zijn echter enkele essentiële verschillen tussen deze twee benaderingen.

Stammen omvat meestal het verwijderen van voorvoegsels en achtervoegsels van een woord en soms zelfs het wijzigen van de interne structuur om het terug te brengen tot de wortelvorm. Dit kan een eenvoudige en efficiënte manier zijntekst normaliseren, maar het levert vaak woorden op die gevalideerd of zinvol moeten zijn. 'Agressively' kan bijvoorbeeld voortkomen uit 'aggress', wat ongeldig is in het Engels.

Lemmatisering daarentegen houdt rekening met de context en betekenis van een woord en probeert het om te zetten in een vorm die meer betekenis heeft en gemakkelijker is om mee te werken. Dit omvat meestal het gebruik van een vocabulaire en morfologische analyse van de woorden om het lemma van elk woord te identificeren. De woorden 'was', 'is' en 'zullen zijn' kunnen bijvoorbeeld allemaal worden gelemmatiseerd naar het woord 'zijn', en de woorden 'beter' en 'best' kunnen worden gelemmatiseerd naar het woord 'goed'.

Over het algemeen is lemmatisering geavanceerder en nauwkeuriger dan afstammen, maar het kan ook rekenkundig duurder zijn. Of u stemrecht, lemmatisering of een combinatie van beide gebruikt, hangt af van de specifieke vereisten en doelen van uw toepassing.

(Video) From C to Python by Ross Rheingans-Yoo

Praktische use cases van lemmatisering

Lemmatisering is een techniek om woorden terug te brengen tot hun basisvorm, of lemma. Dit kan nuttig zijn in veel toepassingen voor natuurlijke taalverwerking (NLP) en het ophalen van informatie, waardoor de nauwkeurigheid en prestaties van tekstanalyse en zoekalgoritmen worden verbeterd.

Enkele praktische toepassingen van lemmatisering zijn onder meer:

  • Tekst classificatie: Lemmatisering kan helpen de prestaties van algoritmen voor tekstclassificatie te verbeteren enextractie van trefwoordendoor het aantal unieke woorden in de tekst te verminderen en de tekst consistenter en coherenter te maken. Dit kan het voor het algoritme gemakkelijker maken om de belangrijkste kenmerken en patronen in de tekst te identificeren en toe te wijzen aan de juiste categorie of label.
  • Sentiment analyse: Lemmatisering kan helpen de nauwkeurigheid van algoritmen voor sentimentanalyse te verbeteren door woorden met meerdere vormen, zoals 'goed', 'beter' en 'best' om te zetten in hun basisvorm, 'goed'. Dit kan het geluid verminderen envariabiliteitin de tekst en laat het algoritme zich concentreren op de meest relevante en informatieve woorden en zinnen.
  • Modellering van onderwerpen: Lemmatisering kan de kwaliteit en interpreteerbaarheid van onderwerpmodellen verbeteren door de dimensionaliteit van de tekstgegevens te verminderen en irrelevante en overbodige woorden te verwijderen. Dit kan de onderwerpen coherenter en zinvoller maken en het gemakkelijker maken om de hoofdthema's en ideeën in de tekst te begrijpen en te visualiseren.
  • Informatie ophalen: Lemmatisering kan de nauwkeurigheid en relevantie van zoekresultaten helpen verbeteren door zoektermen en documentwoorden om te zetten in hun basisvorm. Dit kan het aantal fout-positieven en fout-negatieven verminderen en de zoekresultaten consistenter en relevanter maken voor de behoeften van de gebruiker.

Over het algemeen kan lemmatisering waardevol zijn in veel toepassingen voor NLP en het ophalen van informatie. Het kan bijvoorbeeld helpen de complexiteit en ruis in de tekstgegevens te verminderen en de prestaties en nauwkeurigheid van tekstanalyse en zoekalgoritmen te verbeteren.

Voorbeelden van lemmatisering in Python

U kunt een van de vele beschikbare bibliotheken voor natuurlijke taalverwerking (NLP) gebruiken om lemmatisering in Python uit te voeren. Enkele populaire voorbeelden zijn NLTK, spaCy en Gensim.

1. NLTK-lemmatizer

Merk op dat u eerst NLTK moet installeren en de bijbehorende WordNet-gegevens moet downloaden voordat u dit voorbeeld uitvoert. U kunt dit doen door de volgende opdrachten uit te voeren in uw Python-interpreter:

importerennltk nltk.download('wordnet')

Hier is een voorbeeld van hoe u NLTK kunt gebruiken voor lemmatisering in Python:

(Video) The Best in Open Source Database Software: Top 10 Picks

importerennltkvannltk.stemimporterenWordNetLemmatizer# Definieer een tekstreekstekst= "Dit is een voorbeeldtekst. Er staan ​​enkele woorden in die we kunnen gebruiken voor lemmatisering." # Tokeniseer de tekst in afzonderlijke woordenMunten=nltk.word_tokenize(tekst)# Maak een WordNetLemmatizer-objectlemmatiseerder=WordNetLemmatizer()# Lemmatiseer elk woord en druk het resultaat afvoortekeninMunten:lemma=lemmatizer.lemmatize(token) afdrukken(teken,"-->", lemma)

In dit voorbeeld is deWordNetLemmatizerklasse van NLTK zal elk woord in de tekst lemmatiseren en het resultaat afdrukken. Het woord 'bevat' wordt bijvoorbeeld gelemmatiseerd naar 'bevatten' en het woord 'woorden' wordt gelemmatiseerd naar 'woord'.

2. SpaCy-lemmatizer

Als alternatief kunt u de SpaCy-bibliotheek gebruiken voor lemmatisering in Python.

Installeer eerst spaCy en download het Engelstalige model voordat u dit voorbeeld uitvoert. U kunt dit doen door de volgende opdrachten op de opdrachtregel uit te voeren:

Pip installeren ruimPython -M ruim downloaden in

Hier is de voorbeeldpython-code:

importerenruim# Definieer een tekstreekstekst= "Dit is een voorbeeldtekst. Er staan ​​enkele woorden in die we kunnen gebruiken voor lemmatisering." # Laad het Engelstalige model in spaCynlp=spacy.load('in')# Maak een Doc-objectdoc=nlp(tekst)# Lemmatiseer elk token en print het resultaatvoortekenindocument:lemma=token.lemma_ afdrukken(token.tekst,"-->", lemma)
(Video) Best 25 Free Tools and Resources to Learn Python

In dit voorbeeld is delemma_eigenschap van elk token in de spaCyDocobject zal het lemma van het woord bevatten. Het woord 'bevat' wordt bijvoorbeeld gelemmatiseerd naar 'bevatten' en het woord 'woorden' wordt gelemmatiseerd naar 'woord'.

3. Gensim-lemmatizer

U kunt ook deGensim-bibliotheekvoor lemmatisering in Python. Hier is een voorbeeld:

importerenals een natievangensim.utilsimporterenlemmatiseren# Definieer een tekstreekstekst= "Dit is een voorbeeldtekst. Er staan ​​enkele woorden in die we kunnen gebruiken voor lemmatisering." # Gebruik de functie lemmatize() om de tekst te lemmatiserenlemma's=lemmatiseren (tekst,stopwoorden=['is','Het','Wij'])# Druk het resultaat afafdrukken(lemma's)

Alternatieven voor lemmatisering

Lemmatisering heeft enkele beperkingen, zoals de computationele complexiteit en de behoefte aan een uitgebreid vocabulaire en morfologische analyse van de woorden. Soms maken deze beperkingen lemmatisering onpraktisch of ongeschikt voor uw toepassing.

Als u op zoek bent naar alternatieve benaderingen voor lemmatisering, zijn enkele veelvoorkomende opties:

  • Stammenomvat het verwijderen van voorvoegsels en achtervoegsels van een woord en soms zelfs het wijzigen van de interne structuur om het terug te brengen tot de grondvorm. Stammen is een eenvoudigere en efficiëntere methode dan lemmatiseren, maar het levert vaak woorden op die gevalideerd of zinvol moeten zijn.
  • Synoniem in kaart brengenomvat het vervangen van elk woord door een vooraf gedefinieerd synoniem of een reeks synoniemen. Dit kan het aantal unieke woorden in de tekst verminderen en de tekst consistenter en gemakkelijker maken om mee te werken. Het kan echter ook de rijkdom en diversiteit van de tekst verminderen en is mogelijk alleen geschikt voor bepaalde toepassingen.
  • Dimensionaliteitsreductie: Hierbij worden wiskundige technieken gebruikt, zoals decompositie van enkelvoudige waarden (SVD) of niet-negatieve matrixfactorisatie (NMF), om het aantal dimensies in de tekstgegevens te verminderen. Dit kan helpen de belangrijkste en meest relevante kenmerken in de tekst te identificeren en de gegevens beter beheersbaar en efficiënter te maken om mee te werken. Het kan echter ook wat informatie en context in het proces verliezen.

Uiteindelijk zal de gekozen aanpak afhangen van de specifieke vereisten en doelen van uw toepassing. Daarom kan het nodig zijn om met verschillende methoden en technieken te experimenteren om de beste oplossing voor uw behoeften te vinden.

Belangrijkste leerpunten

  • Lemmatisering is een van de top10 meest bruikbare NLP-techniekenvoor een reden. Het is handig om de dimensionaliteit van uw functieruimte te verminderen voordat u aan machine learning begint. Het is daarom een ​​essentieel onderdeel van veel pre-processingspijplijnen.
  • Stemmen is het belangrijkste alternatief voor lemmatisering. Het levert minder nauwkeurige resultaten op, maar is rekenkundig sneller. Het belangrijkste nadeel van stemmen is dat het soms onbeduidende resultaten kan opleveren, waardoor verdere analyse onmogelijk wordt.
  • Er zijn veel praktische use-cases van lemmatisering. Het is essentieel bij tekstclassificatie, sentimentanalyse, onderwerpmodellering en het ophalen van informatie.
  • Python heeft een aantal geweldige bibliotheken met lemmatiseringsimplementaties. SpaCy, NLTK en Gensim zijn de belangrijkste.
  • Voor sommige toepassingen kan de lemmatisatie te traag zijn. Alternatieven om te overwegen zijn stamvorming, het in kaart brengen van synoniemen en reductie van dimensionaliteit.

Bij Spot Intelligence gebruiken we lemmatisering in veel van onze voorbewerkingspijplijnen. Afhankelijk van de grootte van de gegevens die worden verwerkt, is dit echter niet altijd een haalbare optie, dus gebruiken we ook de alternatieven. Dit laat alleen maar zien dat er geen one size fits all-oplossing is in NLP, maar eerder een verscheidenheid aan tools die in combinatie met elkaar worden gebruikt.

(Video) 5g security and evolving architectures

Hoe ziet een typische NLP-pijplijn er voor jou uit? Gebruikt u lemmatisering of de alternatieven daarvan? Laat het ons weten in de reacties hieronder.

Videos

1. Distributed Microservices with Dapr | #CloudNativeNinja PT2
(Nilesh Gule)
2. MJC School. We are ready to help you became a programmer.
(MJC)
3. PHP Syntax
(CS50)
4. CS50 2015 - Week 2
(CS50)
5. CS50 2014 - Week 8
(CS50)

References

Top Articles
Latest Posts
Article information

Author: Nicola Considine CPA

Last Updated: 07/23/2023

Views: 5443

Rating: 4.9 / 5 (69 voted)

Reviews: 92% of readers found this page helpful

Author information

Name: Nicola Considine CPA

Birthday: 1993-02-26

Address: 3809 Clinton Inlet, East Aleisha, UT 46318-2392

Phone: +2681424145499

Job: Government Technician

Hobby: Calligraphy, Lego building, Worldbuilding, Shooting, Bird watching, Shopping, Cooking

Introduction: My name is Nicola Considine CPA, I am a determined, witty, powerful, brainy, open, smiling, proud person who loves writing and wants to share my knowledge and understanding with you.