Aplicación Práctica del Preprocesamiento de Texto
Documentos
Primero, antes de proceder con un ejemplo práctico de preprocesamiento de texto, es importante comprender los componentes clave de un corpus de texto: documentos.
Un documento es una pieza de texto separada dentro de un corpus, por ejemplo, un correo electrónico dentro de un corpus de correos electrónicos.
Esencialmente, todo corpus de texto es un conjunto de documentos, por lo que el preprocesamiento del corpus implica el preprocesamiento de cada uno de los documentos.
Cargando el corpus
Anteriormente, teníamos nuestro corpus de texto como variables de tipo string. Sin embargo, en escenarios reales, un corpus de texto suele almacenarse en archivos TXT para datos puramente textuales o en archivos CSV con múltiples columnas cuando se asocian datos adicionales al texto.
En nuestro curso, trabajaremos con archivos CSV o TXT, donde cada documento comienza en una nueva línea. Por lo tanto, utilizaremos la función read_csv() de la biblioteca pandas para cargar un corpus de texto desde un archivo.
123456import pandas as pd corpus = pd.read_csv( 'https://content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) print(corpus)
Aquí, leemos este archivo TXT en un DataFrame. Establecemos sep='\r' para usar el símbolo de retorno de carro como separador, lo que indica que cada documento comienza en una nueva línea. Usamos header=None para que la primera línea no se considere un encabezado y especificamos names=['Document'] para nombrar la única columna como 'Document'. Como resultado, obtendremos un DataFrame con una sola columna llamada 'Document' que contiene 6 documentos (frases).
Preprocesamiento del corpus
Para preprocesar el corpus, primero creemos una función para preprocesar cada uno de los documentos:
123456789101112131415161718import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc
Ahora apliquemos esta función a nuestro DataFrame para cada uno de los documentos y creemos una columna con los documentos limpiados:
123456789101112131415161718192021222324252627import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk import pandas as pd nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc corpus = pd.read_csv( 'https://content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) corpus['Cleaned_Document'] = corpus['Document'].apply(preprocess_document) print(corpus)
Como puede observar, nuestro corpus ha sido preprocesado correctamente, por lo que utilizaremos la versión preprocesada de este corpus más adelante en el curso.
¡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
Aplicación Práctica del Preprocesamiento de Texto
Desliza para mostrar el menú
Documentos
Primero, antes de proceder con un ejemplo práctico de preprocesamiento de texto, es importante comprender los componentes clave de un corpus de texto: documentos.
Un documento es una pieza de texto separada dentro de un corpus, por ejemplo, un correo electrónico dentro de un corpus de correos electrónicos.
Esencialmente, todo corpus de texto es un conjunto de documentos, por lo que el preprocesamiento del corpus implica el preprocesamiento de cada uno de los documentos.
Cargando el corpus
Anteriormente, teníamos nuestro corpus de texto como variables de tipo string. Sin embargo, en escenarios reales, un corpus de texto suele almacenarse en archivos TXT para datos puramente textuales o en archivos CSV con múltiples columnas cuando se asocian datos adicionales al texto.
En nuestro curso, trabajaremos con archivos CSV o TXT, donde cada documento comienza en una nueva línea. Por lo tanto, utilizaremos la función read_csv() de la biblioteca pandas para cargar un corpus de texto desde un archivo.
123456import pandas as pd corpus = pd.read_csv( 'https://content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) print(corpus)
Aquí, leemos este archivo TXT en un DataFrame. Establecemos sep='\r' para usar el símbolo de retorno de carro como separador, lo que indica que cada documento comienza en una nueva línea. Usamos header=None para que la primera línea no se considere un encabezado y especificamos names=['Document'] para nombrar la única columna como 'Document'. Como resultado, obtendremos un DataFrame con una sola columna llamada 'Document' que contiene 6 documentos (frases).
Preprocesamiento del corpus
Para preprocesar el corpus, primero creemos una función para preprocesar cada uno de los documentos:
123456789101112131415161718import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc
Ahora apliquemos esta función a nuestro DataFrame para cada uno de los documentos y creemos una columna con los documentos limpiados:
123456789101112131415161718192021222324252627import re from nltk.tokenize import word_tokenize from nltk.corpus import stopwords import nltk import pandas as pd nltk.download('punkt_tab') nltk.download('stopwords') stop_words = set(stopwords.words('english')) def preprocess_document(doc): doc = re.sub(r'[^a-zA-Z\s]', '', doc, re.I | re.A) doc = doc.lower() doc = doc.strip() tokens = word_tokenize(doc) filtered_tokens = [token for token in tokens if token not in stop_words] doc = ' '.join(filtered_tokens) return doc corpus = pd.read_csv( 'https://content-media-cdn.codefinity.com/courses/c68c1f2e-2c90-4d5d-8db9-1e97ca89d15e/section_1/chapter_8/example_corpus.txt', sep='\r', header=None, names=['Document']) corpus['Cleaned_Document'] = corpus['Document'].apply(preprocess_document) print(corpus)
Como puede observar, nuestro corpus ha sido preprocesado correctamente, por lo que utilizaremos la versión preprocesada de este corpus más adelante en el curso.
¡Gracias por tus comentarios!