Tehnici de normalizare a textului

Procesarea Limbajului Natural (NLP) în Python

Fouad Trad

Machine Learning Engineer

Normalizarea textului

  • Normalizarea aduce cuvintele într-un format standard
  • Utilă în clasificarea textului, căutare, analiza sentimentelor
  • Tehnici de explorat:
    • Minusculizare
    • Stemming
    • Lematizare

Imagine cu trei persoane care exprimă în moduri diferite că le place să urmărească filme cu o regie bună: „I enjoy watching movies with great direction!", „I enjoyed watching movies that are well-directed.", „Movies with excellent direction are something I enjoy."

Procesarea Limbajului Natural (NLP) în Python

Minusculizare

  • Fără normalizare, aceste cuvinte sunt tratate ca tokeni diferiți
  • Acest lucru induce în eroare modelele și mărește vocabularul
text  = """Data scientists and data 
engineers need DATA"""
lower_text = text.lower()

print(lower_text)
data scientists and data 
engineers need data

Imagine cu o persoană confuză în fața cuvintelor „data", „Data" și „DATA".

Procesarea Limbajului Natural (NLP) în Python

Aplicabilitatea minusculizării

Util pentru

Sarcini bazate pe analiza cuvintelor-cheie

Imagine cu o persoană care caută cuvinte-cheie într-un text.

Procesarea Limbajului Natural (NLP) în Python

Aplicabilitatea minusculizării

Util pentru

Sarcini bazate pe analiza cuvintelor-cheie

Imagine cu o persoană care caută cuvinte-cheie într-un text.

Nu este util pentru

Sarcini care necesită distincție între cuvinte al căror sens depinde de majuscule

Imagine cu un grup de persoane reprezentând „us" și steagul american reprezentând „US".

Procesarea Limbajului Natural (NLP) în Python

Stemming

  • Reduce cuvintele la forma de bază prin eliminarea sufixelor
    • running → run
    • reading → read
  • Util pentru gruparea variațiilor similare ale unui cuvânt
  • Poate genera cuvinte invalide
    • organization → organizat

Logo Stem

Procesarea Limbajului Natural (NLP) în Python

Stemming în cod

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']
Procesarea Limbajului Natural (NLP) în Python

Lematizare

  • Reduce cuvintele la forma de bază
  • Rezultatul este întotdeauna un cuvânt valid
    • organizations → organization
  • Util când acuratețea gramaticală este esențială
  • Mai lent decât stemming-ul, dar mai precis

Logo lematizare

Procesarea Limbajului Natural (NLP) în Python

Lematizare în cod

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']
Procesarea Limbajului Natural (NLP) în Python

Stemming

  • Mai rapid
  • Poate genera cuvinte care nu există în dicționar
  • Recomandat când viteza este prioritară

Imagine cu o persoană care taie un copac cu un fierăstrău.

Lematizare

  • Mai lent
  • Mai precis
  • Recomandat când acuratețea gramaticală este prioritară

Imagine cu o persoană care tunde cu grijă un copac pentru a-i păstra structura.

Procesarea Limbajului Natural (NLP) în Python

Să exersăm!

Procesarea Limbajului Natural (NLP) în Python

Preparing Video For Download...