Tekniker för textnormalisering

Natural Language Processing (NLP) i Python

Fouad Trad

Machine Learning Engineer

Textnormalisering

  • Normalisering standardiserar ord
  • Användbart vid textklassificering, sökning och sentimentanalys
  • Tekniker att utforska:
    • Gemener
    • Stemming
    • Lemmatisering

Bild som visar tre personer som uttrycker att de gillar att se filmer med bra regi, på tre olika sätt: "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) i Python

Gemener

  • Utan normalisering behandlas dessa ord som separata tokens
  • Det vilseleder modeller och ökar ordförrådets storlek
text  = """Data scientists and data 
engineers need DATA"""
lower_text = text.lower()

print(lower_text)
data scientists and data 
engineers need data

Bild som visar en förvirrad person inför 'data', 'Data' och 'DATA.'

Natural Language Processing (NLP) i Python

När gemener passar

Användbart för

Uppgifter som bygger på nyckelordsanalys

Bild som visar en person som söker efter nyckelord i en text.

Natural Language Processing (NLP) i Python

När gemener passar

Användbart för

Uppgifter som bygger på nyckelordsanalys

Bild som visar en person som söker efter nyckelord i en text.

Inte användbart för

Uppgifter där skiftlägeskänslig betydelse spelar roll

Bild som visar en grupp människor som representerar "us" och en amerikansk flagga som representerar "US."

Natural Language Processing (NLP) i Python

Stemming

  • Reducerar ord till sin rotform genom att ta bort suffix
    • running → run
    • reading → read
  • Användbart för att gruppera liknande ordvarianter
  • Kan ge ogiltiga ord
    • organization → organizat

Stem_logo.png

Natural Language Processing (NLP) i Python

Stemming i kod

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) i Python

Lemmatisering

  • Reducerar ord till sin grundform
  • Resultatet är alltid ett giltigt ord
    • organizations → organization
  • Användbart när grammatisk noggrannhet är viktig
  • Långsammare än stemming men mer precis

lemmalogo.png

Natural Language Processing (NLP) i Python

Lemmatisering i kod

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) i Python

Stemming

  • Snabbare
  • Kan ge ord som inte finns i ordlistan
  • Välj vid behov av hastighet

Bild som visar en person som sågar ner ett träd med en motorsåg.

Lemmatisering

  • Långsammare
  • Mer exakt
  • Välj vid behov av grammatisk noggrannhet

Bild som visar en person som varsamt formar ett träd för att bevara dess struktur.

Natural Language Processing (NLP) i Python

Nu kör vi en övning!

Natural Language Processing (NLP) i Python

Preparing Video For Download...