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
Introduzione alla NLP

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 testuale 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 testuale (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 testi, 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 consiste nell'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' siano 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() del 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 delimitazione di parole e punteggiatura può influenzare in modo significativo l'accuratezza e le intuizioni dell'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

Suggested prompts:

Can you explain the difference between sentence and word tokenization?

Why is it important to use the Punkt tokenizer models in NLTK?

Can you give more examples of when precise tokenization is necessary?

Awesome!

Completion rate improved to 3.45

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 testuale 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 testuale (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 testi, 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 consiste nell'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' siano 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() del 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 delimitazione di parole e punteggiatura può influenzare in modo significativo l'accuratezza e le intuizioni dell'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