Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Lemmatizzazione | Stemming e Lemmatizzazione
Introduzione a NLP con Python

Lemmatizzazione

Scorri per mostrare il menu

Comprendere la Lemmatizzazione

Note
Definizione

Lemmatizzazione è una tecnica di normalizzazione del testo utilizzata nell'NLP per ridurre le parole alla loro forma presente nel dizionario, nota come lemma.

A differenza dello stemming, che tronca in modo grossolano i suffissi, la lemmatizzazione considera il contesto e converte la parola nella sua forma da dizionario. Ad esempio, 'am', 'are' e 'is' vengono tutti lemmatizzati in 'be'. Questo approccio può ridurre significativamente la dimensione del vocabolario (il numero di parole uniche) in grandi corpora di testo, aumentando così l'efficienza durante l'addestramento dei modelli.

D'altra parte, sebbene la lemmatizzazione sia più accurata, è anche più computazionalmente costosa e può richiedere molto tempo con grandi insiemi di dati. Inoltre, per una precisione ancora maggiore, si raccomanda di eseguire un'analisi morfologica e il part-of-speech tagging prima della lemmatizzazione.

Note
Nota

Non preoccuparti della part-of-speech tagging per ora, poiché sarà l'argomento successivo che affronterai.

Lemmatizzazione con NLTK

Il WordNet Lemmatizer, fornito dalla libreria NLTK, utilizza il corpus WordNet per eseguire la lemmatizzazione.

Note
Approfondisci

WordNet è un database lessicale semanticamente ricco per l'inglese che va ben oltre un semplice corpus. Raggruppa le parole in insiemi di sinonimi, o synsets, ognuno dei quali rappresenta un concetto distinto ed è accompagnato da definizioni ed esempi d'uso. Inoltre, WordNet codifica relazioni significative tra questi synsets — come hypernyms (termini più generali) e hyponyms (termini più specifici) — offrendo un potente strumento per esplorare e disambiguare i significati delle parole.

Quando si utilizza il WordNet Lemmatizer, questo consulta il database WordNet per trovare il lemma più appropriato della parola.

Come accennato sopra, poiché le parole possono avere significati diversi in contesti differenti (ad esempio, "running" come verbo vs. "running" come sostantivo), il lemmatizzatore può richiedere di specificare la parte del discorso (ad esempio, verbo, sostantivo, aggettivo). Questo aiuta a selezionare il lemma corretto in base al ruolo della parola nella frase.

1234567891011
from nltk.stem import WordNetLemmatizer import nltk # Download the WordNet corpus nltk.download('wordnet') # Initialize the WordNet lemmatizer lemmatizer = WordNetLemmatizer() # Parts of speech, 'v' for verb and 'n' for noun parts_of_speech = ['v', 'n'] # Lemmatize words lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech] print("Lemmatized words:", lemmatized_words)
Descrizione del codice
expand arrow
from nltk.stem import WordNetLemmatizer

Questa riga importa la classe WordNetLemmatizer.

nltk.download('wordnet')

Questa riga scarica il corpus WordNet e garantisce che tutte le funzionalità relative a WordNet, come la lemmatizzazione, possano essere utilizzate.

lemmatizer = WordNetLemmatizer()

Questa riga crea un'istanza della classe WordNetLemmatizer utilizzata per eseguire la lemmatizzazione.

parts_of_speech = ['v', 'n']

Questa riga crea una lista delle parti del discorso che verranno utilizzate nella lemmatizzazione.

lemmatized_words = [lemmatizer.lemmatize("running", pos) for pos in parts_of_speech]

Questa riga crea una lista di parole lemmatizzate utilizzando una list comprehension. Il processo di lemmatizzazione viene eseguito tramite il metodo lemmatize() dell'oggetto lemmatizer. La stringa che rappresenta una parola deve essere il suo primo argomento e la parte del discorso desiderata come secondo argomento opzionale ('v' per verbo, 'a' per aggettivo, 'n' per sostantivo, ecc.).

Si potrebbe omettere la specifica della parte del discorso chiamando lemmatizer.lemmatize("running"), ma come puoi vedere, parti del discorso diverse producono risultati differenti. Per questo motivo, è consigliabile eseguire l'assegnazione della parte del discorso in anticipo.

question mark

Qual è il principale vantaggio dell'utilizzo della lemmatizzazione rispetto allo stemming?

Seleziona la risposta corretta

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 2. Capitolo 3

Chieda ad AI

expand

Chieda ad AI

ChatGPT

Chieda pure quello che desidera o provi una delle domande suggerite per iniziare la nostra conversazione

Sezione 2. Capitolo 3
some-alt