List of topics
Biểu thức chính quy - Regular Expressions
Chi tiết các thuật toán tách từ
Chuẩn hóa văn bản
[Bổ trợ học máy] Mô hình hồi quy tuyến tính
[Bổ trợ học máy] Các thuật toán Training
Vector Semantics và Embeddings
SkipGram, Glove và FastText
Mô hình ngôn ngữ
RNN và LSTM
Bài toán dịch máy
Mô hình Transfomer
Mô hình Bert và ứng dụng
Thực hành Bert và ứng dụng với bài toán NER và POS Tag
GPT + Đào tạo phân tán
Bài toán truy xuất thông tin - Information Retrieval
Vector Database and RAG
Transformer nâng cao
Prompt Engineering
Dự án cuối khóa

Biểu thức chính quy - Regular Expressions

  • Luyện tập thuần thục viết Regular Expressions

    • Các toán tử thông thường

    • Các toán tử nâng cao

  • Thực hiện tiền xử lý trên văn bản tiếng Việt

1. Giới thiệu xử lý ngôn ngữ tự nhiên

1.1. [TF] 16.1.1. Giới thiệu NLP.mp4

  • Giới thiệu xử lý ngôn ngữ tự nhiên

1.2. [TF] 16.1.2. Các bài toán và khó khăn.mp4

Click to view more

1.3. [TF] 16.1.3. Giao thoa sử dụng các mô hình.mp4

Click to view more

2. Công cụ học biểu thức chính quy

2.1. Công cụ Regex

3. Biểu thức chính quy - Regular Expressions

3.1. Một số toán tử cơ bản Regular Expression

Click to view more

3.2. Câu hỏi ngoặc []

Mẫu biểu thức chính quy [aăâbcdđeêghiklmnoôơpqrstuưvxy] có ý nghĩa gì?

0 / 40

Tìm khớp với bất kỳ ký tự đơn nào không phải là chữ cái trong bảng chữ cái tiếng Việt.

Tìm khớp với bất kỳ một trong những ký tự được chỉ định: a, ă, â, b, c, d, đ, e, ê, g, h, i, k, l, m, n, o, ô, ơ, p, q, r, s, t, u, ư, v, x, y.

Tìm khớp với bất kỳ ký tự nào trừ những ký tự được chỉ định: a, ă, â, b, c, d, đ, e, ê, g, h, i, k, l, m, n, o, ô, ơ, p, q, r, s, t, u, ư, v, x, y.

3.3. [1-100] có ý nghĩa gì?

[1-100] có ý nghĩa gì?

3.4. Ký hiệu số lượng

  • Ký hiệu ?

    • Ý nghĩa: Không hoặc có một ký tự phía trước ký hiệu ?.

    • Ví dụ a?m có thể tìm ra m hoặc am

    • phu? có thể tìm ra phu hoặc ph

  • Ký hiệu *

    • Ý nghĩa: Không hoặc có nhiều ký tự phía trước ký hiệu * .

    • Ví dụ a*m có thể tìm ra m, am, aam, aaam hoặc aaaaaam

    • Tuy nhiên a* sẽ khớp với chuỗi rỗng

    • Phức tạp hơn ta sẽ có [em]* có nghĩa Không có hoặc có nhiều e hoặc nhiều m. Khớp với eeee, mmmm, emememem, thậm chí eeeemmmm và cuối cùng là chuỗi rỗng.

  • Ký hiệu +

    • Ý nghĩa: Có một hoặc nhiều ký tự phía trước ký hiệu + (Ít nhất một)

    • Ví dụ a+m sẽ không khớp với m vì bắt buộc ít nhất phải có một a. Mẫu này khớp với am, aam, aaam hoặc aaaaaam

    • Bài tập: Phân biệt aa+maa*m

      • Lời giải: aa+m không khớp với am chỉ có aa*m là khớp

3.5. Ký hiệu đại diện

  • Ký hiệu .

    • Ý nghĩa: Đại diện cho bất cứ ký hiệu nào

    • Ví dụ .oc có thể khớp hoc, doc, coc

    • Nâng cao: Vậy một chuỗi bất kỳ sẽ được viết thế nào. Bạn có thể sử dụng mẫu .*

3.6. Câu hỏi về ký tự đặc biệt

Click to view more

3.7. Đầu dòng - cuối dòng

  • Các ký hiệu liên quan đến đầu dòng, cuối dòng

    • Ký hiệu ^ thể hiện bắt đầu một dòng

      • ^T sẽ khớp với: Ta đi

      • Kết luận ký hiệu này có 3 ý nghĩa

        • Nếu ở trong [] có nghĩa là ngoại trừ, phủ định

        • Nếu ở ngoài [] thì ý nghĩa là bắt đầu câu

        • Nếu đứng sau \ : \^ thì có ý nghĩa là ký tự ^

    • Ký hiệu $ thể hiện kết thúc dòng

      • p$ sẽ khớp với: Hoa đẹp

    • \b là biên của từ. Một từ trong biểu thức chính quy bao gồm chữ, số hoặc dấu gạch chân _. Khi chuỗi các ký tự liền nhau phân cách bởi những ký tự không thuộc chữ, số hoặc gạch chân sẽ hình thành nên biên của từ.

      • \bchúa\b sẽ khớp với: Công chúa trong rừng

      • Chú ý: \b122\b khớp: Số 122 nhưng \b22\b lại không khớp Số 122

    • \B là biên không phải từ.

      • \B-\B sẽ khớp với: Bá Ngoc - lazy boy

3.8. Toán tử chia cách, nhóm, ưu tiên

1) Toán tử chia cách (Disjunction)

Bạn muốn tìm từ vàng hoặc kim cương. Bạn có thể sử dụng toán tử hoặc | như sau

vàng|kim cương

Ngoài các kênh đầu tư thông thường như vàng, chứng khoán, bất động sản thì kim cương cũng được coi là một kênh đầu tư hiệu quả. Vậy nếu cùng là tài sản trú ẩn, kim cương có tăng giá không? Giá của kim cương có bị biến động như giá vàng không? Hãy cùng Tierra giải đáp thắc mắc về giá kim cương nhé!

Tuy nhiên nếu bạn muốn tìm được cả

QuyênQuyến

bạn sẽ cần sử dụng () với mẫu Quy(ên|ến)

2) Phép ưu tiên

Thứ tự ưu tiên giảm dần

  1. Ngoặc tròn ()

  2. Bộ đếm

    • Toán tử *

    • Toán tử +

    • Toán tử ?

    • Số lượng xuất hiện {}

  3. Chuỗi và mỏ neo: ánh ^hoàng hôn$

  4. Phép hoặc |

Ví dụ mẫu (hoàng)* sẽ có thứ tự ưu tiên như sau

  • () sẽ coi hoàng là một ký tự

  • * sẽ đếm có bao nhiêu ký tự trong ()

Kết quả: hoàng hoàng hôn

Chú ý: Biểu thức chính quy sẽ cố gắng khớp chuỗi dài nhất có thể, đây là kỹ thuật tham lam(Greedy). Để ép việc không sử dụng tham lam, ta có thể sử dụng phép *?. Phép này sẽ cố gắng khớp chuỗi ngắn nhất có thể.

3.9. Câu hỏi về toán tử chia cách

Click to view more

3.10. Chuỗi đại diện

Click to view more

3.11. Câu hỏi về \s

Click to view more

3.12. Toán tử đếm

Click to view more

3.13. Luyện tập toán tử đếm

Click to view more

3.14. Loại bỏ ký tự đặc biệt

Trong một số trường hợp ta cần biến các phép thành ký tự thông thường để tìm kiếm. Ví dụ bạn muốn tìm các câu bắt đầu bằng +. Nếu để + không trong mẫu sẽ là đếm. Vì thế ta sẽ thêm \ phía trước để coi + như ký tự thông thường.

Giả sử với văn bản

+ Có kinh nghiệm làm việc với nước ngoài

+ Có trên 3 năm kinh nghiệm

Bạn sử dụng mẫu sau

^\+[ |\S]+

Giải thích

  • Bắt đầu bằng ký tự +

  • Tiếp theo có một hoặc nhiều khoảng trắng hoặc các ký tự không phải khoảng trắng. Đồng nghĩa với việc tìm tất cả ký tự đằng sau. Trường hợp này dùng như vậy mà không dùng \w vì trong câu có văn bản Tiếng Việt. \w\ chỉ tìm ra được các chữ trong Tiếng Anh.

Một số cách dùng

  • \*

    • Dấu * thông thường.

    • Mẫu \* khớp: Mật khẩu hiện tại ******

  • \.

    • Dấu . thông thường

    • Mẫu \. khớp: Chấm câu sắp tới. Lại chấm câu .

  • \?

    • Dấu ? thông thường

    • Mẫu \? khớp: Sắp đến Noel chưa?

  • \n

    • Xuống dòng

    • Mẫu \n khớp

      • Tình hình việc làm

        Thị trường lao động mạnh mẽ là chiến thắng lớn nhất của Nhà Trắng. Ở một khía cạnh nào đó, điều này phần nào nhờ Biden nhậm chức lúc hàng triệu người mất việc vì đại dịch. Dù vậy, tốc độ tăng việc làm những năm gần đây đã vượt xa kỳ vọng các chuyên gia, thúc đẩy nền kinh tế tăng trưởng vượt bậc.

  • \t

    • Tab

    • Mẫu \t khớp

      • x = 1

        y = 2

        if x == 3:

        print(y)

  • \/

    • Dấu / thông thường trong một số ngôn ngữ là ký hiệu đặc biệt ví dụ Javascript viết mẫu sẽ gói trong /pattern/ nên khi muốn tìm dấu / trong các văn bản thì mẫu sẽ là /\//

    • Mẫu \/ khớp: Số nhà 17/287/33/12

3.15. Capture Groups

Giải thích chi tiết Capturing Groups trong biểu thức chính quy

1) Giải thích khái niệm Capturing Groups

Ví dụ bạn muốn tìm mẫu

đang đi trên đường, đâm vào ổ gà

đang đi trên đường, đâm phải ổ gà

Tức là ràng buộc hai từ Hà phải giống nhau mà không cần phải viết mẫu 2 lần thì bạn sử dụng mẫu sau

(.*)à đang đi trên đường, \1à đâm phải ổ gà

Giải thích

  • Mẫu .* đại diện cho một chuỗi dài bất kỳ, trường hợp này là bao nhiêu ký tự trước à đều khớp. Sẽ đúng với Hà, Gà, Già, vv

  • Mẫu này được gói trong () thành (.*) đại diện cho khái niệm nhóm Capturing Group. Khi group này đã khớp ví dụ từ Hà thì từ Hà này sẽ được lưu lại và sử dụng thông qua ánh xạ backreference \1.

    • Ví dụ group (.*)à khớp từ Hà trước thì toàn mẫu sẽ trở thành Hà đang đi trên đường, Hà đâm phải ổ gà

    • Ví dụ group (.*)à khớp từ Bà trước thì toàn mẫu sẽ trở thành Bà đang đi trên đường, Bà đâm phải ổ gà

2) Mẫu có nhiều Capturing groups

Ví dụ mẫu

(.*)à đang đi trên đ(ường), \1à đâm phải bờ t\2

khớp với câu

Bà đang đi trên đường, Bà đâm phải bờ tường

như sau:

  • Nhóm Capturing Group 1 - (.*) đã khớp từ B trong Bà cho nên ánh xạ \1 sẽ là B

  • Nhóm Capturing Group 2 - (ường) đã khớp từ ường trong đường, ánh xạ \2 sẽ là ường

3.16. Non-capturing group

Chi tiết non-capturing group

Với capture group bạn có thể lưu lại mẫu đã tìm ra và sử dụng lại. Tuy nhiên trong một số trường hợp bạn không muốn group được nhắc lại thông qua 1\ hoặc 2\ thì bạn có thể sử dụng mẫu ?: để loại trừ group hiện tại

(?:.*)à đang đi trên đ(ường), \1à đâm phải bờ tường

Với trường hợp này mẫu (?:.*) là một non-capturing group không được theo dõi.

\1 sẽ theo (ường)

Phân tích một ví dụ

Hãy xem xét ví dụ dưới đây

(?:\-{2,}|\.{2,}|(?:\.\s){2,}\.)

Đây là một mẫu giúp bạn có thể tìm ra các dấu của văn bản như dấu - với số lượng nhiều hơn 2 hay dấu chấm theo sau bởi dấu cách . với số lượng nhiều hơn 2.

Mẫu này khớp các chuỗi sau:

  • Chuỗi 1: -- hoặc ---

  • Chuỗi 2: . . . hoặc . . . .

3.17. Phép thế - Substitution

Click to view more

3.18. Lookahead assertions

Click to view more

4. Bài tập thực hành

4.1. Bài tập lọc email và thay thế

Giả sử bạn cần build một mô hình sinh các văn bản viết yêu cầu tuyển dụng như dưới.

Mô tả công việc

- Thực hiện vai trò trưởng nhóm các nhóm kiểm toán đối với các Đơn vị kinh doanh có Quy mô tương ứng với cấp II, III, IV theo mô hình cơ cấu tổ chức từng thời kỳ của ABBANK.
- Thực hiện kiểm toán liên tục đối với toàn bộ hoạt động của các Khối và Đơn vị kinh doanh;
- Thực hiện kiểm toán các Khối và Đơn vị kinh doanh theo kế hoạch năm đã được phê duyệt.
- Thực hiện kiểm toán đột xuất các đơn vị/quy trình có đánh giá mức độ rủi ro cao dựa trên kết quả kiểm toán liên tục đối với hoạt động của các Khối và Đơn vị kinh doanh và theo chỉ đạo của Ban kiểm soát;

Yêu cầu ứng viên

- Có bằng đại học trở lên về một trong các ngành kinh tế, quản trị kinh doanh, luật, kế toán, kiểm toán;
- Có 02 năm kinh nghiệm làm việc trực tiếp thuộc một trong các ngành ngân hàng, tài chính, kế toán, luật và tối thiểu 2 năm đối với ngành kiểm toán;
- Ưu tiên ứng viên có kinh nghiệm kiểm toán về tín dụng.
- Có khả năng giao tiếp, khả năng làm việc độc lập; làm việc nhóm hiệu quả.
- Có khả năng đóng góp ý tưởng, sáng kiến cải tiến trong công tác kiểm toán.
- Ưu tiên có kinh nghiệm Trưởng nhóm kiểm toán.

Quyền lợi

- Thu nhập cạnh tranh.
- Chương trình vay ưu đãi (lãi suất hấp dẫn) dành cho cán bộ nhân viên ABBANK.
- Môi trường năhng động và sáng tạo, pát huy tối đa năng lực bản thân, điều kiện làm việc tốt, đầy đủ phương tiện, thiết bị, có cơ hội tham gia đào tạo, thăng tiến, phát triển sự nghiệp.
- Tham dự các hoạt động văn hóa: Team building, hội thao, văn nghệ...;
- Chế độ nghỉ phép 12 ngày/năm + ngày nghỉ sinh nhật hưởng nguyên lương;
- Môi trường năng động và sáng tạo, pát huy tối đa năng lực bản thân, điều kiện làm việc tốt, đầy đủ phương tiện, thiết bị, có cơ hội tham gia đào tạo, thăng tiến, phát triển sự nghiệp.
- Top 100 nhà tuyển dụng được yêu thích nhất năm 2020 – 2021 theo khảo sát từ CareerBuilder. Email liên hệ: protonxai@gmail.com. Đừng ngần ngại liên hệ nhé!!!

Tuy nhiên trong các văn bản này chứa email của công ty nên chúng ta cần che đi và thay thế bằng [Hãy nhập email của bạn]

Cụ thể câu đầu vào:

- Top 100 nhà tuyển dụng được yêu thích nhất năm 2020 – 2021 theo khảo sát từ CareerBuilder. Email liên hệ: protonxai@gmail.com. Đừng ngần ngại liên hệ nhé!!!

sẽ được sửa thành

- Top 100 nhà tuyển dụng được yêu thích nhất năm 2020 – 2021 theo khảo sát từ CareerBuilder. Email liên hệ:[Hãy nhập email của bạn]. Đừng ngần ngại liên hệ nhé!!!

Hãy đề xuất biểu thức chính quy có khả năng làm việc này.

4.2. Lời giải

Click to view more

4.3. Chuẩn hóa theo lùi đầu dòng

Click to view more

4.4. Lời giải

Click to view more

5. Video NLP 01

5.1. Video

6. NLP 02

6.1. Video

  • Giới thiệu về lớp học NLP

  • Xu hướng NLP hiện đại

  • Biểu thức chính quy

1. Giới thiệu xử lý ngôn ngữ tự nhiên
1.1. [TF] 16.1.1. Giới thiệu NLP.mp4
1.2. [TF] 16.1.2. Các bài toán và khó khăn.mp4
1.3. [TF] 16.1.3. Giao thoa sử dụng các mô hình.mp4
2. Công cụ học biểu thức chính quy
2.1. Công cụ Regex
2.2. Python Regex
3. Biểu thức chính quy - Regular Expressions
3.1. Một số toán tử cơ bản Regular Expression
3.2. Câu hỏi ngoặc []
3.3. [1-100] có ý nghĩa gì?
3.4. Ký hiệu số lượng
3.5. Ký hiệu đại diện
3.6. Câu hỏi về ký tự đặc biệt
3.7. Đầu dòng - cuối dòng
3.8. Toán tử chia cách, nhóm, ưu tiên
3.9. Câu hỏi về toán tử chia cách
3.10. Chuỗi đại diện
3.11. Câu hỏi về \s
3.12. Toán tử đếm
3.13. Luyện tập toán tử đếm
3.14. Loại bỏ ký tự đặc biệt
3.15. Capture Groups
3.16. Non-capturing group
3.17. Phép thế - Substitution
3.18. Lookahead assertions
4. Bài tập thực hành
4.1. Bài tập lọc email và thay thế
4.2. Lời giải
4.3. Chuẩn hóa theo lùi đầu dòng
4.4. Lời giải
5. Video NLP 01
5.1. Video
6. NLP 02
6.1. Video