Cấp bậc tác giả:

TRAINING

Sử dụng regex với tiếng Việt

Được viết bởi webmaster ngày 09/08/2020 lúc 05:32 PM
Mục này yêu cầu bạn cần có hiểu biết cơ bản về regex, bạn có thể đọc bài viết regex là gì trước khi tiếp tục nếu chưa rõ nhé.
  • 0
  • 2005

Sử dụng regex với tiếng Việt


Yêu cầu: Mục này yêu cầu bạn cần có hiểu biết cơ bản về regex, bạn có thể đọc bài viết regex là gì trước khi tiếp tục nếu chưa rõ nhé.

Để sử dụng regex trong Python 3 với tiếng Việt, bạn có một số lưu ý như sau:

1. Để so khớp một từ tiếng Việt bất kỳ, bạn không thể sử dụng \b[a-zA-Z]+\b được. Bởi vì tiếng Việt của chúng ta có những ký tự có thanh sắc. Đây là danh sách đầy đủ ở dạng viết thường cho bạn:
áàảãạăắằẳẵặâấầẩẫậéèẻẽẹêếềểễệóòỏõọôốồổỗộơớờởỡợíìỉĩịúùủũụưứừửữựýỳỷỹỵđ
Do đó, nếu bạn muốn so khớp một từ sử dụng thư viện re, hãy sử dụng regex này:
\b[a-záàảãạăắằẳẵặâấầẩẫậéèẻẽẹêếềểễệóòỏõọôốồổỗộơớờởỡợíìỉĩịúùủũụưứừửữựýỳỷỹỵđ]+\b
Trong trường hợp bạn cần so khớp không phân biệt hoa thường thì hãy dùng thêm flag IGNORE_CASE nhé:
>>> import re
>>> txt = "Lập trình không khó"
# (?i) là flag ignore case
>>>re.findall(r'(?i)\b[a-záàảãạăắằẳẵặâấầẩẫậéèẻẽẹêếềểễệóòỏõọôốồổỗộơớờởỡợíìỉĩịúùủũụưứừửữựýỳỷỹỵđ]+\b', txt)
['Lập', 'trình', 'không', 'khó']
2. Có một cách khác đơn giản hơn, là cài bổ sung thư viện regex thay vì dùng thư viện re có sẵn. Nó cung cấp cho chúng ta khả năng làm việc với tiếng Việt tốt hơn.
$ pip install regex
Sau đó bạn có thể sử dụng nó để so khớp chuỗi tiếng Việt đơn giản hơn.
>>> import regex
>>> txt = "Lập trình không khó"
>>> regex.findall(r'(?i)\b\p{L}+\b', txt)
['Lập', 'trình', 'không', 'khó']
Ở đây, \p{L} sẽ khớp với một chữ cái bất kỳ trong bảng chữ cái của bất kỳ ngôn ngữ nào.

Nguồn bài viết: Sưu tầm

BÌNH LUẬN BÀI VIẾT

Bài viết mới nhất

LIKE BOX

Bài viết được xem nhiều nhất

HỌC HTML