Introducción a la creación de una canalización de procesamiento de texto

Deep Learning para texto con PyTorch

Shubham Jain

Data Scientist

"Resumen: preprocesamiento"

"Flujo de trabajo de preprocesamiento {{1}}"

"- Preprocesamiento:

- Tokenización
Deep Learning para texto con PyTorch

Canal de procesamiento de texto

"Flujo de preprocesamiento"

"- Codificación:

  • Codificación one-hot
  • Bolsa de palabras
  • TF-IDF
    • Embedding {{4}}"
Deep Learning para texto con PyTorch

Canal de procesamiento de texto

"Canal de procesamiento de datos"

"- Dataset como contenedor para texto procesado y codificado

  • DataLoader: creación de lotes, barajado y multiprocesamiento{{2}}"
Deep Learning para texto con PyTorch

"Resumen: implementación de Dataset y DataLoader"

"`py

Import libraries

from torch.utils.data import Dataset, DataLoader


----CODE_GLUE----
```py
# Create a class
class TextDataset(Dataset):

def __init__(self, text): self.text = text
def __len__(self): return len(self.text)

----CODE_GLUE---- py def __getitem__(self, idx): return self.text[idx]{{5}}"

Deep Learning para texto con PyTorch

"Resumen: integración de Dataset y DataLoader"

dataset = TextDataset(encoded_text)

dataloader = DataLoader(dataset, batch_size=2, shuffle=True)
Deep Learning para texto con PyTorch

Uso de funciones auxiliares

"py def preprocess_sentences(sentences): processed_sentences = [] for sentence in sentences: sentence = sentence.lower() tokens = tokenizer(sentence) tokens = [token for token in tokens if token not in stop_words] tokens = [stemmer.stem(token) for token in tokens] freq_dist = FreqDist(tokens) threshold = 2 tokens = [token for token in tokens if freq_dist[token] > threshold] processed_sentences.append( ' '.join(tokens)) return processed_sentences{{1}}"

"py def encode_sentences(sentences): vectorizer = CountVectorizer() X = vectorizer.fit_transform(sentences) encoded_sentences = X.toarray() return encoded_sentences, vectorizer

py def extract_sentences(data): sentences = re.findall(r'[A-Z][^.!?]*[.!?]', data) return sentences{{3}}"

Deep Learning para texto con PyTorch

Construcción de la canalización de procesamiento de texto

"`py def text_processing_pipeline(text):


----CODE_GLUE----
```py
    tokens = preprocess_sentences(text)

encoded_sentences, vectorizer = encode_sentences(tokens)
dataset = TextDataset(encoded_sentences)
dataloader = DataLoader(dataset, batch_size=2, shuffle=True)

----CODE_GLUE---- py return dataloader, vectorizer{{5}}"

Deep Learning para texto con PyTorch

Aplicando la canalización de procesamiento de texto

text_data = "Este es el primer dato de texto. Y aquí tienes otro."

sentences = extract_sentences(text_data) dataloaders, vectorizer = [text_processing_pipeline(text) for text in sentences]
print(next(iter(dataloader))[0, :10])
[[1, 1, 1, 1, 1], [0, 0, 0, 1, 1]]
Deep Learning para texto con PyTorch

"Canal de procesamiento de texto: ¡hemos terminado!"

"Canalización completa"

Deep Learning para texto con PyTorch

Es hora de la práctica.

Deep Learning para texto con PyTorch

Preparing Video For Download...