Tokenitza el text amb NLTK a Python
La tokenització de text és una tècnica fonamental de processament del llenguatge natural (NLP) i una d'aquestes tècniques és Tokenització. És el procés de dividir el text en components més petits o fitxes. Aquests poden ser:
- Paraules: m'encanta la PNL → ['m'encanta' 'NLP']
- Frases: m'encanta la PNL. Python és genial. → ['M'encanta la PNL.' "Python és genial".]
Amb la popular biblioteca de Python NLTK (Natural Language Toolkit) dividir text en unitats significatives esdevé simple i extremadament efectiu.
Implementació bàsica
Vegem la implementació de Tokenization mitjançant NLTK a Python
Pas 1: instal·lar i configurar
Instal·leu el punt models de tokenizer necessaris per a la tokenització de frases i paraules.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Pas 2: tokenitza les frases
sent_tokenize() divideix una cadena en una llista de frases que gestionen la puntuació i les abreviatures.
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 )
Sortida:
['NLTK és un gran conjunt d'eines de PNL.' 'Fa fàcil processar el text!']
Pas 3: tokenitza les paraules
- word_tokenize() divideix una frase en paraules i signes de puntuació com a testimonis separats.
- Gestiona els números de puntuació de les contraccions i molt més.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Sortida:
['La tokenització' 'és' 'fàcil' 'amb' 'NLTK' ''s' 'word_tokenize' '.']
Vegem alguns exemples més
1. WordPunctTokenizer
Això Divideix el text en caràcters alfabètics i no alfabètics
- Separa totes les seqüències de caràcters de paraules i signes de puntuació en fitxes.
- Especialment divideix les contraccions (Don't es converteix en Don ' t).
- Divideix els correus electrònics en correus electrònics.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Sortida:
['Don' ''' 't' 'dividir' 'contraccions' '.' 'E' '-' 'mails' ':' 'hola' '@' 'exemple' '.' 'com' '!']
2. TreebankWordTokenizer
És adequat per a l'anàlisi lingüística maneja puntuació i contraccions.
- Imita la tokenització a l'estil Penn Treebank que s'utilitza habitualment per a l'anàlisi lingüística de PNL.
- Maneja determinades estructures gramaticals angleses de manera més intel·ligent.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Sortida:
["Fes una ullada" als "tokenitzadors" de "NLTK".]
3. Regex Tokenizer
Personalitza la divisió basada en patrons.
- Tokenitza basat en un patró d'expressió regular.
- w+ fa coincidir paraules i números ometent completament la puntuació.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Sortida:
["Personalitzada" "regla" "mantenir" "només" "paraules" "nombres" "deixar" "puntuació"]
NLTK ofereix un conjunt d'eines útil i fàcil d'utilitzar per tokenitzar text a Python que admet una sèrie de necessitats de tokenització, des de la divisió bàsica de paraules i frases fins a patrons personalitzats avançats.
Crea un qüestionari