Technieken voor tekstnormalisatie

Natural Language Processing (NLP) in Python

Fouad Trad

Machine Learning Engineer

Tekstnormalisatie

  • Normalisatie zet woorden om naar een standaardvorm
  • Nuttig voor tekstclassificatie, zoekopdrachten, sentimentanalyse
  • Technieken:
    • Lowercasing
    • Stemming
    • Lemmatization

Afbeelding met drie personen die op verschillende manieren zeggen dat ze graag films met goede regie kijken: "I enjoy watching movies with great direction!", "I enjoyed watching movies that are well-directed.", "Movies with excellent direction are something I enjoy."

Natural Language Processing (NLP) in Python

Lowercasing

  • Zonder normalisatie worden deze woorden aparte tokens
  • Dit misleidt modellen en vergroot de woordenschat
text  = """Data scientists and data 
engineers need DATA"""
lower_text = text.lower()

print(lower_text)
data scientists and data 
engineers need data

Afbeelding van iemand die in de war is tussen 'data', 'Data' en 'DATA.'

Natural Language Processing (NLP) in Python

Toepasbaarheid van lowercasing

Handig voor

Taken die op zoekwoorden steunen

Afbeelding van iemand die naar zoekwoorden in een tekst zoekt.

Natural Language Processing (NLP) in Python

Toepasbaarheid van lowercasing

Handig voor

Taken die op zoekwoorden steunen

Afbeelding van iemand die naar zoekwoorden in een tekst zoekt.

Niet handig voor

Taken die onderscheid op basis van hoofdletters nodig hebben

Afbeelding met een groep mensen voor "us" en de Amerikaanse vlag voor "US."

Natural Language Processing (NLP) in Python

Stemming

  • Brengt woorden terug tot de stam door suffixen af te knippen
    • running → run
    • reading → read
  • Handig om varianten van een woord te groeperen
  • Kan ongeldige woorden opleveren
    • organization → organizat

Stem_logo.png

Natural Language Processing (NLP) in Python

Stemming in code

from nltk.stem import PorterStemmer

stemmer = PorterStemmer()
tokens = ['running', 'bats', 'organizations', 'reading']
stemmed = [stemmer.stem(word) for word in tokens]
print(stemmed)
['run', 'bat', 'organizat', 'read']
Natural Language Processing (NLP) in Python

Lemmatization

  • Brengt woorden terug tot de basisvorm
  • Resultaat is een geldig woord
    • organizations → organization
  • Handig als grammaticale juistheid telt
  • Langzamer dan stemming maar nauwkeuriger

lemmalogo.png

Natural Language Processing (NLP) in Python

Lemmatization in code

from nltk.stem import WordNetLemmatizer

nltk.download('wordnet')
lemmatizer = WordNetLemmatizer()
tokens = ['running', 'bats', 'organizations', 'reading']
lemmatized = [lemmatizer.lemmatize(word) for word in tokens]
print(lemmatized)
['running', 'bat', 'organization', 'reading']
Natural Language Processing (NLP) in Python

Stemming

  • Sneller
  • Levert niet-woorden op
  • Gebruik als je snelheid nodig hebt

Afbeelding van iemand die een boom omzaagt met een kettingzaag.

Lemmatization

  • Langzamer
  • Nauwkeuriger
  • Gebruik als grammaticale juistheid nodig is

Afbeelding van iemand die een boom zorgvuldig snoeit om de structuur te behouden.

Natural Language Processing (NLP) in Python

Laten we oefenen!

Natural Language Processing (NLP) in Python

Preparing Video For Download...