Kỹ thuật chuẩn hóa văn bản

Natural Language Processing (NLP) bằng Python

Fouad Trad

Machine Learning Engineer

Chuẩn hóa văn bản

  • Chuẩn hóa đưa từ về định dạng chuẩn
  • Hữu ích cho phân loại văn bản, tìm kiếm, phân tích cảm xúc
  • Kỹ thuật:
    • Chuyển về chữ thường
    • Stemming
    • Lemmatization

Hình minh họa ba người diễn đạt việc thích xem phim có đạo diễn giỏi theo ba cách khác nhau: "I enjoy watching movies with great direction!", "I enjoyed watching movies that are well-directed.", "Movies with excellent direction are something I enjoy."

Natural Language Processing (NLP) bằng Python

Chuyển về chữ thường

  • Nếu không chuẩn hóa, các từ này sẽ thành các token riêng
  • Điều này làm sai lệch mô hình và phình to vốn từ
text  = """Data scientists and data 
engineers need DATA"""
lower_text = text.lower()

print(lower_text)
data scientists and data 
engineers need data

Hình một người bối rối giữa 'data', 'Data' và 'DATA.'

Natural Language Processing (NLP) bằng Python

Ứng dụng của chuyển chữ thường

Hữu ích cho

Các tác vụ dựa vào phân tích từ khóa

Hình người tìm kiếm từ khóa trong văn bản.

Natural Language Processing (NLP) bằng Python

Ứng dụng của chuyển chữ thường

Hữu ích cho

Các tác vụ dựa vào phân tích từ khóa

Hình người tìm kiếm từ khóa trong văn bản.

Không hữu ích cho

Các tác vụ cần phân biệt ý nghĩa phụ thuộc vào chữ hoa/thường

Hình nhóm người đại diện cho "us" và lá cờ Mỹ đại diện cho "US."

Natural Language Processing (NLP) bằng Python

Stemming

  • Rút gọn từ về gốc bằng cách cắt hậu tố
    • running → run
    • reading → read
  • Hữu ích để gom các biến thể giống nhau của một từ
  • Có thể tạo ra từ không hợp lệ
    • organization → organizat

Logo của stemming

Natural Language Processing (NLP) bằng Python

Stemming trong mã

from nltk.stem import PorterStemmer

stemmer = PorterStemmer()
tokens = ['running', 'bats', 'organizations', 'reading']
stemmed = [stemmer.stem(word) for word in tokens]
print(stemmed)
['run', 'bat', 'organizat', 'read']
Natural Language Processing (NLP) bằng Python

Lemmatization

  • Đưa từ về dạng cơ sở
  • Đảm bảo kết quả là từ hợp lệ
    • organizations → organization
  • Hữu ích khi cần chính xác ngữ pháp
  • Chậm hơn stemming nhưng chính xác hơn

Logo của lemmatization

Natural Language Processing (NLP) bằng Python

Lemmatization trong mã

from nltk.stem import WordNetLemmatizer

nltk.download('wordnet')
lemmatizer = WordNetLemmatizer()
tokens = ['running', 'bats', 'organizations', 'reading']
lemmatized = [lemmatizer.lemmatize(word) for word in tokens]
print(lemmatized)
['running', 'bat', 'organization', 'reading']
Natural Language Processing (NLP) bằng Python

Stemming

  • Nhanh hơn
  • Có thể ra từ không có trong từ điển
  • Dùng khi ưu tiên tốc độ

Hình người cưa cây bằng cưa máy.

Lemmatization

  • Chậm hơn
  • Chính xác hơn
  • Dùng khi cần chính xác ngữ pháp

Hình người tỉa cây cẩn thận để giữ cấu trúc.

Natural Language Processing (NLP) bằng Python

Ayo berlatih!

Natural Language Processing (NLP) bằng Python

Preparing Video For Download...