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ừ đó.  <!-- /wp:paragraph -->  <!-- wp:paragraph --> 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

Hệ thống IOT theo dõi điện tim thai nhi với cảm biến không tiếp xúc

Trong bối cảnh tỷ lệ thai chết lưu do dị tật tim bẩm sinh ngày càng tăng cao, đặc biệt tại Việt Nam với con số báo động 6% so với mức trung bình toàn cầu 1% [1, 2], việc theo dõi sức khỏe thai nhi trở thành một trong những ưu tiên hàng đầu. Tỷ lệ sinh non gia tăng, chiếm từ 5 - 9%, đòi hỏi sự chăm sóc đặc biệt để bảo đảm sự sống và phát triển khỏe mạnh của trẻ. Do đó việc theo dõi sức khỏe thai nhi trở nên vô cùng cấp thiết nhằm giảm thiểu nguy cơ thai chết lưu và sinh non, đảm bảo sự phát triển toàn diện cho trẻ. Hệ thống thông tin y tế đóng vai trò then chốt trong việc hỗ trợ các cơ sở y tế còn hạn chế, giảm tải áp lực cho bệnh viện và đảm bảo xử lý kịp thời các tình huống khẩn cấp, đồng thời tối ưu hóa năng lực của đội ngũ y bác sĩ. Hơn thế nữa, xây dựng một cơ sở dữ liệu về bà mẹ mang thai người Việt là bước đi quan trọng, giúp tìm hiểu nguyên nhân của những vấn đề sức khỏe của trẻ em, từ đó góp phần cải thiện chất lượng chăm sóc sức khỏe cho thế hệ tương lai.

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 đã...

BÀI ĐỌC NHIỀU

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...

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...

Phần mềm mã nguồn mở là gì? Tất cả những điều bạn nên biết

Mã nguồn mở thường được lưu trữ trong kho lưu trữ công cộng và được chia sẻ công khai. Bất kỳ ai cũng có...

03 bài toán kinh điển trong Xử lý ngôn ngữ tự nhiên

Các bài toán trong Xử lý ngôn ngữ tự nhiên (NLP) từ cơ bản đến nâng cao bao gồm part-of-speech tagging, chunking, dependency parsing,...