Tokenización de texto: división en unidades procesables para IA
Clase 4 de 16 • Curso de NLP con Python
Resumen
La tokenización es una técnica fundamental en el manejo del texto. Consiste en dividir un texto en partes más pequeñas llamadas tokens, los cuales pueden ser palabras, grupos de palabras o incluso caracteres individuales. Este proceso es clave para que los sistemas de inteligencia artificial utilicen eficientemente los recursos.
¿Qué es la tokenización y por qué varía según el modelo?
Cada modelo cuenta con su propio tokenizador, con características particulares. Un ejemplo claro se observa con OpenAI, donde el mensaje "Hola, ¿cómo estás?" genera distinta cantidad y agrupación de tokens según el modelo seleccionado. El modelo ChatGPT 3 crea ocho tokens mientras que la versión 3.5 produce seis, y GPT 4 sólo cinco tokens para la misma frase.
Las diferencias pueden provenir por ejemplo del agrupamiento diferente de caracteres como ocurre con la "h" inicial en la palabra "hola". Este comportamiento revela un aspecto esencial: cada modelo maneja de manera única sus tokens.
¿Cuáles son las librerías más utilizadas para la tokenización?
Hay dos librerías populares para la tokenización y vectorización del texto en Python: NLTK y SPACY.
Tokenización con NLTK
NLTK permite seleccionar modelos específicos como, por ejemplo, el modelo multilingüe para trabajar textos en español. Un fragmento práctico del código típico:
import nltk
nltk.download('modelo_multilingue')
Aquí puedes tokenizar textos y obtener oraciones, adaptadas al español.
Tokenización con SPACY
Para tokenizar textos en español con SPACY, primero tienes que descargar e importar un modelo entrenado como el modelo de noticias (core news
):
import spacy
!python -m spacy download es_core_news_sm
modelo = spacy.load("es_core_news_sm")
Esta librería divide el texto en oraciones y tokens, ofreciendo flexibilidad y eficiencia en términos de rendimiento.
¿Qué técnicas adicionales mejoran el procesamiento del texto?
El preprocesamiento de texto incluye técnicas vitales como:
- Eliminación de stopwords: Retira palabras comunes sin significado particular como "el" o "de".
- Stemming: Acorta las palabras a una raíz genérica. Por ejemplo, "comprando", "compras" y "comprar" se reducen a "compra".
- Lematización: Convierte las palabras a su forma canónica, preservando un sentido más semántico y claro que el stemming. Por ejemplo, "comprando" se transforma efectivamente en "comprar".
Cada método cumple una función específica:
- El stemming reduce las palabras significativamente, aunque suele perder algo del significado semántico.
- La lematización preserva mejor el significado original y semántica del término original.
Con todos estos elementos, tus textos quedarán listos para generar, por ejemplo, atractivas nubes de palabras, que ayuden a visualizar los términos más importantes tras el análisis textual.
¿Tienes alguna duda sobre alguno de estos métodos o técnicas? ¡Compártenos tus inquietudes y avancemos juntos en tu aprendizaje!