Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprende Tokenización | Fundamentos de la Preprocesamiento de Texto
Introducción al PLN

bookTokenización

Antes de profundizar en el proceso de tokenización, primero debemos definir qué son los tokens.

Note
Definición

Tokens son componentes de texto independientes y mínimos, que poseen una sintaxis y semántica específicas.

En consecuencia, la tokenización es el proceso de dividir el texto en tokens. Por ejemplo, un párrafo de texto, un documento de texto o un corpus de texto consta de varios componentes que pueden dividirse en oraciones, frases y palabras. De hecho, los métodos de tokenización más populares incluyen la tokenización de oraciones y palabras, que se utiliza para dividir un documento de texto (o corpus) en oraciones y cada oración en palabras.

Note
Definición

Un corpus de texto (plural: corpora) es un conjunto grande y estructurado de textos utilizado en la investigación lingüística y de lingüística computacional. Esencialmente, es una colección exhaustiva de material escrito u oral que sirve como muestra representativa de un idioma, dialecto o área temática en particular.

Tokenización de oraciones

Comencemos con la tokenización de oraciones. Afortunadamente, nltk proporciona la función sent_tokenize() en el módulo tokenize. El propósito principal de esta función es dividir un texto dado en una lista de oraciones.

sent_tokenize() utiliza un modelo preentrenado, normalmente un modelo de aprendizaje automático que ha sido entrenado con un gran corpus de texto, para identificar los límites entre oraciones. Tiene en cuenta varias señales en el texto, como signos de puntuación (por ejemplo, puntos, signos de exclamación, signos de interrogación), mayúsculas y otros patrones lingüísticos que suelen marcar el final de una oración y el comienzo de otra.

123456789
# Importing the sent_tokenize() function from nltk.tokenize import sent_tokenize import nltk # Downloading the "Punkt" tokenizer models nltk.download('punkt_tab') text = "Hello world. This is an example of sentence tokenization. NLTK makes it easy!" # Sentence tokenization sentences = sent_tokenize(text) print(sentences)
copy

Como puedes ver, no hay nada complicado aquí. Simplemente debes pasar una cadena de texto con tu texto como argumento de sent_tokenize() para obtener una lista de oraciones. En cuanto a nltk.download('punkt_tab'), este comando descarga específicamente los modelos de tokenizador "Punkt". Al descargar los modelos de tokenizador Punkt, aseguras que NLTK tenga los datos necesarios para realizar una tokenización precisa de oraciones y palabras.

Note
Nota

Los signos de puntuación al final de cada oración se incluyen en la oración.

Tokenización de palabras

En la tokenización de palabras, existen varios métodos comunes para realizarla; sin embargo, solo discutiremos los dos más frecuentes.

El método más directo y sencillo es utilizar la función split() de la clase string, que utiliza por defecto los símbolos de salto de línea, espacios y tabulaciones como delimitadores. Sin embargo, también puedes pasar una cadena de texto arbitraria como argumento para que sirva como delimitador.

123456
text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy
Note
Nota

Para garantizar que los tokens como 'This' y 'this' se traten como iguales, es importante convertir la cadena a minúsculas antes de la tokenización.

Sin embargo, un enfoque más flexible es utilizar la función word_tokenize() del módulo tokenize de la biblioteca nltk. Esta función identifica y separa palabras basándose en espacios y signos de puntuación, descomponiendo eficazmente las oraciones en sus palabras constituyentes. De manera similar a sent_tokenize(), esta función requiere una cadena como argumento.

Comparemos este enfoque con el uso del método split(). El siguiente ejemplo utiliza word_tokenize():

12345678
from nltk import word_tokenize import nltk nltk.download('punkt_tab') text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using word_tokenize() words = word_tokenize(text) print(words)
copy

Ahora veamos cómo funciona el método split() con el mismo texto:

12345
text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy

En nuestro ejemplo, word_tokenize(), a diferencia de split(), identifica correctamente la puntuación y los caracteres especiales como tokens separados. Separa correctamente el signo de dólar del número y reconoce los puntos como tokens independientes. Esta tokenización matizada es crucial para muchas tareas de PLN, donde la delimitación precisa de palabras y signos de puntuación puede influir significativamente en la exactitud del análisis y en los conocimientos obtenidos.

question mark

Dada la oración "It wasn't me, I swear!", ¿cuál será el resultado de aplicar el método split() sobre ella?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 3

Pregunte a AI

expand

Pregunte a AI

ChatGPT

Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla

Awesome!

Completion rate improved to 3.45

bookTokenización

Desliza para mostrar el menú

Antes de profundizar en el proceso de tokenización, primero debemos definir qué son los tokens.

Note
Definición

Tokens son componentes de texto independientes y mínimos, que poseen una sintaxis y semántica específicas.

En consecuencia, la tokenización es el proceso de dividir el texto en tokens. Por ejemplo, un párrafo de texto, un documento de texto o un corpus de texto consta de varios componentes que pueden dividirse en oraciones, frases y palabras. De hecho, los métodos de tokenización más populares incluyen la tokenización de oraciones y palabras, que se utiliza para dividir un documento de texto (o corpus) en oraciones y cada oración en palabras.

Note
Definición

Un corpus de texto (plural: corpora) es un conjunto grande y estructurado de textos utilizado en la investigación lingüística y de lingüística computacional. Esencialmente, es una colección exhaustiva de material escrito u oral que sirve como muestra representativa de un idioma, dialecto o área temática en particular.

Tokenización de oraciones

Comencemos con la tokenización de oraciones. Afortunadamente, nltk proporciona la función sent_tokenize() en el módulo tokenize. El propósito principal de esta función es dividir un texto dado en una lista de oraciones.

sent_tokenize() utiliza un modelo preentrenado, normalmente un modelo de aprendizaje automático que ha sido entrenado con un gran corpus de texto, para identificar los límites entre oraciones. Tiene en cuenta varias señales en el texto, como signos de puntuación (por ejemplo, puntos, signos de exclamación, signos de interrogación), mayúsculas y otros patrones lingüísticos que suelen marcar el final de una oración y el comienzo de otra.

123456789
# Importing the sent_tokenize() function from nltk.tokenize import sent_tokenize import nltk # Downloading the "Punkt" tokenizer models nltk.download('punkt_tab') text = "Hello world. This is an example of sentence tokenization. NLTK makes it easy!" # Sentence tokenization sentences = sent_tokenize(text) print(sentences)
copy

Como puedes ver, no hay nada complicado aquí. Simplemente debes pasar una cadena de texto con tu texto como argumento de sent_tokenize() para obtener una lista de oraciones. En cuanto a nltk.download('punkt_tab'), este comando descarga específicamente los modelos de tokenizador "Punkt". Al descargar los modelos de tokenizador Punkt, aseguras que NLTK tenga los datos necesarios para realizar una tokenización precisa de oraciones y palabras.

Note
Nota

Los signos de puntuación al final de cada oración se incluyen en la oración.

Tokenización de palabras

En la tokenización de palabras, existen varios métodos comunes para realizarla; sin embargo, solo discutiremos los dos más frecuentes.

El método más directo y sencillo es utilizar la función split() de la clase string, que utiliza por defecto los símbolos de salto de línea, espacios y tabulaciones como delimitadores. Sin embargo, también puedes pasar una cadena de texto arbitraria como argumento para que sirva como delimitador.

123456
text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy
Note
Nota

Para garantizar que los tokens como 'This' y 'this' se traten como iguales, es importante convertir la cadena a minúsculas antes de la tokenización.

Sin embargo, un enfoque más flexible es utilizar la función word_tokenize() del módulo tokenize de la biblioteca nltk. Esta función identifica y separa palabras basándose en espacios y signos de puntuación, descomponiendo eficazmente las oraciones en sus palabras constituyentes. De manera similar a sent_tokenize(), esta función requiere una cadena como argumento.

Comparemos este enfoque con el uso del método split(). El siguiente ejemplo utiliza word_tokenize():

12345678
from nltk import word_tokenize import nltk nltk.download('punkt_tab') text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using word_tokenize() words = word_tokenize(text) print(words)
copy

Ahora veamos cómo funciona el método split() con el mismo texto:

12345
text = "Good muffins cost $3.88 in New York. Please buy me two of them. Thanks" text = text.lower() # Word tokenization using split() words = text.split() print(words)
copy

En nuestro ejemplo, word_tokenize(), a diferencia de split(), identifica correctamente la puntuación y los caracteres especiales como tokens separados. Separa correctamente el signo de dólar del número y reconoce los puntos como tokens independientes. Esta tokenización matizada es crucial para muchas tareas de PLN, donde la delimitación precisa de palabras y signos de puntuación puede influir significativamente en la exactitud del análisis y en los conocimientos obtenidos.

question mark

Dada la oración "It wasn't me, I swear!", ¿cuál será el resultado de aplicar el método split() sobre ella?

Select the correct answer

¿Todo estuvo claro?

¿Cómo podemos mejorarlo?

¡Gracias por tus comentarios!

Sección 1. Capítulo 3
some-alt