Introduction à la création d’un pipeline de traitement de texte

Deep Learning pour le texte avec PyTorch

Shubham Jain

Data Scientist

"Récapitulatif : prétraitement"

"Pipeline de prétraitement {{1}}"

"- Prétraitement :

- Tokenisation
Deep Learning pour le texte avec PyTorch

Pipeline de traitement de texte

"Pipeline de prétraitement"

"- Encodage :

  • Encodage one-hot
  • Sac de mots
  • TF-IDF
    • Embedding {{4}}"
Deep Learning pour le texte avec PyTorch

Pipeline de traitement de texte

"Pipeline de traitement des données"

"- Dataset comme conteneur pour le texte traité et encodé

  • DataLoader : création de lots, mélange et multiprocessus{{2}}"
Deep Learning pour le texte avec PyTorch

"Récapitulatif : implémentation de Dataset et 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 pour le texte avec PyTorch

"Récapitulatif : intégration de Dataset et DataLoader"

dataset = TextDataset(encoded_text)

dataloader = DataLoader(dataset, batch_size=2, shuffle=True)
Deep Learning pour le texte avec PyTorch

Utilisation de fonctions d’assistance

"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 pour le texte avec PyTorch

Construction du pipeline de traitement de texte

"`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 pour le texte avec PyTorch

Application du pipeline de traitement de texte

text_data = "Voici la première donnée textuelle. Et en voici un autre."

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 pour le texte avec PyTorch

"Pipeline de traitement de texte : c'est terminé !"

"Pipeline complète"

Deep Learning pour le texte avec PyTorch

Passons à la pratique !

Deep Learning pour le texte avec PyTorch

Preparing Video For Download...