Codificar datos de texto

Deep Learning para texto con PyTorch

Shubham Jain

Data Scientist

Codificación de texto

"Canal de procesamiento de Pytorch

  • Convertir texto en números legibles por máquina
  • Permitir el análisis y la modelización{{2}}"

"Imagen de datos secuenciales para encontrar información{{3}}"

Deep Learning para texto con PyTorch

Técnicas de codificación

"- Codificación one-hot: transforma las palabras en representaciones numéricas únicas

  • Bolsa de palabras (BoW): captura la frecuencia de las palabras, sin tener en cuenta el orden
  • TF-IDF: equilibra la singularidad y la importancia
  • Embedding: convierte las palabras en vectores, capturando el significado semántico (Capítulo 2) {{4}}"
Deep Learning para texto con PyTorch

Codificación one-hot

"- Asignar a cada palabra un vector distinto

  • Vector binario:
    • 1 para la presencia de una palabra
    • 0 para la ausencia de una palabra {{1}}"

"- ['gato', 'perro', 'conejo']

  • 'gato' [1, 0, 0]
  • 'perro' [0, 1, 0]
  • 'conejo' [0, 0, 1] {{5}}"
Deep Learning para texto con PyTorch

Codificación one-hot con PyTorch

"`py import torch vocab = ['cat', 'dog', 'rabbit']


----CODE_GLUE----
```py
vocab_size = len(vocab)

one_hot_vectors = torch.eye(vocab_size)
one_hot_dict = {word: one_hot_vectors[i] for i, word in enumerate(vocab)}
print(one_hot_dict)

out {'cat': tensor([1., 0., 0.]), 'dog': tensor([0., 1., 0.]), 'rabbit': tensor([0., 0., 1.])}{{5}}"

Deep Learning para texto con PyTorch

Bolsa de palabras

"- Ejemplo: \"El gato se sentó en la alfombra\"

  • Bolsa de palabras:
    • {'the': 2, 'gato': 1, 'se sentó': 1, 'on': 1, 'alfombra': 1} {{4}}"

"- Tratar cada documento como una colección no ordenada de palabras

  • Se centra en la frecuencia, no en el orden {{2}}"
Deep Learning para texto con PyTorch

CountVectorizer

from sklearn.feature_extraction.text import CountVectorizer

vectorizer = CountVectorizer()
corpus = ['Este es el primer documento.', 'Este documento es el segundo documento.', 'Y este es el tercero.', '¿Es este el primer documento?']
X = vectorizer.fit_transform(corpus)
print(X.toarray())
print(vectorizer.get_feature_names_out())

out [[0 1 1 1 0 0 1 0 1] [0 2 0 1 0 1 1 0 1] [1 0 0 1 1 0 1 1 1] [0 1 1 1 0 0 1 0 1]] DNT_CURLY_TAG_5 out ['and' 'document' 'first' 'is' 'one' 'second' 'the' 'third' 'this']

Deep Learning para texto con PyTorch

TF-IDF

"- Frecuencia de término-inversa de frecuencia de documento

  • Puntúa la importancia de las palabras en un documento
  • Las palabras raras tienen una puntuación más alta
  • Las comunes tienen una puntuación más baja
  • Da énfasis a las palabras informativas {{5}}"
Deep Learning para texto con PyTorch

TfidfVectorizer

from sklearn.feature_extraction.text import TfidfVectorizer
vectorizer = TfidfVectorizer()

corpus = ['Este es el primer documento.','Este documento es el segundo documento.', 'Y este es el tercero.','¿Es este el primer documento?']
X = vectorizer.fit_transform(corpus)
print(X.toarray())
print(vectorizer.get_feature_names_out())
[[0.         0.         0.68091856 0.51785612 0.51785612 0.        ] [0.         0.         0.          0.51785612 0.51785612 0.68091856] [0.85151335 0.42575668 0.         0.32274454 0.32274454 0.        ] [0.         0.         0.68091856 0.51785612 0.51785612 0.        ]] ```
Deep Learning para texto con PyTorch

TfidfVectorizer

"Código TFIDF"

Deep Learning para texto con PyTorch

Técnicas de codificación

"Técnicas: One-hot encoding, bolsa de palabras y TF-IDF

  • Permiten que los modelos comprendan y procesen texto
  • Elige una técnica para evitar redundancia
  • Existen más técnicas {{3}}"
Deep Learning para texto con PyTorch

Es hora de la práctica.

Deep Learning para texto con PyTorch

Preparing Video For Download...