Trang chủ Thế giới nói gì Các biểu thức chính quy cần thiết (Regex) trong NLP

Các biểu thức chính quy cần thiết (Regex) trong NLP

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)
Biểu thức chính quy (Regular Expression – Regex)

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 $ sau từ đó. 

Ví dụ: Với câu gốc “the friendly boy has a nice dog, the dog is friendly”: Dùng ^the để xóa “the” ở đầu câu, và dùng friendly$ để 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)

BÀI MỚI NHẤT

Transformer Neural Network – Mô hình học máy biến đổi thế giới NLP

Năm 2017, Google công bố bài báo “Attention Is All You Need” thông tin về Transformer như tạo ra bước ngoặt mới trong lĩnh...

Giảm chiều dữ liệu để tăng hiệu quả của mô hình AI

Các tập dữ liệu đa chiều (high-dimensionality datasets) hiện là tài nguyên quý giúp tổ chức nghiên cứu giải quyết những vấn đề phức...

Newsletter nổi bật về khoa học dữ liệu và AI (2021)

Newsletter về khoa học dữ liệu và AI là giải pháp tuyệt vời cho việc quá tải thông tin khi nghiên cứu. Newsletter đã...

Khái quát về Explainable AI

Trong khi trí tuệ nhân tạo (AI) thâm nhập ngày càng sâu rộng vào mọi lĩnh vực của đời sống (từ nhận dạng khuôn...

BÀI ĐỌC NHIỀU

Chiến thuật chinh phục các cuộc thi trên Kaggle

Với hơn 5 triệu tài khoản đăng ký, các cuộc thi trên Kaggle là sân chơi quốc tế dành cho cộng đồng trí tuệ...

Giáo sư Vũ Hà Văn được Hiệp hội Toán thống kê thế giới bầu chọn là Hội viên danh dự năm 2020

Với những cống hiến trong lý thuyết xác suất, đặc biệt là lý thuyết ma trận ngẫu nhiên, Giáo sư Vũ Hà Văn –...

Supervised Learning và Unsupervised Learning: Khác biệt là gì?

Supervised learning (Học có giám sát) và Unsupervised learning (Học không giám sát) là hai trong số những phương pháp kỹ thuật cơ bản...

Trí tuệ nhân tạo trong ngành thương mại điện tử

Dữ liệu đang trở thành một mặt hàng theo đúng nghĩa đen. Theo Diễn đàn kinh tế Thế giới, 44 zettabyte dữ liệu sẽ...