Tokenizza il testo usando NLTK in Python
La tokenizzazione del testo è una tecnica fondamentale di elaborazione del linguaggio naturale (NLP) e una di queste tecniche è Tokenizzazione. È il processo di divisione del testo in componenti o token più piccoli. Questi possono essere:
- Parole: amo la PNL → ['Io' 'amo' 'PNL']
- Frasi: Adoro la PNL. Python è fantastico. → ['Adoro la PNL.' "Python è fantastico."]
Con la popolare libreria di Python NLTK (Natural Language Toolkit) dividere il testo in unità significative diventa semplice ed estremamente efficace.
Implementazione di base
Vediamo l'implementazione della Tokenizzazione utilizzando NLTK in Python
Passaggio 1: installazione e configurazione
Installa il punto modelli di tokenizzazione necessari per la tokenizzazione di frasi e parole.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Passaggio 2: tokenizzare le frasi
sent_tokenize() divide una stringa in un elenco di frasi che gestiscono la punteggiatura e le abbreviazioni.
Python from nltk.tokenize import sent_tokenize text = 'NLTK is a great NLP toolkit. It makes processing text easy!' sentences = sent_tokenize ( text ) print ( sentences )
Produzione:
['NLTK è un ottimo toolkit per la PNL.' 'Semplifica l'elaborazione del testo!']
Passaggio 3: tokenizzare le parole
- word_tokenize() divide una frase in parole e segni di punteggiatura come token separati.
- Gestisce i numeri di punteggiatura delle contrazioni e altro ancora.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Produzione:
['La tokenizzazione' 'è' 'facile' 'con' 'NLTK' ''s' 'word_tokenize' '.']
Vediamo altri esempi
1. WordPunctTokenizzatore
Esso Divide il testo in caratteri alfabetici e non alfabetici
- Separa tutte le sequenze di caratteri di parole e di punteggiatura in token.
- In particolare divide le contrazioni (il Don't diventa Don't).
- Suddivide le email in email.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Produzione:
['Don' ''' 't' 'dividere' 'contrazioni' '.' 'E' '-' 'mail' ':' 'ciao' '@' 'esempio' '.' 'com'' '!']
2. Tokenizzatore di parole di Treebank
È adatto per l'analisi linguistica che gestisce la punteggiatura e le contrazioni.
- Imita la tokenizzazione in stile Penn Treebank comunemente utilizzata per l'analisi linguistica della PNL.
- Gestisce alcune strutture grammaticali inglesi in modo più intelligente.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Produzione:
['Dai' 'un' 'occhiata' 'a' 'NLTK'' ''i' 'tokenizzatori''.']
3. Tokenizzatore Regex
Personalizza la suddivisione basata su modelli.
- Tokenizza in base a un modello di espressione regolare.
- w+ abbina parole e numeri omettendo completamente la punteggiatura.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Produzione:
['Personalizzato' 'regola' 'mantieni' 'solo' 'parole' 'numeri' 'rilascia' 'punteggiatura']
NLTK fornisce un toolkit utile e intuitivo per la tokenizzazione del testo in Python, supportando una gamma di esigenze di tokenizzazione, dalla suddivisione di parole e frasi di base a modelli personalizzati avanzati.
Crea quiz