Cơ bản về biểu thức chính quy

Nhập môn Xử lý Ngôn ngữ Tự nhiên với R

Kasey Jones

Research Data Scientist

Xử lý ngôn ngữ tự nhiên là gì?

Xử lý ngôn ngữ tự nhiên (NLP):

  • Dùng máy tính để phân tích và hiểu văn bản

Chủ đề:

  • Phân loại văn bản
  • Mô hình chủ đề
  • Nhận dạng thực thể có tên
  • Phân tích cảm xúc
Nhập môn Xử lý Ngôn ngữ Tự nhiên với R

Biểu thức chính quy là gì?

  • Một chuỗi ký tự để tìm kiếm trong văn bản
  • Ví dụ:
    • tìm file trong thư mục bằng dòng lệnh
    • tìm bài viết chứa mẫu cụ thể
    • thay thế đoạn văn bản cụ thể
    • ...
Nhập môn Xử lý Ngôn ngữ Tự nhiên với R

Ví dụ

words <- c("DW-40", "Mike's Oil", "5w30", "Joe's Gas", "Unleaded", "Plus-89")
# Finding Digits
grep("\\d", words, value = TRUE)
[1] 1 3 6
# Finding Apostrophes
grep("\\'", words, value = TRUE)
[1] "Mike's Oil"     "Joe's Gasoline"
Nhập môn Xử lý Ngôn ngữ Tự nhiên với R

Ví dụ biểu thức chính quy

Mẫu Khớp văn bản Ví dụ R Ví dụ văn bản
\w Ký tự chữ-số gregexpr(pattern ='\w', <text>) a
\d Chữ số gregexpr(pattern ='\d', text) 1
\w+ Chuỗi chữ-số bất kỳ độ dài gregexpr(pattern ='\w+', text) word
\d+ Chuỗi chữ số bất kỳ độ dài gregexpr(pattern ='\d+', text) 1234
\s Khoảng trắng gregexpr(pattern ='\s', text) ' '
\S Ký tự không phải khoảng trắng gregexpr(pattern ='\S', text) word
Nhập môn Xử lý Ngôn ngữ Tự nhiên với R

Ví dụ R

Hàm Mục đích Cú pháp
grep Tìm các khớp mẫu trong một vector grep(pattern ='\w', x = <vector>, value = F)
gsub Thay tất cả lần khớp của chuỗi/vector gsub(pattern ='\d+', replacement = "", x = <vector>)
Nhập môn Xử lý Ngôn ngữ Tự nhiên với R

Luyện RegEx

1 https://regexone.com/lesson/matching_characters
Nhập môn Xử lý Ngôn ngữ Tự nhiên với R

Đến lúc viết mã!

Nhập môn Xử lý Ngôn ngữ Tự nhiên với R

Preparing Video For Download...