Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Impara Tokenizzazione | Fondamenti della Pre-Elaborazione del Testo
Practice
Projects
Quizzes & Challenges
Quizzes
Challenges
/
Introduzione a NLP con Python

bookTokenizzazione

Prima di addentrarci nel processo di tokenizzazione, è necessario definire cosa sono i token.

Note
Definizione

Token sono componenti testuali indipendenti e minimi, che possiedono una sintassi e una semantica specifiche.

Di conseguenza, la tokenizzazione è il processo di suddivisione del testo in token. Ad esempio, un paragrafo di testo, un documento di testo o un corpus testuale è composto da diversi elementi che possono essere suddivisi in frasi, sintagmi e parole. In effetti, i metodi di tokenizzazione più diffusi includono la tokenizzazione in frasi e parole, utilizzata per suddividere un documento di testo (o corpus) in frasi e ciascuna frase in parole.

Note
Definizione

Un corpus testuale (plurale: corpora) è un insieme ampio e strutturato di testi utilizzato nella ricerca linguistica e nella linguistica computazionale. In sostanza, si tratta di una raccolta completa di materiale scritto o parlato che funge da campione rappresentativo di una particolare lingua, dialetto o area tematica.

Tokenizzazione delle frasi

Iniziamo con la tokenizzazione delle frasi. Fortunatamente, nltk fornisce la funzione sent_tokenize() nel modulo tokenize. Lo scopo principale di questa funzione è suddividere un testo dato in un elenco di frasi.

sent_tokenize() utilizza un modello pre-addestrato, tipicamente un modello di apprendimento automatico addestrato su un ampio corpus di testo, per identificare i confini tra le frasi. Prende in considerazione diversi indizi nel testo, come segni di punteggiatura (ad esempio, punti, punti esclamativi, punti interrogativi), maiuscole e altri schemi linguistici che solitamente segnano la fine di una frase e l'inizio di un'altra.

123456789
# Importing the sent_tokenize() function from nltk.tokenize import sent_tokenize import nltk # Downloading the "Punkt" tokenizer models nltk.download('punkt_tab') text = "Hello world. This is an example of sentence tokenization. NLTK makes it easy!" # Sentence tokenization sentences = sent_tokenize(text) print(sentences)
copy

Come puoi vedere, non c'è nulla di complicato. È sufficiente passare una stringa con il tuo testo come argomento di sent_tokenize() per ottenere un elenco di frasi. Per quanto riguarda nltk.download('punkt_tab'), questo comando scarica specificamente i modelli di tokenizzazione "Punkt". Scaricando i modelli Punkt, garantisci che NLTK disponga dei dati necessari per eseguire una tokenizzazione accurata di frasi e parole.

Note
Nota

I segni di punteggiatura alla fine di ogni frase sono inclusi nella frase.

Tokenizzazione delle parole

Nella tokenizzazione delle parole, esistono diversi metodi comuni per eseguirla; tuttavia, discuteremo solo i due più diffusi.

Il metodo più diretto e semplice è utilizzare la funzione split() della classe string, che utilizza per impostazione predefinita simboli di nuova riga, spazi e tabulazioni come delimitatori. Tuttavia, è anche possibile passare una stringa arbitraria come argomento per fungere da delimitatore.

123456
text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy
Note
Nota

Per garantire che token come 'This' e 'this' vengano trattati allo stesso modo, è importante convertire la stringa in minuscolo prima della tokenizzazione.

Un approccio più flessibile, tuttavia, consiste nell'utilizzare la funzione word_tokenize() presente nel modulo tokenize della libreria nltk. Questa funzione identifica e separa le parole in base agli spazi e ai segni di punteggiatura, suddividendo efficacemente le frasi nelle parole costituenti. Analogamente a sent_tokenize(), questa funzione richiede una stringa come argomento.

Confrontiamo questo approccio con l'utilizzo del metodo split(). L'esempio seguente utilizza word_tokenize():

12345678
from nltk import word_tokenize import nltk nltk.download('punkt_tab') text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using word_tokenize() words = word_tokenize(text) print(words)
copy

Vediamo ora come si comporta il metodo split() con lo stesso testo:

12345
text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy

Nel nostro esempio, word_tokenize(), a differenza di split(), identifica correttamente punteggiatura e caratteri speciali come token separati. Separa correttamente il simbolo del dollaro dal numero e riconosce i punti come token autonomi. Questa tokenizzazione dettagliata è fondamentale per molte attività di NLP, dove la precisa distinzione tra parole e punteggiatura può influire in modo significativo sull'accuratezza e sulle informazioni ottenute dall'analisi.

question mark

Data la frase "It wasn't me, I swear!", quale sarà il risultato dell'applicazione del metodo split() su di essa?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. 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

bookTokenizzazione

Scorri per mostrare il menu

Prima di addentrarci nel processo di tokenizzazione, è necessario definire cosa sono i token.

Note
Definizione

Token sono componenti testuali indipendenti e minimi, che possiedono una sintassi e una semantica specifiche.

Di conseguenza, la tokenizzazione è il processo di suddivisione del testo in token. Ad esempio, un paragrafo di testo, un documento di testo o un corpus testuale è composto da diversi elementi che possono essere suddivisi in frasi, sintagmi e parole. In effetti, i metodi di tokenizzazione più diffusi includono la tokenizzazione in frasi e parole, utilizzata per suddividere un documento di testo (o corpus) in frasi e ciascuna frase in parole.

Note
Definizione

Un corpus testuale (plurale: corpora) è un insieme ampio e strutturato di testi utilizzato nella ricerca linguistica e nella linguistica computazionale. In sostanza, si tratta di una raccolta completa di materiale scritto o parlato che funge da campione rappresentativo di una particolare lingua, dialetto o area tematica.

Tokenizzazione delle frasi

Iniziamo con la tokenizzazione delle frasi. Fortunatamente, nltk fornisce la funzione sent_tokenize() nel modulo tokenize. Lo scopo principale di questa funzione è suddividere un testo dato in un elenco di frasi.

sent_tokenize() utilizza un modello pre-addestrato, tipicamente un modello di apprendimento automatico addestrato su un ampio corpus di testo, per identificare i confini tra le frasi. Prende in considerazione diversi indizi nel testo, come segni di punteggiatura (ad esempio, punti, punti esclamativi, punti interrogativi), maiuscole e altri schemi linguistici che solitamente segnano la fine di una frase e l'inizio di un'altra.

123456789
# Importing the sent_tokenize() function from nltk.tokenize import sent_tokenize import nltk # Downloading the "Punkt" tokenizer models nltk.download('punkt_tab') text = "Hello world. This is an example of sentence tokenization. NLTK makes it easy!" # Sentence tokenization sentences = sent_tokenize(text) print(sentences)
copy

Come puoi vedere, non c'è nulla di complicato. È sufficiente passare una stringa con il tuo testo come argomento di sent_tokenize() per ottenere un elenco di frasi. Per quanto riguarda nltk.download('punkt_tab'), questo comando scarica specificamente i modelli di tokenizzazione "Punkt". Scaricando i modelli Punkt, garantisci che NLTK disponga dei dati necessari per eseguire una tokenizzazione accurata di frasi e parole.

Note
Nota

I segni di punteggiatura alla fine di ogni frase sono inclusi nella frase.

Tokenizzazione delle parole

Nella tokenizzazione delle parole, esistono diversi metodi comuni per eseguirla; tuttavia, discuteremo solo i due più diffusi.

Il metodo più diretto e semplice è utilizzare la funzione split() della classe string, che utilizza per impostazione predefinita simboli di nuova riga, spazi e tabulazioni come delimitatori. Tuttavia, è anche possibile passare una stringa arbitraria come argomento per fungere da delimitatore.

123456
text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy
Note
Nota

Per garantire che token come 'This' e 'this' vengano trattati allo stesso modo, è importante convertire la stringa in minuscolo prima della tokenizzazione.

Un approccio più flessibile, tuttavia, consiste nell'utilizzare la funzione word_tokenize() presente nel modulo tokenize della libreria nltk. Questa funzione identifica e separa le parole in base agli spazi e ai segni di punteggiatura, suddividendo efficacemente le frasi nelle parole costituenti. Analogamente a sent_tokenize(), questa funzione richiede una stringa come argomento.

Confrontiamo questo approccio con l'utilizzo del metodo split(). L'esempio seguente utilizza word_tokenize():

12345678
from nltk import word_tokenize import nltk nltk.download('punkt_tab') text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using word_tokenize() words = word_tokenize(text) print(words)
copy

Vediamo ora come si comporta il metodo split() con lo stesso testo:

12345
text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy

Nel nostro esempio, word_tokenize(), a differenza di split(), identifica correttamente punteggiatura e caratteri speciali come token separati. Separa correttamente il simbolo del dollaro dal numero e riconosce i punti come token autonomi. Questa tokenizzazione dettagliata è fondamentale per molte attività di NLP, dove la precisa distinzione tra parole e punteggiatura può influire in modo significativo sull'accuratezza e sulle informazioni ottenute dall'analisi.

question mark

Data la frase "It wasn't me, I swear!", quale sarà il risultato dell'applicazione del metodo split() su di essa?

Select the correct answer

Tutto è chiaro?

Come possiamo migliorarlo?

Grazie per i tuoi commenti!

Sezione 1. Capitolo 3
some-alt