Khi xử lý văn bản, chúng ta thường mong muốn chuẩn hóa và trích xuất một số thông tin (như số, ngày tháng, v.v.) từ văn bản. Trên thực tế, văn bản có thể chứa những từ và dấu câu không cần thiết, hoặc liên kết HTML cần được loại bỏ, hay số hoặc ngày tháng cần được giảm tải, trích xuất.

Biểu thức chính quy (Regular Expression – Regex) giúp đơn giản hóa việc chuẩn hóa văn bản cũng như trích xuất thông tin thông qua việc định nghĩa biểu thức chính quy và sử dụng các hàm (có sẵn) để xử lý văn bản với biểu thức chính quy đó. Nói cách khác, Regex giúp các thao tác tìm kiếm, thay thế, loại bỏ kí tự trong văn bản trở nên dễ dàng, tạo điều kiện cho việc xử lý và phân tích dữ liệu văn bản trở nên thuận tiện.
Vì vậy, việc hiểu và áp dụng đúng tình huống các Regex là một kỹ năng quan trọng với những ai đã và đang tìm hiểu về NLP.
Một số thuật ngữ cơ bản
\𝐰 đại diện cho bất kỳ ký tự chữ và số nào (bao gồm cả dấu gạch dưới)
\𝐝 đại diện cho bất kỳ chữ số nào
. đại diện cho bất kỳ ký tự nào (Ở đây không dùng với vai trò như một dấu chấm câu)
𝐚𝐛𝐜 phù hợp với các ký tự abc trong một chuỗi
[𝐚𝐛𝐜] phù hợp với a hoặc b hoặc c (các ký tự trong dấu ngoặc vuông)
? đứng sau một ký tự cho biết rằng ký tự đó là tùy chọn
* đứng sau một ký tự cho biết nó có thể được lặp lại 0 hoặc nhiều lần
+ đứng sau một ký tự cho biết nó có thể được lặp lại 1 hoặc nhiều lần
\ được sử dụng để đánh dấu một chuỗi kí tự đặc biệt ví dụ “\d+” là chuỗi số
Các tình huống sử dụng Regex
Regex trong một số tình huống sử dụng cụ thể (Mức độ phức tạp của các tình huống tăng dần):
Tình huống 1: Xóa từ xuất hiện ở đầu hoặc cuối chuỗi
Để loại bỏ các từ bắt đầu một chuỗi thì sử dụng Regex ^ trước từ đó, còn loại bỏ các từ kết thúc một chuỗi chúng ta dùng Regex để xóa “friendly” ở cuối câu.
Tình huống 2: Xóa số
Sử dụng Regex \d+ để loại bỏ số
Tình huống 3: Xử lý tất cả các loại định dạng ngày tháng
Có rất nhiều cách để viết ngày tháng khác nhau: 14–07–2021, 14/07/2021 hay 14.07.2021 đều được hiểu như nhau.
Trong trường hợp này, sử dụng Regex \d+[\.\/-]\d+[\.\/-]\d+
Tình huống 4: Xóa Hyperlink
Để loại bỏ hoàn toàn một URL nào đó: sử dụng Regex https?: \ / \ /.* [\ r \ n] *
Lưu ý: Chỉ dành cho các URL bắt đầu bằng https: //
Tình huống 5: Trích xuất tên miền chính của một URL
Tình huống này xảy ra khi chỉ quan tâm đến tên miền mà không quan tâm đến các trang cụ thể hay các tham số truy vấn.
Sử dụng Regex [\.\/]+(.*)\.
Tình huống 6: Loại bỏ dấu câu
Nếu muốn xóa tất cả các dấu câu, chỉ cần sử dụng Regex [^ a-zA-Z0–9] (phù hợp với mọi ký tự ngoại trừ các ký tự chữ và số).
(Nguồn tham khảo: Towards Data Science)