Introducere în preprocesarea textului

Deep Learning pentru text cu PyTorch

Shubham Jain

Data Scientist

Ce vom învăța

  • Clasificarea textului
  • Generarea textului
  • Codificare
  • Modele de deep learning pentru text
  • Arhitectura Transformer
  • Protejarea modelelor

Cazuri de utilizare:

  • Analiza sentimentelor
  • Rezumarea textului
  • Traducere automată

Analiza sentimentelor

Deep Learning pentru text cu PyTorch

Ce ar trebui să știți

Curs prealabil: Intermediate Deep Learning with PyTorch

  • Modele de deep learning cu PyTorch
  • Bucle de antrenare și evaluare
  • Rețele neuronale convoluționale (CNN) și recurente (RNN)
Deep Learning pentru text cu PyTorch

Pipeline de procesare a textului

 

 

Pipeline de procesare PyTorch

Deep Learning pentru text cu PyTorch

Pipeline de procesare a textului

 

 

Pipeline de procesare PyTorch

 

  • Curățarea și pregătirea textului
Deep Learning pentru text cu PyTorch

PyTorch și NLTK

Logo PyTorch

Logo NLTK

  • Kit pentru limbaj natural
    • Transformă textul brut în text procesat
Deep Learning pentru text cu PyTorch

Tehnici de preprocesare

  • Tokenizare
  • Eliminarea cuvintelor de oprire
  • Stemming
  • Eliminarea cuvintelor rare
Deep Learning pentru text cu PyTorch

Tokenizare

  • Token-urile sau cuvintele sunt extrase din text
  • Tokenizare cu torchtext
from torchtext.data.utils import get_tokenizer

tokenizer = get_tokenizer("basic_english")
tokens = tokenizer("I am reading a book now. I love to read books!") print(tokens)
["I", "am", "reading", "a", "book", "now", ".", "I", "love", "to", "read", 
"books", "!"]
Deep Learning pentru text cu PyTorch

Eliminarea cuvintelor de oprire

  • Eliminarea cuvintelor comune fără contribuție la sens
  • Cuvinte de oprire: "a", "the", "and", "or" etc.
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)
["reading", "book", ".", "love", "read", "books", "!"]
Deep Learning pentru text cu PyTorch

Stemming

  • Reducerea cuvintelor la forma de bază
  • Exemplu: "running", "runs", "ran" devin 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)
["read", "book", ".", "love", "read", "book", "!"]
Deep Learning pentru text cu PyTorch

Eliminarea cuvintelor rare

  • Eliminarea cuvintelor rare fără valoare adăugată
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)
["read", "book", "read", "book"]
Deep Learning pentru text cu PyTorch

Tehnici de preprocesare

Tokenizare, eliminarea cuvintelor de oprire, stemming și eliminarea cuvintelor rare

  • Reduc numărul de caracteristici
  • Seturi de date mai curate și reprezentative
  • Există și alte tehnici
Deep Learning pentru text cu PyTorch

Să exersăm!

Deep Learning pentru text cu PyTorch

Preparing Video For Download...