การประมวลผลข้อความเบื้องต้น

Deep Learning สำหรับข้อความด้วย PyTorch

Shubham Jain

Data Scientist

สิ่งที่จะได้เรียนรู้

  • การจำแนกข้อความ
  • การสร้างข้อความ
  • การเข้ารหัส
  • โมเดล deep learning สำหรับข้อความ
  • สถาปัตยกรรม Transformer
  • การปกป้องโมเดล

กรณีการใช้งาน:

  • การวิเคราะห์ความรู้สึก
  • การสรุปข้อความ
  • การแปลภาษา

การวิเคราะห์ความรู้สึก

Deep Learning สำหรับข้อความด้วย PyTorch

ความรู้พื้นฐานที่ควรมี

คอร์สที่ควรเรียนมาก่อน: Intermediate Deep Learning with PyTorch

  • โมเดล deep learning ด้วย PyTorch
  • ลูปการฝึกและประเมินผล
  • Convolutional neural networks (CNNs) และ recurrent neural networks (RNNs)
Deep Learning สำหรับข้อความด้วย PyTorch

ไปป์ไลน์การประมวลผลข้อความ

 

 

ไปป์ไลน์การประมวลผลด้วย PyTorch

Deep Learning สำหรับข้อความด้วย PyTorch

ไปป์ไลน์การประมวลผลข้อความ

 

 

ไปป์ไลน์การประมวลผลด้วย PyTorch

 

  • ทำความสะอาดและเตรียมข้อความ
Deep Learning สำหรับข้อความด้วย PyTorch

PyTorch และ NLTK

โลโก้ PyTorch

โลโก้ NLTK

  • Natural language toolkit
    • แปลงข้อความดิบให้เป็นข้อความที่ผ่านการประมวลผล
Deep Learning สำหรับข้อความด้วย PyTorch

เทคนิคการประมวลผลข้อความ

  • การตัดคำ (Tokenization)
  • การลบ stop word
  • การทำ stemming
  • การลบคำที่ปรากฏน้อย
Deep Learning สำหรับข้อความด้วย PyTorch

การตัดคำ (Tokenization)

  • Token หรือคำจะถูกแยกออกจากข้อความ
  • การตัดคำโดยใช้ 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 สำหรับข้อความด้วย PyTorch

การลบ Stop Word

  • ตัดคำทั่วไปที่ไม่มีความหมายในเชิงบริบทออก
  • Stop word เช่น "a", "the", "and", "or" และอื่นๆ
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 สำหรับข้อความด้วย PyTorch

การทำ Stemming

  • ลดรูปคำให้เหลือรูปฐาน
  • ตัวอย่าง: "running", "runs", "ran" กลายเป็น 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 สำหรับข้อความด้วย PyTorch

การลบคำที่ปรากฏน้อย

  • ลบคำที่ปรากฏน้อยและไม่เพิ่มคุณค่าออก
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 สำหรับข้อความด้วย PyTorch

เทคนิคการประมวลผลข้อความ

การตัดคำ การลบ stop word การทำ stemming และการลบคำที่ปรากฏน้อย

  • ลดจำนวน feature
  • ชุดข้อมูลที่สะอาดและสื่อความหมายได้ดียิ่งขึ้น
  • ยังมีเทคนิคอื่นอีก
Deep Learning สำหรับข้อความด้วย PyTorch

มาฝึกกันเถอะ!

Deep Learning สำหรับข้อความด้วย PyTorch

Preparing Video For Download...