Tokenizar texto usando NLTK en Python
La tokenización de texto es una técnica fundamental de procesamiento del lenguaje natural (PLN) y una de esas técnicas es Tokenización. Es el proceso de dividir el texto en componentes o tokens más pequeños. Estos pueden ser:
- Palabras: Me encanta la PNL → ['I' 'me encanta' 'PNL']
- Oraciones: Me encanta la PNL. Python es genial. → ['Me encanta la PNL.' 'Python es genial.']
Con la popular biblioteca de Python NLTK (Natural Language Toolkit) dividir el texto en unidades significativas se vuelve simple y extremadamente efectivo.
Implementación básica
Veamos la implementación de Tokenización usando NLTK en Python
Paso 1: instalación y configuración
Instale el punto Modelos de tokenizador necesarios para la tokenización de oraciones y palabras.
Python ! pip install nltk import nltk nltk . download ( 'punkt' )
Paso 2: tokenizar oraciones
sent_tokenize() divide una cadena en una lista de oraciones que manejan puntuación y abreviaturas.
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 )
Producción:
['NLTK es un excelente conjunto de herramientas de PNL.' '¡Facilita el procesamiento de texto!']
Paso 3: tokenizar palabras
- word_tokenize() divide una oración en palabras y signos de puntuación como tokens separados.
- Maneja contracciones, números de puntuación y más.
from nltk.tokenize import word_tokenize sentence = 'Tokenization is easy with NLTK's word_tokenize.' words = word_tokenize ( sentence ) print ( words )
Producción:
['La tokenización' 'es' 'fácil' 'con' 'NLTK' ''s' 'word_tokenize' '.']
Veamos algunos ejemplos más.
1. Tokenizador de WordPunct
Él Divide el texto en caracteres alfabéticos y no alfabéticos
- Separa todas las secuencias de caracteres de palabras y puntuación en tokens.
- Especialmente divide las contracciones (Don't se convierte en Don' t).
- Divide los correos electrónicos en correos electrónicos.
from nltk.tokenize import WordPunctTokenizer tokenizer = WordPunctTokenizer () tokens = tokenizer . tokenize ( 'Don't split contractions. E-mails: [email protected]!' ) print ( tokens )
Producción:
['No' ''' 'no' 'dividir' las 'contracciones' '.' 'E' '-' 'correos' ':' 'hola' '@' 'ejemplo' '.' 'com' '!']
2. Tokenizador de palabras de Treebank
Es adecuado para el análisis lingüístico, maneja puntuación y contracciones.
- Imita la tokenización al estilo de Penn Treebank, que se usa comúnmente para el análisis lingüístico de PNL.
- Maneja ciertas estructuras gramaticales del inglés de manera más inteligente.
from nltk.tokenize import TreebankWordTokenizer tokenizer = TreebankWordTokenizer () tokens = tokenizer . tokenize ( 'Have a look at NLTK's tokenizers.' ) print ( tokens )
Producción:
['Echa' 'una' 'mirada' 'a' los 'tokenizadores' de 'NLTK' '.']
3. Tokenizador de expresiones regulares
Personaliza la división basada en patrones.
- Tokeniza según un patrón de expresión regular.
- w+ coincide con palabras y números omitiendo la puntuación por completo.
from nltk.tokenize import RegexpTokenizer tokenizer = RegexpTokenizer ( r 'w+' ) tokens = tokenizer . tokenize ( 'Custom rule: keep only words & numbers drop punctuation!' ) print ( tokens )
Producción:
['Regla' 'personalizada' 'mantener' 'solo' 'palabras' 'números' 'eliminar' 'puntuación']
NLTK proporciona un conjunto de herramientas útil y fácil de usar para tokenizar texto en Python, que admite una variedad de necesidades de tokenización, desde la división básica de palabras y oraciones hasta patrones personalizados avanzados.
Crear cuestionario