Tokenización: Comprender el texto desmenuzándolo

Tokenización: Comprender el texto desmenuzándolo
TL; DR
La tokenización es el proceso de dividir el texto en unidades más pequeñas llamadas tokens, como palabras, frases o subpalabras, para prepararlo para los modelos de aprendizaje automático. Por ejemplo, la frase "La tokenización en Milvus es potente" podría dividirse en tokens como ["Tokenización", "en", "Milvus", "es", "potente"]. Estos tokens se transforman en incrustaciones numéricas que capturan su significado para tareas como la búsqueda semántica. En la base de datos vectorial Milvus, la tokenización está integrada con analizadores incorporados que procesan el texto de forma eficiente para su indexación y recuperación. Esta característica simplifica los flujos de trabajo, lo que permite a los desarrolladores manejar directamente el texto sin procesar y potenciar las aplicaciones de búsqueda avanzada con gran precisión y escalabilidad.
Introducción
En el corazón de muchos sistemas de inteligencia artificial (IA) y procesamiento del lenguaje natural (PLN) se encuentra un proceso que transforma el texto en bruto en "datos estructurados": la tokenización. Pero, ¿qué es exactamente la tokenización y por qué es tan importante para las máquinas dividir el texto en trozos más pequeños?
La tokenización es el proceso de descomponer el texto en unidades más pequeñas, lo que permite a las máquinas analizar y comprender el lenguaje con mayor eficacia. Este paso esencial permite a los ordenadores manejar y procesar el lenguaje humano para diversas tareas de PNL, como el análisis de sentimientos, la traducción de idiomas y la generación de textos.
tokenización](https://assets.zilliz.com/tokenization_e2f6903fbb.png)
¿Qué es la tokenización?
La tokenización divide textos, como palabras o caracteres, en unidades más pequeñas llamadas tokens. Es un paso fundamental de la PNL, que permite a las máquinas procesar y comprender el lenguaje humano con mayor eficacia.
¿Por qué necesitamos la tokenización?
La tokenización es como aprender un nuevo idioma: se empieza por dividir las frases en unidades más pequeñas para comprender su significado y estructura. Del mismo modo, los ordenadores dividen un bloque de texto en unidades más pequeñas y manejables para procesarlo. La tokenización enseña al ordenador a identificar estos componentes fundamentales, como palabras o subpalabras, lo que le permite comprender y analizar el texto.
Técnicamente, la tokenización convierte el texto no estructurado en un formato estructurado que un ordenador puede procesar. Por ejemplo, cuando se introduce una frase en un modelo de PLN, el tokenizador la divide en tokens, a los que se asignan valores numéricos. Estos valores permiten a los ordenadores realizar operaciones matemáticas, identificar relaciones y extraer significado de los datos. Sin la tokenización, el texto seguiría siendo una cadena de caracteres incomprensible para la máquina, lo que imposibilitaría el análisis posterior.
Conceptos clave de la tokenización
A continuación, exploraremos los conceptos clave que debe comprender sobre la tokenización.
Token
Un token es una unidad básica de texto considerada significativa para el análisis. Los tokens pueden ser caracteres, palabras o subpalabras que sirven como entrada principal para las tareas posteriores de procesamiento de texto.
Tokenizador
Los tokenizadores son las herramientas fundamentales que permiten a los ordenadores diseccionar e interpretar el lenguaje humano dividiendo el texto en tokens. Aplica reglas específicas, como la división por espacios o el uso de técnicas a nivel de subpalabra, para definir la granularidad de la representación del texto.
Analizador
Un analizador va más allá de la simple tokenización para procesar y comprender el texto en profundidad. Tras la tokenización, se aplican filtros a los tokens para refinarlos aún más aplicando procesamientos adicionales, como minúsculas, stemming, lematización o eliminación de stopwords.
Vocabulario
El vocabulario es el conjunto de tokens únicos (palabras, subpalabras o caracteres) que un modelo puede procesar. Se construye a partir de los tokens producidos durante la tokenización. El vocabulario sirve de referencia al modelo para comprender el texto. Su diseño y tamaño influyen en la capacidad del modelo para manejar el lenguaje, especialmente las palabras raras o no vistas.
Figura - Tokenizador y analizador en Milvus](https://assets.zilliz.com/Figure_Tokenizer_and_Analyzer_in_Milvus_2f283b3046.png)
Figura: Tokenizador y analizador en Milvus
Este diagrama ilustra el flujo de procesamiento de texto, en el que el texto en bruto se tokeniza. A continuación, un analizador aplica filtros para convertir los tokens a minúsculas y eliminar las palabras vacías, lo que da como resultado una lista refinada de tokens significativos.
Tipos de tokenización
Los métodos de tokenización varían en función de la granularidad del desglose del texto y de los requisitos específicos de la tarea en cuestión. Estos son los tipos más comunes de tokenización:
1. Tokenización de caracteres: Descompone el texto en caracteres individuales. Esto puede ser útil para lenguas con morfología compleja y tareas como la corrección ortográfica o el tratamiento de texto ruidoso.
Figura - Tokenización de caracteres](https://assets.zilliz.com/Figure_Character_tokenization_c7c185282c.png)
Figura: Tokenización de caracteres
2. Tokenización de palabras: Es el tipo más común de tokenización, que divide el texto en palabras individuales. Resulta útil para el modelado del lenguaje, el etiquetado de partes del discurso y el reconocimiento de entidades con nombre, que se basan en el análisis a nivel de palabra.
Figura - Tokenización de palabras](https://assets.zilliz.com/Figure_Word_tokenization_8b09acd648.png)
Figura: Tokenización de palabras.
**3. Este tipo segmenta el texto en frases. Separa párrafos o bloques largos de texto en frases distintas. Utilice este tipo para tareas como el análisis de sentimientos y el resumen de texto, en las que es necesario analizar la estructura a nivel de frase.
Figura - Tokenización de frases](https://assets.zilliz.com/Figure_Sentence_tokenization_c0dadf08e4.png)
Figura: Tokenización de frases.
**4. Este método divide las palabras en unidades más pequeñas y significativas (por ejemplo, prefijos, sufijos o tallos). Ayuda a reducir el tamaño del vocabulario y es especialmente útil para tareas como la generación de textos.
Figura: tokenización de subpalabras](https://assets.zilliz.com/Figure_Subword_tokenization_9cc8b0d197.png)
Figura: Tokenización de subpalabras
La tokenización de subpalabras ha dividido la frase en tokens de subpalabras. Palabras raras como "Zilliz" y "Milvus" se dividen en unidades más pequeñas. Además, "open-source" se divide en ["open", "-", "source"], tratando el guión como un token independiente.
Ejemplo de código
He aquí un ejemplo en Python que utiliza el tokenizador [BERT tokenizer] de Hugging Face (https://huggingface.co/docs/transformers/v4.47.1/en/model_doc/bert#transformers.BertTokenizer). Demuestra cómo se tokeniza la frase utilizando la tokenización de subpalabras con el algoritmo WordPiece:
from transformers import AutoTokenizer
# Cargar un tokenizador preentrenado
tokenizer = AutoTokenizer.from_pretrained("bert-base-uncased")
# Tokenizar una frase
sentence = "Zilliz creó Milvus, una potente base de datos vectorial de código abierto"
tokens = tokenizer.tokenize(frase)
print(tokens)
Salida
['z', '##ill', '##iz', 'created', 'mil', '##vus', ',', 'a', 'powerful', 'open', '-', 'source', 'vector', 'database']
Comparación entre tokenización e incrustación de palabras
La tokenización y la incrustación de palabras son técnicas fundamentales en el procesamiento del lenguaje natural (PLN), pero tienen objetivos distintos. La tokenización divide el texto en unidades más pequeñas, mientras que la incrustación convierte estas unidades en forma numérica.
Figura - Relación semántica entre palabras en un espacio vectorial](https://assets.zilliz.com/Figure_Semantic_Relationship_Between_Words_in_Vector_Space_948e78f299.png)
Figura: Relación semántica entre palabras en el espacio vectorial
He aquí una comparación entre la tokenización y la incrustación de palabras:
| Aspecto, tokenización, incrustación de palabras. | --------------- | ------------------------------------------------------------------------------- | -------------------------------------------------------------------------------- | | Definición: El proceso de dividir texto en unidades más pequeñas (tokens). Un método para representar tokens como vectores densos en un espacio vectorial de alta dimensión. | El propósito es dividir el texto en unidades que puedan ser procesadas. Capturar el significado semántico y la relación entre palabras en una representación vectorial. | Ejemplos. Frase: "La tokenización es crucial "Tokens: |["Tokenización", "es", "crucial"] | Palabra: "Milvus "Incrustación: [0.23, 0.56, -0.12, ...] | | Ventajas: Convierte el texto no estructurado en un formato estructurado que un ordenador puede procesar. Captura la semántica, las relaciones y el contexto de las palabras. | Limitaciones: No capta la semántica de los tokens. Requiere una gran potencia de cálculo para generar las incrustaciones.
Ventajas y retos de la tokenización
La tokenización es crucial en el tratamiento de textos. Ofrece varias ventajas para el modelado y el análisis del lenguaje, pero también tiene sus propios retos. Examinemos ambos aspectos.
Ventajas
Procesamiento de texto eficaz:** La tokenización es fundamental en la preparación de datos de texto para tareas de PLN. Hace que el texto sea más adecuado para los modelos de aprendizaje automático.
Control de la granularidad:** La tokenización permite controlar el nivel de granularidad, lo que permite al modelo trabajar con palabras, subpalabras o incluso caracteres en función de la tarea que se esté realizando. Las distintas tareas tienen requisitos diferentes, y una granularidad específica puede mejorar el rendimiento.
Independencia del idioma:** Las técnicas de tokenización pueden adaptarse a diferentes idiomas y escrituras para adaptarse a diferentes idiomas.
Facilita el modelado lingüístico:** La tokenización es crucial para el modelado lingüístico. Define las unidades básicas (tokens) que procesa el modelo, permitiendo una mejor comprensión y generación del texto.
Desafíos
Ambigüedad: La tokenización se enfrenta a retos debidos a la ambigüedad del lenguaje. Por ejemplo, la palabra "banco" puede referirse a una institución financiera o a la orilla de un río, dependiendo del contexto. Del mismo modo, frases como "instituto" pueden tokenizarse como dos palabras separadas o como una sola unidad, lo que afecta a la interpretación.
Pérdida de tokens:** Algunos métodos de tokenización pueden perder información al dividir las palabras en tokens más pequeños, lo que dificulta que los modelos comprendan el contexto o el significado completo del texto original.
Tratamiento de la puntuación:** La segmentación de los tokens que incluyen signos de puntuación, como apóstrofes o guiones, puede resultar complicada para los algoritmos de PLN.
Lenguas sin límites claros:** La tokenización puede ser especialmente difícil en lenguas sin límites claros entre palabras, como el chino o el japonés, donde los espacios no siempre separan las palabras. Estos idiomas requieren métodos de tokenización más sofisticados para dividir el texto con precisión.
Casos de uso de la tokenización
La tokenización se utiliza ampliamente en diversas tareas de PNL, ayudando a los sistemas a procesar y analizar datos textuales. A continuación se describen algunos de los principales casos de uso de la tokenización:
Motores de búsqueda:** La tokenización permite a los motores de búsqueda indexar y recuperar contenido relevante rápidamente al descomponer los términos de consulta y los documentos en tokens, garantizando resultados precisos para las consultas de los usuarios.
Traducción automática:** La tokenización es fundamental en la traducción automática, ya que ayuda a descomponer los idiomas de origen y destino en tokens que un modelo puede mapear y traducir eficazmente entre idiomas.
Reconocimiento del habla:** La tokenización ayuda a convertir el lenguaje hablado en texto segmentando la entrada de audio en tokens para su procesamiento, lo que permite a los sistemas comprender las palabras habladas de forma estructurada.
Análisis de sentimientos:** La tokenización es esencial para el análisis de sentimientos, ya que descompone el texto en tokens para su posterior procesamiento con el fin de determinar si el sentimiento expresado es positivo, negativo o neutro.
Chatbots y asistentes virtuales:** La tokenización permite a los chatbots y asistentes virtuales comprender y procesar las consultas de los usuarios dividiendo el texto en unidades manejables. Esto les permite responder de forma inteligente en función de la información recibida.
Herramientas para la tokenización
En PNL se suelen utilizar varias herramientas para la tokenización:
NLTK](https://www.nltk.org/): Es una potente biblioteca de Python para el procesamiento del lenguaje natural, que proporciona herramientas para la tokenización, stemming, lematización, etiquetado POS y mucho más.
SpaCy](https://spacy.io/): Una rápida librería NLP con un potente tokenizador para palabras y frases y tokenización personalizable, convirtiéndola en una herramienta imprescindible para aplicaciones industriales.
Tokenizer](https://huggingface.co/docs/transformers/en/main_classes/tokenizer):** Tokeniza modelos basados en transformadores como BERT y GPT con manejo de subpalabras.
Gensim](https://radimrehurek.com/gensim/):** Popular para el modelado de temas, incluye funciones de preprocesamiento de texto y tokenización.
Tokenización en la base de datos vectorial Milvus
Una base de datos vectorial está diseñada para almacenar, indexar y buscar datos no estructurados -como texto, imágenes y vídeos- utilizando incrustaciones vectoriales de alta dimensión. Estas incrustaciones permiten una rápida recuperación de información semántica y búsquedas basadas en similitudes, lo que hace que las bases de datos vectoriales sean esenciales para aplicaciones como sistemas de recomendación, motores de búsqueda y flujos de trabajo de IA.
La Tokenización es el primer paso de este proceso. Descompone el texto bruto en unidades más pequeñas, como palabras, frases o subpalabras, que luego son convertidas en representaciones numéricas (incrustaciones vectoriales) por modelos de aprendizaje automático. Milvus, una base de datos vectorial de código abierto desarrollada por Zilliz, almacena estas incrustaciones en un espacio de alta dimensión donde pueden consultarse eficazmente en busca de similitudes.
Tokenización integrada en Milvus
Milvus simplifica la tokenización con sus analizadores integrados, que se adaptan a diferentes idiomas y casos de uso. Estos analizadores integran tokenizadores y filtros para procesar datos de texto para una indexación y recuperación eficientes:
Analizador estándar**: El analizador predeterminado para el procesamiento de texto de uso general. Realiza una tokenización basada en la gramática, convierte los tokens a minúsculas y admite búsquedas sin distinción entre mayúsculas y minúsculas.
Analizador inglés**: Diseñado específicamente para textos en inglés. Incluye la eliminación de la raíz de las palabras y de las palabras vacías más comunes, centrándose en los términos significativos.
Analizador de chino**: Optimizado para procesar texto chino, con tokenización diseñada para manejar estructuras lingüísticas únicas.
Estos analizadores integrados permiten a los desarrolladores introducir texto sin procesar directamente en Milvus sin necesidad de preprocesamiento externo, agilizando los flujos de trabajo y reduciendo la complejidad.
Cómo maneja Milvus la tokenización
A partir de Milvus 2.5, la base de datos incluye **capacidades integradas búsqueda de texto completo, lo que le permite procesar internamente entradas de texto sin procesar. Cuando usted inserta datos de texto, Milvus utiliza el analizador especificado para tokenizar el texto en términos individuales que permitan la búsqueda. A continuación, estos términos se convierten en representaciones vectoriales dispersas utilizando algoritmos como BM25 y se almacenan para una recuperación eficiente.
Este enfoque híbrido permite a Milvus manejar tanto vectores densos (incrustaciones semánticas) como vectores dispersos (representaciones basadas en palabras clave). Como resultado, Milvus admite escenarios de búsqueda híbridos avanzados que combinan la comprensión semántica con la precisión de las palabras clave, a la vez que gestiona la tokenización y la vectorización sin problemas dentro de la base de datos.
Ventajas de la tokenización integrada en Milvus
Flujo de trabajo simplificado**: Los analizadores incorporados de Milvus eliminan la necesidad de herramientas externas de tokenización, facilitando la ingesta directa de datos de texto sin procesar.
Capacidades de búsqueda mejoradas**: Al combinar la búsqueda de texto completo con la búsqueda de similitud vectorial, Milvus ofrece resultados altamente precisos y relevantes para diversas aplicaciones.
Escalabilidad**: La gestión interna de la tokenización y la vectorización garantiza que Milvus pueda procesar eficientemente datos de texto a gran escala en una gran variedad de casos de uso.
Con estas características, Milvus permite a los desarrolladores crear aplicaciones de búsqueda y análisis inteligentes con mayor facilidad, centrándose en la innovación en lugar de en las complejidades del preprocesamiento de texto. Tanto si trabaja en búsquedas en lenguaje natural, recomendaciones basadas en IA o sistemas de recuperación híbridos, Milvus proporciona una plataforma robusta y fácil de desarrollar para potenciar sus aplicaciones.
Preguntas frecuentes sobre tokenización
01. ¿Por qué es importante la tokenización en PNL?.
La tokenización convierte el texto no estructurado en unidades manejables, lo que permite a los ordenadores procesar el lenguaje. Ayuda a los modelos de PNL a asignar representaciones numéricas a los tokens, lo que permite realizar operaciones matemáticas y extraer patrones significativos.
**02. ¿Cuál es la diferencia entre la tokenización de palabras y la de caracteres?
La tokenización de palabras divide el texto en palabras individuales, tratando cada palabra como un token independiente. En cambio, la tokenización de caracteres divide el texto en caracteres individuales.
**03. ¿Qué es la lematización y la tokenización?
La tokenización divide el texto en unidades más pequeñas, como palabras u oraciones, lo que facilita el procesamiento informático. La lematización reduce las palabras a su forma básica, por ejemplo convirtiendo "running" en "run", lo que garantiza la coherencia en la comprensión del lenguaje.
**04. ¿Cómo afecta la tokenización al rendimiento del modelo?
La tokenización afecta al modo en que el texto se descompone y es comprendido por un modelo. Una tokenización adecuada puede mejorar el rendimiento del modelo al capturar relaciones precisas entre las palabras, mientras que una tokenización deficiente puede dar lugar a interpretaciones erróneas o a la pérdida de significado.
**05. ¿Qué papel desempeña la tokenización en el análisis de sentimientos o la clasificación de textos?
En el análisis de sentimientos y la clasificación de textos, la tokenización divide el texto en unidades más pequeñas, como palabras o frases, que pueden analizarse en busca de patrones o sentimientos. Este proceso permite a los algoritmos procesar los tokens individuales y clasificar o asignar el sentimiento al texto con precisión.
Recursos relacionados
Qué es Milvus | Documentación de Milvus](https://milvus.io/docs/overview.md)
Visión general del analizador | Documentación de Milvus](https://milvus.io/docs/analyzer-overview.md)
Conceptos básicos de PNL: Modelos de tokens, N-grams y bolsas de palabras](https://zilliz.com/learn/introduction-to-natural-language-processing-tokens-ngrams-bag-of-words-models)
Las 10 técnicas PNL más populares para los científicos de datos](https://zilliz.com/learn/top-10-nlp-techniques-every-data-scientist-should-know)
Guía para principiantes sobre el procesamiento del lenguaje natural](https://zilliz.com/learn/A-Beginner-Guide-to-Natural-Language-Processing)
Qué es la recuperación de información: guía completa](https://zilliz.com/learn/what-is-information-retrieval)
- TL; DR
- Introducción
- ¿Qué es la tokenización?
- ¿Por qué necesitamos la tokenización?
- Conceptos clave de la tokenización
- Tipos de tokenización
- Comparación entre tokenización e incrustación de palabras
- Ventajas y retos de la tokenización
- Casos de uso de la tokenización
- Herramientas para la tokenización
- Tokenización en la base de datos vectorial Milvus
- Preguntas frecuentes sobre tokenización
- Recursos relacionados
Contenido
Comienza Gratis, Escala Fácilmente
Prueba la base de datos vectorial completamente gestionada construida para tus aplicaciones GenAI.
Prueba Zilliz Cloud Gratis