Menu iconMenu icon
Procesamiento de Lenguaje Natural con Python Edición Actualizada

Capítulo 2: Procesamiento básico de texto

Ejercicios Prácticos

Ejercicio 1: Eliminación de Palabras Vacías

Tarea: Utiliza la biblioteca nltk para eliminar las palabras vacías del siguiente texto: "NLP permite a las computadoras entender el lenguaje humano, lo cual es un aspecto crucial de la inteligencia artificial."

Solución:

import nltk
from nltk.corpus import stopwords
nltk.download('stopwords')

# Texto de ejemplo
text = "NLP permite a las computadoras entender el lenguaje humano, lo cual es un aspecto crucial de la inteligencia artificial."

# Tokenizar el texto
tokens = text.split()

# Eliminar palabras vacías
stop_words = set(stopwords.words('spanish'))
filtered_tokens = [word for word in tokens if word.lower() not in stop_words]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Filtrados:")
print(filtered_tokens)

Salida:

Tokens Originales:
['NLP', 'permite', 'a', 'las', 'computadoras', 'entender', 'el', 'lenguaje', 'humano,', 'lo', 'cual', 'es', 'un', 'aspecto', 'crucial', 'de', 'la', 'inteligencia', 'artificial.']

Tokens Filtrados:
['NLP', 'permite', 'computadoras', 'entender', 'lenguaje', 'humano,', 'aspecto', 'crucial', 'inteligencia', 'artificial.']

Ejercicio 2: Reducción a la Raíz

Tarea: Utiliza la biblioteca nltk para realizar la reducción a la raíz en el siguiente texto: "La reducción a la raíz ayuda a reducir las palabras a su forma base, lo cual puede ser beneficioso para el procesamiento del texto."

Solución:

from nltk.stem import PorterStemmer

# Texto de ejemplo
text = "La reducción a la raíz ayuda a reducir las palabras a su forma base, lo cual puede ser beneficioso para el procesamiento del texto."

# Tokenizar el texto
tokens = text.split()

# Inicializar el stemmer
stemmer = PorterStemmer()

# Reducir los tokens a la raíz
stemmed_tokens = [stemmer.stem(word) for word in tokens]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Reducidos:")
print(stemmed_tokens)

Salida:

Tokens Originales:
['La', 'reducción', 'a', 'la', 'raíz', 'ayuda', 'a', 'reducir', 'las', 'palabras', 'a', 'su', 'forma', 'base,', 'lo', 'cual', 'puede', 'ser', 'beneficioso', 'para', 'el', 'procesamiento', 'del', 'texto.']

Tokens Reducidos:
['La', 'reducc', 'a', 'la', 'raíz', 'ayud', 'a', 'reduc', 'las', 'palabr', 'a', 'su', 'form', 'base,', 'lo', 'cual', 'pued', 'ser', 'benefici', 'par', 'el', 'proces', 'del', 'texto.']

Ejercicio 3: Lematización

Tarea: Utiliza la biblioteca nltk para realizar la lematización en el siguiente texto: "La lematización es el proceso de reducir las palabras a su forma base o raíz."

Solución:

from nltk.stem import WordNetLemmatizer
nltk.download('wordnet')

# Texto de ejemplo
text = "La lematización es el proceso de reducir las palabras a su forma base o raíz."

# Tokenizar el texto
tokens = text.split()

# Inicializar el lematizador
lemmatizer = WordNetLemmatizer()

# Lematizar los tokens
lemmatized_tokens = [lemmatizer.lemmatize(word) for word in tokens]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Lematizados:")
print(lemmatized_tokens)

Salida:

Tokens Originales:
['La', 'lematización', 'es', 'el', 'proceso', 'de', 'reducir', 'las', 'palabras', 'a', 'su', 'forma', 'base', 'o', 'raíz.']

Tokens Lematizados:
['La', 'lematización', 'es', 'el', 'proceso', 'de', 'reducir', 'la', 'palabra', 'a', 'su', 'forma', 'base', 'o', 'raíz.']

Ejercicio 4: Expresiones Regulares

Tarea: Utiliza expresiones regulares para extraer todas las fechas en el formato "YYYY-MM-DD" del siguiente texto: "El proyecto comenzó el 2021-01-15 y terminó el 2021-12-31."

Solución:

import re

# Texto de ejemplo
text = "El proyecto comenzó el 2021-01-15 y terminó el 2021-12-31."

# Definir un patrón regex para coincidir con fechas en el formato YYYY-MM-DD
pattern = r"\\\\b\\\\d{4}-\\\\d{2}-\\\\d{2}\\\\b"

# Utilizar re.findall() para encontrar todas las coincidencias
dates = re.findall(pattern, text)

print("Fechas Extraídas:")
print(dates)

Salida:

Fechas Extraídas:
['2021-01-15', '2021-12-31']

Ejercicio 5: Tokenización de Palabras

Tarea: Utiliza la biblioteca nltk para realizar la tokenización de palabras en el siguiente texto: "La tokenización es el primer paso en el preprocesamiento del texto."

Solución:

import nltk
nltk.download('punkt')
from nltk.tokenize import word_tokenize

# Texto de ejemplo
text = "La tokenización es el primer paso en el preprocesamiento del texto."

# Realizar la tokenización de palabras
tokens = word_tokenize(text)

print("Tokens de Palabras:")
print(tokens)

Salida:

Tokens de Palabras:
['La', 'tokenización', 'es', 'el', 'primer', 'paso', 'en', 'el', 'preprocesamiento', 'del', 'texto', '.']

Ejercicio 6: Tokenización de Oraciones

Tarea: Utiliza la biblioteca nltk para realizar la tokenización de oraciones en el siguiente texto: "La tokenización es esencial. Descompone el texto en unidades más pequeñas."

Solución:

import nltk
nltk.download('punkt')
from nltk.tokenize import sent_tokenize

# Texto de ejemplo
text = "La tokenización es esencial. Descompone el texto en unidades más pequeñas."

# Realizar la tokenización de oraciones
sentences = sent_tokenize(text)

print("Oraciones:")
print(sentences)

Salida:

Oraciones:
['La tokenización es esencial.', 'Descompone el texto en unidades más pequeñas.']

Ejercicio 7: Tokenización de Caracteres

Tarea: Escribe una función en Python que realice la tokenización de caracteres en el texto de entrada: "La tokenización de caracteres es útil para ciertas tareas."

Solución:

def character_tokenization(text):
    # Realizar la tokenización de caracteres
    characters = list(text)
    return characters

# Texto de ejemplo
text = "La tokenización de caracteres es útil para ciertas tareas."

# Tokenizar el texto en caracteres
characters = character_tokenization(text)

print("Tokens de Caracteres:")
print(characters)

Salida:

Tokens de Caracteres:
['L', 'a', ' ', 't', 'o', 'k', 'e', 'n', 'i', 'z', 'a', 'c', 'i', 'ó', 'n', ' ', 'd', 'e', ' ', 'c', 'a', 'r', 'a', 'c', 't', 'e', 'r', 'e', 's', ' ', 'e', 's', ' ', 'ú', 't', 'i', 'l', ' ', 'p', 'a', 'r', 'a', ' ', 'c', 'i', 'e', 'r', 't', 'a', 's', ' ', 't', 'a', 'r', 'e', 'a', 's', '.']

Estos ejercicios prácticos proporcionan experiencia práctica con diferentes aspectos del preprocesamiento de texto, incluyendo la eliminación de palabras vacías, la reducción a la raíz, la lematización, las expresiones regulares y la tokenización. Cada ejercicio está diseñado para reforzar los conceptos discutidos en el capítulo y ayudarte a volverte competente en la implementación de estas técnicas usando Python.

Ejercicios Prácticos

Ejercicio 1: Eliminación de Palabras Vacías

Tarea: Utiliza la biblioteca nltk para eliminar las palabras vacías del siguiente texto: "NLP permite a las computadoras entender el lenguaje humano, lo cual es un aspecto crucial de la inteligencia artificial."

Solución:

import nltk
from nltk.corpus import stopwords
nltk.download('stopwords')

# Texto de ejemplo
text = "NLP permite a las computadoras entender el lenguaje humano, lo cual es un aspecto crucial de la inteligencia artificial."

# Tokenizar el texto
tokens = text.split()

# Eliminar palabras vacías
stop_words = set(stopwords.words('spanish'))
filtered_tokens = [word for word in tokens if word.lower() not in stop_words]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Filtrados:")
print(filtered_tokens)

Salida:

Tokens Originales:
['NLP', 'permite', 'a', 'las', 'computadoras', 'entender', 'el', 'lenguaje', 'humano,', 'lo', 'cual', 'es', 'un', 'aspecto', 'crucial', 'de', 'la', 'inteligencia', 'artificial.']

Tokens Filtrados:
['NLP', 'permite', 'computadoras', 'entender', 'lenguaje', 'humano,', 'aspecto', 'crucial', 'inteligencia', 'artificial.']

Ejercicio 2: Reducción a la Raíz

Tarea: Utiliza la biblioteca nltk para realizar la reducción a la raíz en el siguiente texto: "La reducción a la raíz ayuda a reducir las palabras a su forma base, lo cual puede ser beneficioso para el procesamiento del texto."

Solución:

from nltk.stem import PorterStemmer

# Texto de ejemplo
text = "La reducción a la raíz ayuda a reducir las palabras a su forma base, lo cual puede ser beneficioso para el procesamiento del texto."

# Tokenizar el texto
tokens = text.split()

# Inicializar el stemmer
stemmer = PorterStemmer()

# Reducir los tokens a la raíz
stemmed_tokens = [stemmer.stem(word) for word in tokens]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Reducidos:")
print(stemmed_tokens)

Salida:

Tokens Originales:
['La', 'reducción', 'a', 'la', 'raíz', 'ayuda', 'a', 'reducir', 'las', 'palabras', 'a', 'su', 'forma', 'base,', 'lo', 'cual', 'puede', 'ser', 'beneficioso', 'para', 'el', 'procesamiento', 'del', 'texto.']

Tokens Reducidos:
['La', 'reducc', 'a', 'la', 'raíz', 'ayud', 'a', 'reduc', 'las', 'palabr', 'a', 'su', 'form', 'base,', 'lo', 'cual', 'pued', 'ser', 'benefici', 'par', 'el', 'proces', 'del', 'texto.']

Ejercicio 3: Lematización

Tarea: Utiliza la biblioteca nltk para realizar la lematización en el siguiente texto: "La lematización es el proceso de reducir las palabras a su forma base o raíz."

Solución:

from nltk.stem import WordNetLemmatizer
nltk.download('wordnet')

# Texto de ejemplo
text = "La lematización es el proceso de reducir las palabras a su forma base o raíz."

# Tokenizar el texto
tokens = text.split()

# Inicializar el lematizador
lemmatizer = WordNetLemmatizer()

# Lematizar los tokens
lemmatized_tokens = [lemmatizer.lemmatize(word) for word in tokens]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Lematizados:")
print(lemmatized_tokens)

Salida:

Tokens Originales:
['La', 'lematización', 'es', 'el', 'proceso', 'de', 'reducir', 'las', 'palabras', 'a', 'su', 'forma', 'base', 'o', 'raíz.']

Tokens Lematizados:
['La', 'lematización', 'es', 'el', 'proceso', 'de', 'reducir', 'la', 'palabra', 'a', 'su', 'forma', 'base', 'o', 'raíz.']

Ejercicio 4: Expresiones Regulares

Tarea: Utiliza expresiones regulares para extraer todas las fechas en el formato "YYYY-MM-DD" del siguiente texto: "El proyecto comenzó el 2021-01-15 y terminó el 2021-12-31."

Solución:

import re

# Texto de ejemplo
text = "El proyecto comenzó el 2021-01-15 y terminó el 2021-12-31."

# Definir un patrón regex para coincidir con fechas en el formato YYYY-MM-DD
pattern = r"\\\\b\\\\d{4}-\\\\d{2}-\\\\d{2}\\\\b"

# Utilizar re.findall() para encontrar todas las coincidencias
dates = re.findall(pattern, text)

print("Fechas Extraídas:")
print(dates)

Salida:

Fechas Extraídas:
['2021-01-15', '2021-12-31']

Ejercicio 5: Tokenización de Palabras

Tarea: Utiliza la biblioteca nltk para realizar la tokenización de palabras en el siguiente texto: "La tokenización es el primer paso en el preprocesamiento del texto."

Solución:

import nltk
nltk.download('punkt')
from nltk.tokenize import word_tokenize

# Texto de ejemplo
text = "La tokenización es el primer paso en el preprocesamiento del texto."

# Realizar la tokenización de palabras
tokens = word_tokenize(text)

print("Tokens de Palabras:")
print(tokens)

Salida:

Tokens de Palabras:
['La', 'tokenización', 'es', 'el', 'primer', 'paso', 'en', 'el', 'preprocesamiento', 'del', 'texto', '.']

Ejercicio 6: Tokenización de Oraciones

Tarea: Utiliza la biblioteca nltk para realizar la tokenización de oraciones en el siguiente texto: "La tokenización es esencial. Descompone el texto en unidades más pequeñas."

Solución:

import nltk
nltk.download('punkt')
from nltk.tokenize import sent_tokenize

# Texto de ejemplo
text = "La tokenización es esencial. Descompone el texto en unidades más pequeñas."

# Realizar la tokenización de oraciones
sentences = sent_tokenize(text)

print("Oraciones:")
print(sentences)

Salida:

Oraciones:
['La tokenización es esencial.', 'Descompone el texto en unidades más pequeñas.']

Ejercicio 7: Tokenización de Caracteres

Tarea: Escribe una función en Python que realice la tokenización de caracteres en el texto de entrada: "La tokenización de caracteres es útil para ciertas tareas."

Solución:

def character_tokenization(text):
    # Realizar la tokenización de caracteres
    characters = list(text)
    return characters

# Texto de ejemplo
text = "La tokenización de caracteres es útil para ciertas tareas."

# Tokenizar el texto en caracteres
characters = character_tokenization(text)

print("Tokens de Caracteres:")
print(characters)

Salida:

Tokens de Caracteres:
['L', 'a', ' ', 't', 'o', 'k', 'e', 'n', 'i', 'z', 'a', 'c', 'i', 'ó', 'n', ' ', 'd', 'e', ' ', 'c', 'a', 'r', 'a', 'c', 't', 'e', 'r', 'e', 's', ' ', 'e', 's', ' ', 'ú', 't', 'i', 'l', ' ', 'p', 'a', 'r', 'a', ' ', 'c', 'i', 'e', 'r', 't', 'a', 's', ' ', 't', 'a', 'r', 'e', 'a', 's', '.']

Estos ejercicios prácticos proporcionan experiencia práctica con diferentes aspectos del preprocesamiento de texto, incluyendo la eliminación de palabras vacías, la reducción a la raíz, la lematización, las expresiones regulares y la tokenización. Cada ejercicio está diseñado para reforzar los conceptos discutidos en el capítulo y ayudarte a volverte competente en la implementación de estas técnicas usando Python.

Ejercicios Prácticos

Ejercicio 1: Eliminación de Palabras Vacías

Tarea: Utiliza la biblioteca nltk para eliminar las palabras vacías del siguiente texto: "NLP permite a las computadoras entender el lenguaje humano, lo cual es un aspecto crucial de la inteligencia artificial."

Solución:

import nltk
from nltk.corpus import stopwords
nltk.download('stopwords')

# Texto de ejemplo
text = "NLP permite a las computadoras entender el lenguaje humano, lo cual es un aspecto crucial de la inteligencia artificial."

# Tokenizar el texto
tokens = text.split()

# Eliminar palabras vacías
stop_words = set(stopwords.words('spanish'))
filtered_tokens = [word for word in tokens if word.lower() not in stop_words]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Filtrados:")
print(filtered_tokens)

Salida:

Tokens Originales:
['NLP', 'permite', 'a', 'las', 'computadoras', 'entender', 'el', 'lenguaje', 'humano,', 'lo', 'cual', 'es', 'un', 'aspecto', 'crucial', 'de', 'la', 'inteligencia', 'artificial.']

Tokens Filtrados:
['NLP', 'permite', 'computadoras', 'entender', 'lenguaje', 'humano,', 'aspecto', 'crucial', 'inteligencia', 'artificial.']

Ejercicio 2: Reducción a la Raíz

Tarea: Utiliza la biblioteca nltk para realizar la reducción a la raíz en el siguiente texto: "La reducción a la raíz ayuda a reducir las palabras a su forma base, lo cual puede ser beneficioso para el procesamiento del texto."

Solución:

from nltk.stem import PorterStemmer

# Texto de ejemplo
text = "La reducción a la raíz ayuda a reducir las palabras a su forma base, lo cual puede ser beneficioso para el procesamiento del texto."

# Tokenizar el texto
tokens = text.split()

# Inicializar el stemmer
stemmer = PorterStemmer()

# Reducir los tokens a la raíz
stemmed_tokens = [stemmer.stem(word) for word in tokens]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Reducidos:")
print(stemmed_tokens)

Salida:

Tokens Originales:
['La', 'reducción', 'a', 'la', 'raíz', 'ayuda', 'a', 'reducir', 'las', 'palabras', 'a', 'su', 'forma', 'base,', 'lo', 'cual', 'puede', 'ser', 'beneficioso', 'para', 'el', 'procesamiento', 'del', 'texto.']

Tokens Reducidos:
['La', 'reducc', 'a', 'la', 'raíz', 'ayud', 'a', 'reduc', 'las', 'palabr', 'a', 'su', 'form', 'base,', 'lo', 'cual', 'pued', 'ser', 'benefici', 'par', 'el', 'proces', 'del', 'texto.']

Ejercicio 3: Lematización

Tarea: Utiliza la biblioteca nltk para realizar la lematización en el siguiente texto: "La lematización es el proceso de reducir las palabras a su forma base o raíz."

Solución:

from nltk.stem import WordNetLemmatizer
nltk.download('wordnet')

# Texto de ejemplo
text = "La lematización es el proceso de reducir las palabras a su forma base o raíz."

# Tokenizar el texto
tokens = text.split()

# Inicializar el lematizador
lemmatizer = WordNetLemmatizer()

# Lematizar los tokens
lemmatized_tokens = [lemmatizer.lemmatize(word) for word in tokens]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Lematizados:")
print(lemmatized_tokens)

Salida:

Tokens Originales:
['La', 'lematización', 'es', 'el', 'proceso', 'de', 'reducir', 'las', 'palabras', 'a', 'su', 'forma', 'base', 'o', 'raíz.']

Tokens Lematizados:
['La', 'lematización', 'es', 'el', 'proceso', 'de', 'reducir', 'la', 'palabra', 'a', 'su', 'forma', 'base', 'o', 'raíz.']

Ejercicio 4: Expresiones Regulares

Tarea: Utiliza expresiones regulares para extraer todas las fechas en el formato "YYYY-MM-DD" del siguiente texto: "El proyecto comenzó el 2021-01-15 y terminó el 2021-12-31."

Solución:

import re

# Texto de ejemplo
text = "El proyecto comenzó el 2021-01-15 y terminó el 2021-12-31."

# Definir un patrón regex para coincidir con fechas en el formato YYYY-MM-DD
pattern = r"\\\\b\\\\d{4}-\\\\d{2}-\\\\d{2}\\\\b"

# Utilizar re.findall() para encontrar todas las coincidencias
dates = re.findall(pattern, text)

print("Fechas Extraídas:")
print(dates)

Salida:

Fechas Extraídas:
['2021-01-15', '2021-12-31']

Ejercicio 5: Tokenización de Palabras

Tarea: Utiliza la biblioteca nltk para realizar la tokenización de palabras en el siguiente texto: "La tokenización es el primer paso en el preprocesamiento del texto."

Solución:

import nltk
nltk.download('punkt')
from nltk.tokenize import word_tokenize

# Texto de ejemplo
text = "La tokenización es el primer paso en el preprocesamiento del texto."

# Realizar la tokenización de palabras
tokens = word_tokenize(text)

print("Tokens de Palabras:")
print(tokens)

Salida:

Tokens de Palabras:
['La', 'tokenización', 'es', 'el', 'primer', 'paso', 'en', 'el', 'preprocesamiento', 'del', 'texto', '.']

Ejercicio 6: Tokenización de Oraciones

Tarea: Utiliza la biblioteca nltk para realizar la tokenización de oraciones en el siguiente texto: "La tokenización es esencial. Descompone el texto en unidades más pequeñas."

Solución:

import nltk
nltk.download('punkt')
from nltk.tokenize import sent_tokenize

# Texto de ejemplo
text = "La tokenización es esencial. Descompone el texto en unidades más pequeñas."

# Realizar la tokenización de oraciones
sentences = sent_tokenize(text)

print("Oraciones:")
print(sentences)

Salida:

Oraciones:
['La tokenización es esencial.', 'Descompone el texto en unidades más pequeñas.']

Ejercicio 7: Tokenización de Caracteres

Tarea: Escribe una función en Python que realice la tokenización de caracteres en el texto de entrada: "La tokenización de caracteres es útil para ciertas tareas."

Solución:

def character_tokenization(text):
    # Realizar la tokenización de caracteres
    characters = list(text)
    return characters

# Texto de ejemplo
text = "La tokenización de caracteres es útil para ciertas tareas."

# Tokenizar el texto en caracteres
characters = character_tokenization(text)

print("Tokens de Caracteres:")
print(characters)

Salida:

Tokens de Caracteres:
['L', 'a', ' ', 't', 'o', 'k', 'e', 'n', 'i', 'z', 'a', 'c', 'i', 'ó', 'n', ' ', 'd', 'e', ' ', 'c', 'a', 'r', 'a', 'c', 't', 'e', 'r', 'e', 's', ' ', 'e', 's', ' ', 'ú', 't', 'i', 'l', ' ', 'p', 'a', 'r', 'a', ' ', 'c', 'i', 'e', 'r', 't', 'a', 's', ' ', 't', 'a', 'r', 'e', 'a', 's', '.']

Estos ejercicios prácticos proporcionan experiencia práctica con diferentes aspectos del preprocesamiento de texto, incluyendo la eliminación de palabras vacías, la reducción a la raíz, la lematización, las expresiones regulares y la tokenización. Cada ejercicio está diseñado para reforzar los conceptos discutidos en el capítulo y ayudarte a volverte competente en la implementación de estas técnicas usando Python.

Ejercicios Prácticos

Ejercicio 1: Eliminación de Palabras Vacías

Tarea: Utiliza la biblioteca nltk para eliminar las palabras vacías del siguiente texto: "NLP permite a las computadoras entender el lenguaje humano, lo cual es un aspecto crucial de la inteligencia artificial."

Solución:

import nltk
from nltk.corpus import stopwords
nltk.download('stopwords')

# Texto de ejemplo
text = "NLP permite a las computadoras entender el lenguaje humano, lo cual es un aspecto crucial de la inteligencia artificial."

# Tokenizar el texto
tokens = text.split()

# Eliminar palabras vacías
stop_words = set(stopwords.words('spanish'))
filtered_tokens = [word for word in tokens if word.lower() not in stop_words]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Filtrados:")
print(filtered_tokens)

Salida:

Tokens Originales:
['NLP', 'permite', 'a', 'las', 'computadoras', 'entender', 'el', 'lenguaje', 'humano,', 'lo', 'cual', 'es', 'un', 'aspecto', 'crucial', 'de', 'la', 'inteligencia', 'artificial.']

Tokens Filtrados:
['NLP', 'permite', 'computadoras', 'entender', 'lenguaje', 'humano,', 'aspecto', 'crucial', 'inteligencia', 'artificial.']

Ejercicio 2: Reducción a la Raíz

Tarea: Utiliza la biblioteca nltk para realizar la reducción a la raíz en el siguiente texto: "La reducción a la raíz ayuda a reducir las palabras a su forma base, lo cual puede ser beneficioso para el procesamiento del texto."

Solución:

from nltk.stem import PorterStemmer

# Texto de ejemplo
text = "La reducción a la raíz ayuda a reducir las palabras a su forma base, lo cual puede ser beneficioso para el procesamiento del texto."

# Tokenizar el texto
tokens = text.split()

# Inicializar el stemmer
stemmer = PorterStemmer()

# Reducir los tokens a la raíz
stemmed_tokens = [stemmer.stem(word) for word in tokens]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Reducidos:")
print(stemmed_tokens)

Salida:

Tokens Originales:
['La', 'reducción', 'a', 'la', 'raíz', 'ayuda', 'a', 'reducir', 'las', 'palabras', 'a', 'su', 'forma', 'base,', 'lo', 'cual', 'puede', 'ser', 'beneficioso', 'para', 'el', 'procesamiento', 'del', 'texto.']

Tokens Reducidos:
['La', 'reducc', 'a', 'la', 'raíz', 'ayud', 'a', 'reduc', 'las', 'palabr', 'a', 'su', 'form', 'base,', 'lo', 'cual', 'pued', 'ser', 'benefici', 'par', 'el', 'proces', 'del', 'texto.']

Ejercicio 3: Lematización

Tarea: Utiliza la biblioteca nltk para realizar la lematización en el siguiente texto: "La lematización es el proceso de reducir las palabras a su forma base o raíz."

Solución:

from nltk.stem import WordNetLemmatizer
nltk.download('wordnet')

# Texto de ejemplo
text = "La lematización es el proceso de reducir las palabras a su forma base o raíz."

# Tokenizar el texto
tokens = text.split()

# Inicializar el lematizador
lemmatizer = WordNetLemmatizer()

# Lematizar los tokens
lemmatized_tokens = [lemmatizer.lemmatize(word) for word in tokens]

print("Tokens Originales:")
print(tokens)

print("\\\\nTokens Lematizados:")
print(lemmatized_tokens)

Salida:

Tokens Originales:
['La', 'lematización', 'es', 'el', 'proceso', 'de', 'reducir', 'las', 'palabras', 'a', 'su', 'forma', 'base', 'o', 'raíz.']

Tokens Lematizados:
['La', 'lematización', 'es', 'el', 'proceso', 'de', 'reducir', 'la', 'palabra', 'a', 'su', 'forma', 'base', 'o', 'raíz.']

Ejercicio 4: Expresiones Regulares

Tarea: Utiliza expresiones regulares para extraer todas las fechas en el formato "YYYY-MM-DD" del siguiente texto: "El proyecto comenzó el 2021-01-15 y terminó el 2021-12-31."

Solución:

import re

# Texto de ejemplo
text = "El proyecto comenzó el 2021-01-15 y terminó el 2021-12-31."

# Definir un patrón regex para coincidir con fechas en el formato YYYY-MM-DD
pattern = r"\\\\b\\\\d{4}-\\\\d{2}-\\\\d{2}\\\\b"

# Utilizar re.findall() para encontrar todas las coincidencias
dates = re.findall(pattern, text)

print("Fechas Extraídas:")
print(dates)

Salida:

Fechas Extraídas:
['2021-01-15', '2021-12-31']

Ejercicio 5: Tokenización de Palabras

Tarea: Utiliza la biblioteca nltk para realizar la tokenización de palabras en el siguiente texto: "La tokenización es el primer paso en el preprocesamiento del texto."

Solución:

import nltk
nltk.download('punkt')
from nltk.tokenize import word_tokenize

# Texto de ejemplo
text = "La tokenización es el primer paso en el preprocesamiento del texto."

# Realizar la tokenización de palabras
tokens = word_tokenize(text)

print("Tokens de Palabras:")
print(tokens)

Salida:

Tokens de Palabras:
['La', 'tokenización', 'es', 'el', 'primer', 'paso', 'en', 'el', 'preprocesamiento', 'del', 'texto', '.']

Ejercicio 6: Tokenización de Oraciones

Tarea: Utiliza la biblioteca nltk para realizar la tokenización de oraciones en el siguiente texto: "La tokenización es esencial. Descompone el texto en unidades más pequeñas."

Solución:

import nltk
nltk.download('punkt')
from nltk.tokenize import sent_tokenize

# Texto de ejemplo
text = "La tokenización es esencial. Descompone el texto en unidades más pequeñas."

# Realizar la tokenización de oraciones
sentences = sent_tokenize(text)

print("Oraciones:")
print(sentences)

Salida:

Oraciones:
['La tokenización es esencial.', 'Descompone el texto en unidades más pequeñas.']

Ejercicio 7: Tokenización de Caracteres

Tarea: Escribe una función en Python que realice la tokenización de caracteres en el texto de entrada: "La tokenización de caracteres es útil para ciertas tareas."

Solución:

def character_tokenization(text):
    # Realizar la tokenización de caracteres
    characters = list(text)
    return characters

# Texto de ejemplo
text = "La tokenización de caracteres es útil para ciertas tareas."

# Tokenizar el texto en caracteres
characters = character_tokenization(text)

print("Tokens de Caracteres:")
print(characters)

Salida:

Tokens de Caracteres:
['L', 'a', ' ', 't', 'o', 'k', 'e', 'n', 'i', 'z', 'a', 'c', 'i', 'ó', 'n', ' ', 'd', 'e', ' ', 'c', 'a', 'r', 'a', 'c', 't', 'e', 'r', 'e', 's', ' ', 'e', 's', ' ', 'ú', 't', 'i', 'l', ' ', 'p', 'a', 'r', 'a', ' ', 'c', 'i', 'e', 'r', 't', 'a', 's', ' ', 't', 'a', 'r', 'e', 'a', 's', '.']

Estos ejercicios prácticos proporcionan experiencia práctica con diferentes aspectos del preprocesamiento de texto, incluyendo la eliminación de palabras vacías, la reducción a la raíz, la lematización, las expresiones regulares y la tokenización. Cada ejercicio está diseñado para reforzar los conceptos discutidos en el capítulo y ayudarte a volverte competente en la implementación de estas técnicas usando Python.