Introducción al preprocesamiento de texto

Deep Learning para texto con PyTorch

Shubham Jain

Data Scientist

Lo que vamos a aprender

"- Clasificación de texto

  • Generación de texto
  • Codificación
  • Modelos de aprendizaje profundo para texto
  • Arquitectura Transformer
  • Protección de modelos {{6}}"

"Casos de uso:

  • Análisis de sentimiento
  • Resumen de texto
  • Traducción automática

Análisis de Sentimientos {{7}}"

Deep Learning para texto con PyTorch

Lo que debes saber

"Curso previo: Aprendizaje profundo intermedio con PyTorch

  • Modelos de aprendizaje profundo con PyTorch
  • Bucles de entrenamiento y evaluación
  • Redes neuronales convolucionales (CNN) y redes neuronales recurrentes (RNN) {{3}}"
Deep Learning para texto con PyTorch

Canal de procesamiento de texto

Canal de procesamiento de Pytorch

Deep Learning para texto con PyTorch

Canal de procesamiento de texto

Flujo de procesamiento de Pytorch

  • Limpiar y preparar el texto
Deep Learning para texto con PyTorch

PyTorch y NLTK

"Logo de PyTorch"

"Logo de NLTK

  • Kit de herramientas de lenguaje natural
    • Transforma texto sin procesar en texto procesado {{2}}"
Deep Learning para texto con PyTorch

Técnicas de preprocesamiento

"- Tokenización

  • Eliminación de palabras vacías
  • Lematización
  • Eliminación de palabras poco frecuentes {{4}}"
Deep Learning para texto con PyTorch

Tokenización

"- Se extraen tokens o palabras del texto

  • Tokenización usando torchtext
from torchtext.data.utils import get_tokenizer

tokenizer = get_tokenizer(\"basic_english\")
tokens = tokenizer(\"I am reading a book now. ¡Me encanta leer libros!\") print(tokens)

out [\"I\", \"am\", \"reading\", \"a\", \"book\", \"now\", \".\", \"I\", \"love\", \"to\", \"read\", \"books\", \"!\"]{{5}}"

Deep Learning para texto con PyTorch

Eliminación de palabras vacías

"- Elimina palabras comunes que no aportan significado

  • Palabras vacías: \"a\", \"the\", \"and\", \"or\", y más
import nltk
nltk.download('stopwords')
from nltk.corpus import stopwords

stop_words = set(stopwords.words('english'))
tokens = [\"I\", \"am\", \"reading\", \"a\", \"book\", \"now\", \".\", \"I\", \"love\", \"to\", \"read\", \"books\", \"!\"] filtered_tokens = [token for token in tokens if token.lower() not in stop_words]
print(filtered_tokens)

out [\"reading\", \"book\", \".\", \"love\", \"read\", \"books\", \"!\"]{{5}}"

Deep Learning para texto con PyTorch

Derivación

"- Reducir las palabras a su forma base

  • Por ejemplo: \"running\", \"runs\", \"ran\" se convierte en run
import nltk
from nltk.stem import PorterStemmer

stemmer = PorterStemmer()
filtered_tokens = [\"reading\", \"book\", \".\", \"love\", \"read\", \"books\", \"!\"]
stemmed_tokens = [stemmer.stem(token) for token in filtered_tokens]
print(stemmed_tokens)

out [\"read\", \"book\", \".\", \"love\", \"read\", \"book\", \"!\"]{{7}}"

Deep Learning para texto con PyTorch

Eliminación de palabras raras

"- Eliminando palabras poco frecuentes que no aportan valor

from nltk.probability import FreqDist
stemmed_tokens= [\"read\", \"book\", \".\", \"love\", \"read\", \"book\", \"!\"]  
freq_dist = FreqDist(stemmed_tokens)

threshold = 2
common_tokens = [token for token in stemmed_tokens if freq_dist[token] > threshold] print(common_tokens)

out [\"read\", \"book\", \"read\", \"book\"]{{5}}"

Deep Learning para texto con PyTorch

Técnicas de preprocesamiento

Tokenización, eliminación de palabras vacías, stemming y eliminación de palabras poco frecuentes

  • Reducen las características
  • Conjuntos de datos más limpios y representativos
  • Existen más técnicas
Deep Learning para texto con PyTorch

Es hora de la práctica.

Deep Learning para texto con PyTorch

Preparing Video For Download...