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.