Tokenización
Antes de profundizar en el proceso de tokenización, primero debemos definir qué son los tokens.
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.
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)
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.
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.
123456text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
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()
:
12345678from 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)
Ahora veamos cómo funciona el método split()
con el mismo texto:
12345text = "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)
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.
¡Gracias por tus comentarios!
Pregunte a AI
Pregunte a AI
Pregunte lo que quiera o pruebe una de las preguntas sugeridas para comenzar nuestra charla
Awesome!
Completion rate improved to 3.45
Tokenización
Desliza para mostrar el menú
Antes de profundizar en el proceso de tokenización, primero debemos definir qué son los tokens.
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.
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)
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.
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.
123456text = "This is an example of word tokenization." # Convert the text to lowercase text = text.lower() # Word tokenization using split() words = text.split() print(words)
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()
:
12345678from 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)
Ahora veamos cómo funciona el método split()
con el mismo texto:
12345text = "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)
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.
¡Gracias por tus comentarios!