Tải bản đầy đủ (.pdf) (29 trang)

TÌM HIỂU VỀ TRÍCH RÚT THÔNG TIN VÀ ỨNG DỤNG TRONG VIỆC TRÍCH RÚT SƠ YẾU LÝ LỊCH

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (550.2 KB, 29 trang )

TRƯỜNG ĐẠI HỌC XÂY DỰNG HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN
----o0o----

BÁO CÁO ĐỒ ÁN
XỬ LÝ NGƠN TỰ NHIÊN
Đề tài:

TÌM HIỂU VỀ TRÍCH RÚT THƠNG TIN VÀ ỨNG DỤNG
TRONG VIỆC TRÍCH RÚT SƠ YẾU LÝ LỊCH

Hà Nội, tháng 3 năm 2022


Mục lục
CHƯƠNG I: GIỚI THIỆU

4

1.

Lý do chọn đề tài

4

2.

Mục đích nghiên cứu và phạm vi nghiên cứu

4


a.

Mục đích nghiên cứu

4

3.

Nội dung nghiên cứu

4

4.

Bố cục

4

5.

Ý nghĩa của đề tài

5

CHƯƠNG II: CƠ SỞ LÝ THUYẾT SỬ DỤNG TRONG ĐỀ TÀI
1.

2.

3.


Bài tốn trích rút thơng tin
Định nghĩa bài tốn

6

1.2.

Kiến trúc của hệ thống trích rút thơng tin

6

Bài tốn trích rút thơng tin cá nhân
Định nghĩa bài tốn

8

2.2.

Phương pháp giải quyết bài tốn trích rút thơng tin cá nhân

8

Bài tốn trích rút thực thể
Định nghĩa bài tốn

Bài tốn trích rút mối quan hệ

8
8

9

4.1 Định nghĩa bài tốn

9

4.2 Trích rút mối quan hệ trong bài tốn trích rút thơng tin cá nhân

9

Ứng dụng của bài tốn trích rút thơng tin cá nhân

6.

Chuyển đổi từ PDF thành văn bản

8.

8

2.1.

5.

7.

6

1.1.


3.1.
4.

6

9
10

6.1.

Thuật tốn phân tích bố cục

10

6.2.

Nhóm các kí tự thành các từ và dịng

10

6.3.

Nhóm các dịng vào các hộp

11

6.4.

Nhóm các hộp văn bản theo thứ bậc


12

6.5.

Làm việc với các kí tự được xoay

12

Biểu thức chính quy

12

7.1.

Định nghĩa

12

7.2.

Các phép tốn trong biểu thức chính qui

13

7.3.

Ứng dụng biểu thức chính quy để trích rút quan hệ

13


Bài tốn trích rút dựa trên xây dựng mẫu

13

1


8.1.

Xây dựng mẫu thủ công

13

8.1.1.

Trường tên

14

8.1.2.

Trường Email

14

8.1.3.

Trường số điện thoại

15


Xây dựng mẫu tự động

15

Bài tốn trích rút dựa trên luật

15

8.2.
9.

9.1.

Phương pháp dựa trên từ điển

15

9.2.

Phương pháp dựa trên luật

16

9.2.1.

Luật gán nhãn

16


9.2.2.

Luật ngữ cảnh

16

9.2.3.

Luật sửa đổi

16

9.2.4.

Khái quát luật

17

10.

StopWords (từ dừng)

17

11.

Tokenization

17


11.1.

Word-based tokenization

18

11.2.

Character-based tokenization

18

11.3.

Subword-based tokenization

19

12.

Phương pháp đánh giá kết quả

CHƯƠNG III: THỰC NGHIỆM

19
21

1.

Đọc sơ yếu lý lịch


21

3.

Trích xuất tên

21

4.

Trích xuất số điện thoại

22

5.

Trích xuất Email

22

6.

Trích xuất kỹ năng

22

CHƯƠNG IV: KẾT QUẢ

24


CHƯƠNG V: KẾT LUẬN

25

5.1. Các kết quả đạt được trong đồ án

25

5.1.1. Về lý thuyết

25

5.1.2. Về thực nghiệm

25

5.1.3. Nhận xét

25

5.2. Hướng phát triển
Phụ lục hình ảnh

25
26
2


Phụ lục bảng


27

TÀI LIỆU THAM KHẢO

28

3


CHƯƠNG I: GIỚI THIỆU
1. Lý do chọn đề tài
Quá trình tuyển dụng đã phát triển theo thời gian. Các ngành công nghiệp bắt đầu phát
triển và nhu cầu tuyển dụng cũng tăng theo. Do đó, các cơng ty bắt đầu gia cơng q trình
tuyển dụng của họ. Việc tìm kiếm ứng viên giữa hàng trăm nghìn hồ sơ xin việc là một phần
công việc thường ngày của các nhà tuyển dụng. Vấn đề đặt ra là nhà tuyển dụng không thể
ngồi đọc từng hồ sơ xin việc của từng ứng viên, việc này tốn rất nhiều thời gian và nhân lực,
thậm trí khơng thể tìm được các ứng viên phù hợp với mong muốn của công ty. Hoặc một
sinh viên đang cố gắng làm đẹp bản lý lịch khơng có cấu trúc của mình và chuyển đổi thành
một định dạng pdf đẹp để dễ dàng liên kết với cơ hội việc làm trực tiếp từ hồ sơ xin việc.
Chính vì vậy để giải quyết vấn đề này, nhóm nhóm đưa ra giải pháp phân tích thơng tin từ sơ
yếu lý lịch bằng cách sử dụng xử lý ngôn ngữ tự nhiên, tìm các từ khóa, phân cụm chúng vào
các lĩnh vực dựa trên từ khóa của chúng và cuối cùng hiển thị sơ yếu lý lịch phù hợp nhất cho
nhà tuyển dụng dựa trên đối sánh từ khóa. Tiết kiệm thời gian và xử lý được nhiều hồ sơ xin
việc hơn, trong thời gian ngắn hơn.
2. Mục đích nghiên cứu và phạm vi nghiên cứu
a. Mục đích nghiên cứu
Thơng qua nghiên cứu đề tài “ Tìm hiểu về trích rút thơng tin và ứng dụng trong việc
trích rút sơ yếu lý lịch”, nhóm nhóm mong muốn một số kết quả:
● Nghiên cứu các phương pháp trích rút thơng tin từ đó lựa chọn phương pháp

phù hợp với bài tốn.
● Xây dựng một hệ thống trích rút thơng tin từ những bản sơ yếu lý lịch.
b. Phạm vi nghiên cứu
Đề tài tập trung vào việc trích rút thơng tin của cá nhân từ các bản sơ yếu lý lịch xin
việc bằng tiếng việt dưới định dạng tập tin pdf. Với mặc định, một văn bản chỉ đề cập
đến thông tin của một người. Hệ thống sẽ trích rút từ văn bản này các thực thể: tên
người, số điện thoại, email, kỹ năng. Cuối cùng, hệ thống có thể lưu những dữ liệu vừa
trích xuất dưới dạng các giá trị được phân tách bằng dấu phẩy (csv).
3. Nội dung nghiên cứu
Trong đề tài này, để giải quyết bài tốn trích rút thơng tin nhóm sử dụng nhận dạng thực
thể, trích xuất dựa trên mẫu, biểu thức chính quy, kỹ thuật tách từ.
4. Bố cục
Bố cục của báo cáo gồm 4 chương và phụ lục:
Chương I giới thiệu về động cơ, mục tiêu và phạm vi nghiên cứu, những đóng góp
chính và cấu trúc của báo cáo.
Chương II giới thiệu tổng quan về bài tốn trích rút thơng tin, các bài tốn liên quan đến
trích rút thực thể.
Chương III phân tích và thiết kế kệ thống trích rút thơng tin từ sơ yếu lí lịch

4


Chương IV thực nghiệm , nhận xét và đánh giá kết quả từ hệ thống.
5. Ý nghĩa của đề tài
Với kết quả đạt được, đề tài sẽ mang lại một số kết quả nghiên cứu nhất định trong
việc trích rút thơng tin, đặc biệt là trích rút thực thể , kết hợp phương pháp biểu thức chính
quy để giải quyết bài toán cụ thể.
Đồng thời, đề tài cũng xây dựng một hệ thống trích rút thơng tin từ văn bản sơ yếu lý
lịch. Nguồn thơng tin này có thể sử dụng cho các hệ thống lọc sơ yếu lý lịch giúp cho quy
trình tuyển dụng tiết kiệm được thời gian và chi phí.


5


CHƯƠNG II: CƠ SỞ LÝ THUYẾT SỬ DỤNG TRONG ĐỀ TÀI
1. Bài tốn trích rút thơng tin
Định nghĩa bài tốn
1.1.
“Trích rút thơng tin” (IE – Information Extraction) là q trình phát hiện các thực thể/tên,
các mối quan hệ và các sự kiện từ văn bản có cấu trúc, bán cấu trúc hay phi cấu trúc; và
chuyển chúng sang dạng thể hiện có cấu trúc.
Việc trích rút ra các thơng tin có cấu trúc từ các nguồn dữ liệu khơng có cấu trúc là một
cơng việc nhiều khó khăn và đã thu hút được sự quan tâm của nhiều các nhà nghiên cứu trong
hai thập kỉ qua.
Có nhiều mức độ trích rút thông tin từ văn bản như: nhận diện thực thể có tên (Named
Entity Recognition – NER), trích rút quan hệ giữa các thực thể (Relation Extraction - RE),
phân giải đồng tham chiếu (Co-Reference Resolution)… Các kĩ thuật được sử dụng trong q
trình rút trích thơng tin gồm có: Phân đoạn, phân lớp, kết hợp và phân cụm.
Kết quả của một hệ thống trích chọn thơng tin thường là các mẫu (template) chứa một số
lượng xác định các trường đã được điền thơng tin.
IE có nhiều ứng dụng rộng rãi và hữu ích. Trên thế giới IE được ứng dụng khá nhiều vào
việc trích chọn thơng tin trên internet. Các ứng dụng thực tế ví dụ: Hỗ trợ, tư vấn mua hàng;
chăm sóc khách hàng; tìm kiếm câu trả lời cho các hệ thống hỏi đáp; theo dõi thông tin dịch
bệnh; tham gia vào hệ thống quản lý thông tin cá nhân …
Một số ứng dụng của xử lý ngôn ngữ tự nhiên (Natural Language Processing):
Truy hồi thông tin (IR): Tìm kiếm, lấy các tài liệu để đáp ứng một u cầu về thơng tin
nào đó
Trích rút thơng tin (IE): Lấy thông tin trong một văn bản theo một khuôn mẫu, một yêu
cầu,...
1.2. Kiến trúc của hệ thống trích rút thơng tin

Theo MUC (Message Understanding Conferences) [1] thì hệ thống trích rút thơng tin có
các thao tác chính như sau:

6


Hình 1: Cấu trúc hệ thống trích rút thơng tin

Kiến trúc của hệ thống trích rút là cơ sở để xây dựng hệ thống trích rút thơng tin cá nhân
(từ sở yếu lý lịch). Do đó phần này sẽ giải thích cơ bản về kiến trúc của hệ thống trích rút.
a. Tiền xử lý dữ liệu
Văn bản đầu vào trước khi đến bước nhận dạng thực thể phải được tiền xử lý, bao gồm
các bước: Tách câu, tách từ, gán nhãn từ loại và phân cụm.
b. Nhận dạng thực thể
Nhận dạng thực thể (Named Entity Recogintion – NER) là việc tìm và phân loại các thực
thể như tên, địa chỉ, thời gian, tổ chức… có trong văn bản.
c. Giải quyết đồng tham chiếu
Giải quyết đồng tham chiếu (Coreference Resolution – CO) là việc nhận dạng các đồng
tham chiếu giữa các thực thể bằng cách kết hợp những thông tin mô tả nằm rải rác trên văn
bản tới các thực thể mà nó tham chiếu. Thao tác này mang tính chất hỗ trợ cho các thao tác
khác. Nó ít bị ảnh hưởng bởi người dùng, loại văn bản, hay lĩnh vực.
d. Trích rút mối quan hệ

7


Dị tìm mối quan hệ (Relation detection) là q trình tìm ra tất cả các mối quan hệ giữa
các thực thể trong câu bằng cách xây dựng tập luật để trích rút hoặc cũng có thể dựa trên một
mơ hình học máy (như CRFs, HMM,…) Kết quả của quá trình dị tìm mối quan hệ phụ thuộc
rất nhiều vào việc xác định các thực thể trong câu cũng như độ phức tạp của mẫu câu.

2. Bài tốn trích rút thơng tin cá nhân
Định nghĩa bài tốn
2.1.
Bài tốn trích rút thơng tin cá nhân (Personal Information Extraction) là việc trích rút ra
các thông tin quan tâm về các nhân từ một nguồn dữ liệu bán cấu trúc hay khơng có cấu trúc (
ví dụ như: sơ yếu lý lịch, văn bản, trang web,..) và chuyển chúng sang định dạng biểu diễn có
cấu trúc (ví dụ: cơ sở dữ liệu) . Bài tốn trích rút thơng tin cá nhân tương tự như bài tốn trích
thơng tin về tiểu sử (Biographcial Information Extraction). Trích rút thơng tin các nhân là một
bài tốn hẹp của trích rút thơng tin trong đó các thơng tin cần trích rút tập trung vào một các
nhân cụ thể.
Phương pháp giải quyết bài tốn trích rút thơng tin cá nhân

2.2.

Để giải quyết bài tốn trích rút thơng tin cá nhân từ văn bản tiếng Việt áp dụng trên các sơ
yếu lý lịch, nhóm nhóm đề xuất phương pháp như sau:
● Trích rút các thực thể
● Trích rút quan hệ
● Sử dụng biểu thức chính quy
3. Bài tốn trích rút thực thể
3.1. Định nghĩa bài tốn
Nhận dạng thực thể có tên (Named-Entity Recognition - NER) là việc tìm kiếm và
phân lớp các từ, cụm từ trong văn bản vào các nhóm thực thể đã được xác định trước như tên
người, địa danh, tổ chức, ngày tháng, tỷ lệ, …
Hội thảo MUC đã phân bài tốn NER thành 3 loại:
-

Trích rút tên các thực thể bao gồm: tên người, tên tổ chức, tên địa điểm.
Nhận dạng các biểu thức thời gian như “3-7-2001”, “03-07-2001”, “05:45”, ..
Trích rút các biểu thức số, như “5%”, “2m”, “15kg”, …


Bài tốn trích rút thực thể là bài toán đơn giản nhất trong số các bài tốn trích rút thơng
tin. Tuy nhiên, NER là bước cơ bản, quan trọng trước khi tính đến việc giải quyết các bài
toán phức tạp hơn trong lĩnh vực này. Trước khi có thể xác định được các quan hệ giữa các
thực thể ta phải xác định được đâu là các thực thể tham gia vào mối quan hệ đó. Lúc đầu
NER được coi là một thao tác đơn giản trong IE, nhưng ngày nay nó có một vai trị quan
trọng quyết định đến các vấn đề khác có độ phức tạp cao hơn như truy vấn thông tin
(Information Retrieval – IR) hay các quan hệ hỏi đáp (Question Answering Systems - QA).

8


Có nhiều phương pháp được đề xuất để giải quyết cho bài tốn này được chia thành 2
nhóm: nhóm các phương pháp dựa trên tri thức và nhóm các phương pháp dựa trên kĩ thuật
học máy.
4. Bài tốn trích rút mối quan hệ
4.1 Định nghĩa bài tốn
Trích rút mối quan hệ (Relation Extraction -RE) là việc xác định các mối quan hệ
giữa các cặp thực thể trong văn bản.
Ví dụ:
Trích rút mối quan hệ tương đối khác so với trích rút thực thể. Trong khi trích rút thực
thể quan tâm đến 1 chuỗi các từ và được trình bày như các nhãn thực thể thì trích rút mối
quan hệ nêu ra sự liên kết giữa các thực thể này với nhau.
4.2 Trích rút mối quan hệ trong bài tốn trích rút thơng tin cá nhân
Mục đích của đồ án là trích rút ra thơng tin liên quan đến thực thể tên người cần quan
tâm gồm: Tên, số điện thoại, email, kĩ năng.
Trong bài toán này, bước đầu tiên của bài tốn trích rút mối quan hệ giữa các thực thể sẽ
là trích rút thực thể tên người mà văn bản tập trung đề cập đến. Các bước tiếp theo sẽ là trích
rút các thực thể có mối quan hệ với thực thể tên người này. Mối quan hệ ở đây được hiểu là
“điện thoại” (quan hệ giữa tên và số điện thoại), “địa chỉ email” (quan hệ giữa tên và email),

“có kĩ năng” (quan hệ giữa người và kĩ năng).
Sau khi văn bản được nhận dạng thực thể, tác giả sẽ sử dụng các luật, từ điển và biểu thức
chính quy để nhận ra mối quan hệ trên.
5. Ứng dụng của bài tốn trích rút thơng tin cá nhân
Một hệ thống trích rút thơng tin cá nhân tốt có thể được ứng dụng trong nhiều lĩnh vực
khác nhau. Một số trong các ứng dụng đó bao gồm:
● Hệ thống hỏi đáp : Hệ thống hỏi đáp tự động là hệ thống được xây dựng để
thực hiện việc tự động tìm kiếm chính xác câu trả lời từ một tập lớn các tài
liệu cho câu hỏi thay vì đưa ra danh sách các tài liệu.
● Hệ thống tóm tắt: Hệ thống tóm tắt sẽ đưa ra thơng tin về tiểu sử của cá nhân
từ một hoặc nhiều văn bản thay vì đưa ra danh sách các văn bản.
● Hỗ trợ hệ thống tìm kiếm: Hệ thống tìm kiếm thơng tin nhận đầu vào là các
từ khóa và trả về tập tài liệu có chứa các từ khóa đó. Số lượng kết quả trả về
của các máy tìm kiếm thường là rất lớn có khi lên tới hàng nghìn trang web.
Khi tích hợp hệ thống trích rút thơng tin cá nhân vào hệ thống tìm kiếm thì với
các từ khóa là người cùng với các thuộc tính như ngày sinh, cơng việc. Thì hệ
thống tìm kiếm sẽ trả về kết quả sát với u cầu một cách nhanh chóng và
chính xác.

9


6. Chuyển đổi từ PDF thành văn bản
Hầu hết các tệp PDF trơng giống như chúng chứa văn bản có cấu trúc. Nhưng thực tế
là một tệp PDF không chứa bất kỳ thứ gì giống như đoạn văn, câu hoặc thậm chí là từ. Khi
nói đến văn bản, tệp PDF chỉ biết đến các ký tự và vị trí của chúng.
Điều này làm cho việc trích xuất các đoạn văn bản có ý nghĩa từ các tệp PDF trở nên
khó khăn. Các ký tự soạn thảo một đoạn văn không khác gì các ký tự soạn thảo table, footer
hay mơ tả một hình vẽ. Khơng giống như các định dạng tài liệu khác, như tệp .txt hoặc tài
liệu word, định dạng PDF khơng chứa dịng văn bản.

Tài liệu PDF bao gồm một tập hợp các đối tượng cùng mô tả sự xuất hiện của một hoặc
nhiều trang, có thể kèm theo các yếu tố tương tác bổ sung và dữ liệu ứng dụng cấp cao hơn.
Tệp PDF chứa các đối tượng tạo nên tài liệu PDF cùng với thông tin cấu trúc liên quan, tất
cả được biểu diễn dưới dạng một chuỗi byte độc ​lập.
Thuật tốn phân tích bố cục
6.1.
PDFMiner cố gắng tái tạo lại một số cấu trúc đó bằng cách sử dụng phương pháp
phỏng đốn về vị trí của các ký tự. Điều này hoạt động tốt cho các câu và đoạn văn vì có
thể tạo các nhóm ký tự gần đó có ý nghĩa.
Phân tích bố cục bao gồm ba giai đoạn khác nhau: nó nhóm các ký tự thành các từ và
dịng, sau đó nó nhóm các dịng vào các hộp và cuối cùng nó nhóm các hộp văn bản theo
thứ bậc. Các giai đoạn này được thảo luận trong các phần sau. Kết quả đầu ra của phân tích
bố cục là một hệ thống phân cấp có thứ tự của các đối tượng bố cục trên một trang PDF.

Hình 2: Đầu ra của phân tích bố cục là một hệ thống phân cấp của các đối tượng bố trí

Đầu ra của phân tích bố cục phụ thuộc rất nhiều vào một vài tham số. Tất cả các
tham số này là một phần của lớp LAParams .
6.2. Nhóm các kí tự thành các từ và dịng
Bước đầu tiên để chuyển từ ký tự sang văn bản là nhóm các ký tự theo cách có ý
nghĩa. Mỗi ký tự có một tọa độ x và một tọa độ y cho góc dưới bên trái và góc trên bên
phải của nó, tức là hộp giới hạn của nó. Pdfminer.six sử dụng các hộp giới hạn này để
quyết định các ký tự thuộc về nhau.
10


Các ký tự đóng theo cả chiều ngang và chiều dọc được nhóm vào một dịng. Mức độ
gần của chúng sẽ được xác định bởi tham số char_margin (M trong hình) và tham số
line_overlap (khơng phải trong hình). Khoảng cách theo chiều ngang giữa các hộp giới hạn
của hai ký tự phải nhỏ hơn char_margin và chồng chéo theo chiều dọc giữa các hộp giới

hạn phải nhỏ hơn line_overlap.

Các giá trị của char_margin và line_overlap có liên quan đến kích thước của các hộp
giới hạn của các ký tự. Char_margin có liên quan đến chiều rộng tối đa của một trong hai
hộp giới hạn và line_overlap có liên quan đến chiều cao tối thiểu của một trong hai hộp
giới hạn.
Cần phải chèn dấu cách giữa các ký tự vì định dạng PDF khơng có khái niệm về ký
tự khoảng trắng. Một khoảng trắng được chèn nếu các ký tự cách xa nhau hơn so với ký
word_margin (W trong hình). Word_margin có liên quan đến chiều rộng hoặc chiều cao tối
đa của ký tự mới. Có một word_margin nhỏ hơn sẽ tạo ra các từ nhỏ hơn. Lưu ý rằng
word_margin ít nhất phải nhỏ hơn char_margin nếu khơng sẽ khơng có ký tự nào được
phân tách bằng dấu cách.
Kết quả của giai đoạn này là một danh sách các dòng. Mỗi dòng bao gồm một danh
sách các ký tự. Các ký tự này là các ký tự LTChar gốc bắt nguồn từ tệp PDF hoặc các ký
tự LTAnno được chèn thể hiện khoảng cách giữa các từ hoặc dòng mới ở cuối mỗi dịng.
6.3. Nhóm các dịng vào các hộp
Bước thứ hai là nhóm các dịng theo cách có ý nghĩa. Mỗi dịng có một hộp giới hạn
được xác định bởi các hộp giới hạn của các ký tự mà nó chứa. Giống như nhóm các ký tự,
pdfminer.six sử dụng các hộp giới hạn để nhóm các dịng.
Các đường chồng chéo theo chiều ngang và đóng theo chiều dọc được nhóm lại.
Cách đóng các dịng theo chiều dọc sẽ được xác định bởi line_margin . Lề này được chỉ
định tương ứng với chiều cao của hộp giới hạn. Các dòng sẽ gần nhau nếu khoảng cách
giữa đỉnh (xem L1 trong hình) và đáy (xem L2 ) trong hình) của các hộp giới hạn gần nhau
hơn lề dòng tuyệt đối, tức là line_margin nhân với chiều cao của hộp giới hạn.

11


Kết quả của giai đoạn này là một danh sách các hộp văn bản. Mỗi hộp bao gồm một
danh sách các dịng.

6.4. Nhóm các hộp văn bản theo thứ bậc
Bước cuối cùng là nhóm các hộp văn bản theo cách có ý nghĩa. Bước này liên tục
hợp nhất hai hộp văn bản gần nhau nhất.
Độ gần của các hộp giới hạn được tính bằng diện tích nằm giữa hai hộp văn bản
(vùng màu xanh lam trong hình). Nói cách khác, nó là diện tích của hộp giới hạn bao
quanh cả hai dịng, trừ đi diện tích của các hộp giới hạn của các dòng riêng lẻ.

6.5. Làm việc với các kí tự được xoay
Thuật tốn được mơ tả ở trên giả định rằng tất cả các ký tự có cùng hướng. Tuy
nhiên, bất kỳ hướng viết nào cũng có thể thực hiện được trong PDF. Để giải quyết vấn đề
này, pdfminer.six cho phép phát hiện viết dọc bằng tham số detector . Điều này sẽ áp dụng
tất cả các bước nhóm như thể pdf được xoay 90 (hoặc 270) độ.
7. Biểu thức chính quy
Định nghĩa
7.1.
Biểu thức chính quy (Regular Expression) là một chuỗi miêu tả một bộ các chuỗi
khác, theo những quy tắc cú pháp nhất định. Biểu thức chính quy thường được dùng trong
các trình biên tập văn bản và các tiện ích tìm kiếm và xử lý văn bản dựa tên các mẫu được
quy định. Một biểu thức chính quy có thể được thực hiện trong một phần mềm bằng cách
sử dụng một automat hữu hạn đơn định (Deterministic Finite Automation – DFA). DFA là
một trạng thái xác định và không sử dụng cơ chế quay lui.
Nếu sử dụng tốt những kỹ năng về biểu thức chính quy , chúng ta sẽ đơn giản hơn
nhiều trong lập trình và q trình xử lý văn bản và có những vấn đề sẽ không thể giải
quyết được nếu không sử dụng được biểu thức chính quy. Chúng ta có thể sẽ cần đến
hàng trăm thủ tục để trích xuất tất cả các địa chỉ email từ một số tài liệu, đây có thể nói là
12


một việc làm tẻ nhạt và vất vả. Nhưng với biểu thức chính qui ta chỉ cần một số dịng lệnh
hoặc thậm chí một dịng lệnh để làm việc này.

Tuy nhiên, biểu thức chính quy cũng thường đem đến cho người sử dụng những
phiền tối khơng mong muốn như: sử dụng một biểu thức chính quy khơng phù hợp với
biểu thức muốn tìm, hoặc văn bản tìm được bằng biểu thức chính quy khơng phù hợp với
u cầu.
Biểu thức chính quy là một công cụ mạnh mẽ trong việc thao tác và trích xuất văn
bản trên máy tính. Do đó ứng dụng biểu thức chính quy một cách hợp lý sẽ tiết kiệm
nhiều thời gian và cơng sức.
7.2.
Các phép tốn trong biểu thức chính quy
Các phép tốn trong biểu thức chính qui thường xuyên được sử dụng bao gồm:
- Phép “or”: Một thanh dọc sẽ phân tách các thay thế.
Ví dụ: “Nam”| “Nguyễn Nam” thì có thể phù hợp “Nam” hoặc “Nguyễn
Nam”
-

-

Phép “Nhóm”: Ngoặc đơn “(“ dùng để xác định phạm vi và thứ tự các phép
tốn.
Ví dụ: kerim | kerem và ker(i|e)m là tương đương nhau. Cả hai đều miêu tả
tập “kerim” và “kerrem”.
Phép xác định số lượng(quantifier) : Một quantifier sau một token(ví dụ sau
một kí tự) hoặc một nhóm đặc tả cách mà các thành liền trước cho phép được
xảy ra.
Các phép xác định số lượng thường được sử dụng bao gồm:
?

Biểu thị rỗng hay một thành phần đứng trước. Ví dụ : “ab?c” tương
ứng với cả “ac” và “abc” nhưng không phải “abbc”


*

Biểu thị rỗng hay nhiều thành phần đứng trước.Ví dụ: “ab*c” tương
ưng với “ac:, “abc”, “abc”,..

+

Biểu thị một hay nhiều thành phần đứng trước. Ví dụ: “ab+c” tương
ứng với “ac”, “abbc”, “abbbc”… nhưng khơng phải “ac”

.

Biểu thị 1 kí tự bất kì, ngoại trừ ký tự newline

Ứng dụng biểu thức chính quy để trích rút quan hệ
7.3.
Việc sử dụng biểu thức chính quy để trích rút quan hệ dựa trên các mẫu ngữ cảnh chỉ
ra quan hệ ngữ nghĩa giữa các thực thể.
8. Bài tốn trích rút dựa trên xây dựng mẫu
Mẫu (pattern) trích rút trong IE còn được gọi là định nghĩa khái niệm. Mục đích của
bài tốn xây dựng mẫu trích rút là để nắm bắt các thông tin trong các lớp tương tự nhau
13


khi gặp sự khác nhau khi biểu diễn nội dung (đồng nghĩa, cách viết,…). Có hai cách tiếp
cận khác nhau đối với nhiệm vụ này là: xây dựng mẫu (pattern) thủ công và mẫu tự động.
8.1.

Xây dựng mẫu thủ công


Tài liệu văn bản mà chúng ta trích rút gồm có các trường thơng tin chính sau: Tên đầy
đủ (Full name), Địa chỉ Email, Số điện thoại, các kĩ năng.
Giả sử chúng ta cần trích rút thơng tin cụ thể có dạng:
Ví dụ:
Table 1: Bảng thơng tin được trích rút

name

email

Phone_number

skills

Đào Duy Hưng



+84236985495

[‘python’, ‘Java’, ‘Css’, ‘Ai’,
‘Html’, ‘C++’]

Nguyễn Thị Anh

+84589875456

[‘Bootstrap’, ‘Java’, ‘Css’,
‘Javascript’, ‘Sql’]


Trần Duy
Cường

+84589756985

[‘Bootstrap’, ‘Mysql, ‘Laravel,
‘Java, ‘Sql’]



Tiếp theo, chúng ta sẽ xây dựng mỗi kiểu thuộc tính với các mẫu trích rút tách biệt kết
hợp với trên 100 biểu thức chính quy như IsCapitalized, All-Caps, IsDigit, Numeric,
ContainsDash, EndsInPeriod, ConstainsAtSign...Việc mô tả cách trích rút các trường chính
sẽ được liệt kê ở dưới:
8.1.1. Trường tên
Chúng ta sử dụng một tập các luật để phát sinh ra các biến thể (variants) có thể của tên
người đưa ra. Đầu tiên, chúng ta chia tên đã cho thành tên và họ ( first name và last name).
Sau đó chung ta phát sinh hai biến thể sau: tên trước họ và họ trước tên.Ví dụ về các biến thể
xảy ra giữa họ và tên như là: dấu phẩy giữa họ và tên (Lê, Long), một từ xuất hiện giữa hai
tên (Lê Văn Long), tên đầu tiên theo ngay sau là họ (Long Lê), họ theo sau bởi dấu phẩy rồi
mới đến tên (Lê, Long).
Chúng ta cũng cân nhắc tất cả kết hợp của các biến thể với các tước vị sau: Ơng, bà, q
bà, q ơng, Giáo sư, Tổng thống, Bộ trưởng, Thủ tướng, Đại tướng, Bà, Phu nhân, Tiến sĩ,
Vua, Nữ hồng, Phó Tổng thống, Thượng nghị sĩ, Luật sư, Thiếu tá, Thiếu tướng, Tướng,
Thiếu tướng….Ví dụ cho một tên cho trước “Quang Trung”, quá xử lý nói ở trên sẽ nhận ra
chuỗi từ “ơng Quang Trung” như là biến thể của một tên đã cho.
8.1.2. Trường Email

14



Địa chỉ E-mail được chú thích sử dụng biểu thức chính quy.
([^@|\s]+@[^@]+\.[^@|\s]+). Chúng ta cũng loại bỏ các khả năng là các địa chỉ email
quảng cáo xuất hiện nhiều trên web như webmaster@domain or support@domain bằng cách
xây dựng thủ công danh sách dừng (stop list) của địa chỉ email.
Ta nhận thấy rằng mọi người có xu hướng sử dụng trường họ hoặc tên hoặc cả hai trong
địa chỉ e-mail của họ. Các biến thể của tên và họ của cá nhân nào đó cũng được cân nhắc
vào ứng viên cho địa chỉ e-mail
8.1.3. Trường số điện thoại
Chúng ta sử dụng biểu thức chính quy để chú thích các chuỗi có dạng số điện thoại.
(?:(?:\+?([1-9]|[0-9][0-9]|[0-9][0-9][0-9])\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]1|[2
-9][02-8][02-9])\s*\)|([0-9][1-9]|[0-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)?)
?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{5})(?:\s*(?:#|x\.?|ext\.?|exten
sion)\s*(\d+))?
Nếu cụm từ ám chỉ có chứa các từ tel, telephone, phone, mobile, liên lạc, số điện thoại,
di động trong văn cảnh, chúng ta sẽ đánh dấu chuỗi ứng viên như là số điện thoại.
8.2.

Xây dựng mẫu tự động

Chúng ta áp dụng cách tiếp cận tự động cho việc “học” mẫu từ mẫu huấn luyện. Chúng
ta sử dụng cách tiếp cận hai bước: (1) trích rút mẫu và (2)lựa chọn mẫu.
Ở bước trích rút mẫu, chúng ta trích rút các mẫu ứng viên sử dụng dữ liệu mẫu (sample
data). Với mỗi tên trong tập thử nghiệm và với mỗi thuộc tính, chúng ta sẽ trích rút trong
mỗi câu các trang web đã thu thập “họ” của một người và một giá trị thuộc tính.
Sau đó chúng ta xây dựng các mẫu với từ 1 cho tới 5 thẻ (token) trước và sau giá trị
thuộc tính trong câu. Tiếp đến, chúng ta khái quát các mẫu bằng cách thay thế các yếu tố của
tên người bởi thẻ thay thế (placeholders). Và trong khi sử dụng các nhãn NE, ta thay thế bổ
sung các thực thể định danh bởi nhãn của chúng.
Trong bước lựa chọn mẫu, chúng ta lựa chọn các mẫu theo cách tiếp cận kiểm tra chéo

“bỏ đi một” (leave-one-out). Các mẫu trích rút từ tất cả giá trị, nhưng chỉ một tên người
được áp dụng để trích rút các thuộc tính của cùng tên người đã cho. Việc này được lặp lại
cho đến khi mỗi tên người được đưa ra một lần. Tập các mẫu kết quả được áp dụng để trích
rút các thuộc tính cho các tên “ẩn”.
9. Bài tốn trích rút dựa trên luật
Ở mục này, ta sẽ xem xét các thuật toán dựa trên luật cho việc trích rút thơng tin. Có
thể kể ra ở đây một số hệ thống phát triển dựa trên luật như AutoSlog (Riloff, 1993)[2],
(LP)2 (Ciravegna, 2001)[3], Whisk (Soderland, 1999)[4], Rapier (Califf & Mooney,
1998)[5], SRV (Freitag, 1998)[6]... Nói chung phương pháp này được quy về 3 loại: dựa
trên từ điển, dựa trên luật, suy diễn gói(wrapper induction)

15


Phương pháp dựa trên từ điển
9.1.
Với phương pháp này, hệ thống xây dựng một mẫu từ điển, và sau đó sử dụng từ điển
để trích rút các thơng tin khơng cần thiết từ văn bản không gán nhãn. Hệ thống này được
gọi là hệ thống dựa trên từ điển hay dựa trên mơ hình (pattern). Ví dụ như: AutoSlog
(Riloff, 1993)[2] và CRYSTAL(Soderland et al., 1995)[4]. Ví dụ với hệ thống AutoSlog
(Riloff, 1993) là hệ thống đầu tiên học từ điển văn bản trích rút từ các mẫu huấn luyện.
AutoSlog này xây dựng một từ các mẫu trích rút được gọi là các nút khái niệm. Nó định
nghĩa trước một tập gồm 13 mẫu ngơn ngữ, thơng tin có thể là các kiểu cú pháp như: chủ
ngữ, đối tượng trực tiếp, cụm danh từ (NP).
9.2.

Phương pháp dựa trên luật

Khác với phương pháp dựa trên từ điển, phương pháp này sử dụng các luật thay thế
cho từ điển để trích rút thơng tin từ văn bản. Hai thuật tốn học chính của hệ thông này là:

phương pháp top down và bottom up học các luật từ các trường hợp khái quát đến những
trường hợp đặc biệt và ngược lại. Các thuật toán được đề xuất như là (LP)2 (Ciravegna,
2001)[3], iASA (Tang, Li, Luetal., 2005)[7],…
(LP)2 (Ciravegna, 2001)[3] là phương pháp học bottom up. Nó học hai kiểu luật mà
xác định tương ứng biên bắt đầu và biên kết thúc của văn bản được trích rút. Việc học được
thực hiện từ các mẫu trong tập được người sử dụng định nghĩa (tập dữ liệu huấn luyện). Có
ba kiểu luật xác định trong (LP)2 là: luật gán nhãn, luật ngữ cảnh và luật sửa đổi.
9.2.1. Luật gán nhãn
Luật gán nhãn bao gồm phía trái chứa đựng một mẫu các điều kiệntrên một chuỗi các
từ kết nối và và phía phải là một action chèn một chuỗi SGML (Standard Generalized
Markup Language) vào trong văn bản xác định vị trí hiện tại là biên của từ (instance) hay
chưa. Mỗi luật chèn một nhãn SGML riêng lẻ, ví dụ </tagname>. Ngồi ra cịn có các luật
nhận biết tồnbộ việc làm đầy slot (tức là chèn cả hai nhãn <tagname> và </tagname> thậm
chí nhiều slot.

9.2.2. Luật ngữ cảnh
Khi áp dụng cho tập test, các khối quy tắc tốt nhất cung cấp các kết quả tốt nhất về mặt
precision, nhưng nhưng hiệu quả hạn chế về mặt recall. Điều này có nghĩa là các luật chèn
vào nhãn (recall thấp) và nói chung các nhãn như vậy là đúng (precision cao). Để nâng cao
recall mà không ảnh hưởng đến precision cần thiết phải xác định các luật bổ sung.
(LP)2 (Ciravegna, 2001) là một ví dụ về luật ngữ cảnh. (LP)2 học các luật cho việc
chèn các nhãn độc lập so với các nhãn khác. Một số luật sẽ chỉ được dùng để đóng ơ dữ liệu
(slot) khi các luật tốt nhất có thể mở nó nhưng khơng phải để đóng nó. Các luật được lựa
chọn gọi là các luật ngữ cảnh. Ví dụ như xem xét một luật chèn một nhãn </speaker> giữa
các từ khóa viết hoa và chữ thường. Đây khơng phải là một luật tốt nhất vì nó đưa ra recall
16


cao/precison thấp trên tập tài liệu Corpus, nhưng nó là đáng tin cậy nếu chỉ dùng để đóng
một nhãn mở <speaker>.

Sự tin cậy cho các luật ngữ cảnh được tính bằng cách sử dụng tỷ lệ lỗi giống nhau
được sử dụng cho các luật tốt nhất. Tóm lại, các tập các luật gánnhãn bao gồm cả khối luật
tốt nhất và các luật ngữ cảnh.
9.2.3. Luật sửa đổi
Các luật gán nhãn khi áp dụng trên tập mẫu test đưa ra một vài sự khơng chính xác
trong việc phát hiện biên bộ lọc các ơ dữ liệu (slot). Ví dụ cho luật ngữ cảnh “at <time> 4
</time> pm”, ta thấy pm cần là một biểu thức thời gian. Do đó luật suy dẫn (LP)2 cho việc
dịch chuyển các nhãn sai vị trí tới vị trí đúng bằng cách học từ các lỗi tạo ra trong quá trình
gán nhãn tập tài liệu huấn luyện.
9.2.4. Khái quát luật
Việc khái quát hóa là quan trọng khi phân tích đầu vào ngơn ngữ tự nhiên. Nếu không
khái quát, sẽ sinh ra một tập luật lớn bao gồm các luật bao phủ hạn chế số lượng các trường
hợp. Các tập luật như vậy có vẻ rất phù hợp trên tập huấn luyện nhưng giới hạn về độ chính
xác trên mẫu test.
Có hai cách trong đó thuật tốn khái quát các luật suy diễn ban đầu: một mặt các ràng
buộc trong mẫu khởi tạo được bỏ qua.
Ví dụ “ at 4 pm” và “at 5pm” có thể được mơ hình bởi luật “word at,word *, word
pm”.
Trong ví dụ đề cập ở trên (“ at 4pm” và “at 5 pm”), luật (“ word = at, LexCat = Digit,
word = pm”) có thể khái quát tốt hơn luật dùng một ký tự thay thế bằng cách sử dụng các
ràng buộc thay thế với tri thức ngôn ngữ tự nhiên bổ sung.

10. StopWords (từ dừng)
Stopwords hiểu đơn giản là các từ có tần số xuất hiện nhiều như the, to... các từ này
thường mang ít giá trị ý nghĩa và khơng khác nhau nhiều trong các văn bản khác nhau. Ví
dụ từ "the" hay "to" thì ở văn bản nào nó cũng khơng bị thay đổi về ý nghĩa.
Có rất nhiều cách để loại bỏ StopWords nhưng có 2 cách chính là:
- Dùng từ điển
- Dựa theo tần suất xuất hiện của từ
11. Tokenization

Tokenization (tách từ) là một trong những bước quan trọng nhất trong quá trình tiền
xử lý văn bản. Cho dù bạn đang làm việc với các kỹ thuật NLP truyền thống hay sử dụng
các kỹ thuật học sâu nâng cao thì vẫn khơng thể bỏ qua bước này. Nói một cách đơn giản,
17


tokenization là quá trình tách một cụm từ, câu, đoạn văn, một hoặc nhiều tài liệu văn bản
thành các đơn vị nhỏ hơn. Mỗi đơn vị nhỏ hơn này được gọi là Tokens. 
Có thể coi tokens là các khối xây dựng của NLP và tất cả các mơ hình NLP đều xử lý
văn bản thô ở cấp độ các Tokens. Chúng được sử dụng để tạo từ vựng trong một kho ngữ
liệu (một tập dữ liệu trong NLP). Từ vựng này sau đó được chuyển thành số (ID) và giúp
chúng ta lập mơ hình. Tokens có thể là bất cứ thứ gì – một từ (word), một từ phụ (sub-word)
hoặc thậm chí là một ký tự (character). Các thuật tốn khác nhau tuân theo các quy trình
khác nhau trong việc thực hiện mã hóa và sự khác biệt giữa ba loại tokens này sẽ được chỉ
ra dưới đây.
Ví dụ: Câu gốc là “Let us learn tokenization.”:
Thuật tốn mã hóa dựa trên từ (word-based tokenization algorithm) sẽ chia câu
thành các từ: [“Let”, “us”, “learn”, “tokenization.”]
Thuật tốn mã hóa dựa trên từ phụ (subword-based tokenization algorithm) sẽ chia
câu thành các từ khóa phụ: [“Let”, “us”, “learn”, “token”, “ization.”]
Thuật tốn mã hóa dựa trên ký tự (character-based tokenization algorithm) sẽ chia
câu thành các ký tự, ở đây là từng chữ cái một.
Ba kỹ thuật mã hóa này hoạt động khác nhau và có những ưu điểm và nhược điểm riêng
sẽ được phân tích cụ thể bên dưới.
11.1. Word-based tokenization
Đây là kĩ thuật tokenization được sử dụng phổ biến trong phân tích văn bản. Nó chia
một đoạn văn bản thành các từ (ví dụ tiếng Anh) hoặc âm tiết (ví dụ tiếng Việt) dựa trên
dấu phân cách. Dấu phân cách hay được dùng chính là dấu cách trắng. Tuy nhiên, cũng có
thể tách văn bản khơng theo dấu phân cách. Ví dụ tách từ trong tiếng Việt vì một từ trong
tiếng Việt có thể chứa 2 hoặc 3 âm tiết được nối với nhau bởi dấu cách trắng.

Tách từ có thể được thực hiện dễ dàng bằng cách sử dụng phương thức split () của
RegEx hoặc Python. Ngồi ra, có rất nhiều thư viện Python – NLTK, spaCy, Keras,
Gensim, có thể giúp bạn thực hiện việc này một cách thuận tiện.
Thực tế, các mô hình NLP sử dụng các phương pháp tách từ phù hợp theo từng ngơn
ngữ. Tuỳ thuộc vào từng bài tốn, mà cùng một văn bản có thể được xử lý dưới các loại
tokens khác nhau. Mỗi token thường có tính duy nhất và được biểu diễn bằng một ID, các
ID này là một cách mã hoá hay cách định danh token trên không gian số.
Hạn chế của kỹ thuật này là nó dẫn đến một kho ngữ liệu khổng lồ và một lượng từ
vựng lớn, khiến mơ hình cồng kềnh hơn và địi hỏi nhiều tài ngun tính tốn hơn. Bên
cạnh đó, một hạn chế nữa là liên quan đến các từ sai chính tả. Nếu kho ngữ liệu có từ
“knowledge” viết sai chính tả thành “knowldge”, mơ hình sẽ gán token OOV cho từ sau đó.
18


Do đó, để giải quyết tất cả những vấn đề này, các nhà nghiên cứu đã đưa ra kỹ thuật mã hóa
dựa trên ký tự.
11.2. Character-based tokenization
Mã hóa dựa trên ký tự chia văn bản thô thành các ký tự riêng lẻ. Logic đằng sau mã
hóa này là một ngơn ngữ có nhiều từ khác nhau nhưng có một số ký tự cố định. Điều này
dẫn đến một lượng từ vựng rất nhỏ. Ví dụ tiếng Anh có 256 ký tự khác nhau (chữ cái, số,
ký tự đặc biệt) trong khi chứa gần 170.000 từ trong vốn từ vựng. Do đó, mã hóa dựa trên ký
tự sẽ sử dụng ít token hơn so với mã hóa dựa trên từ.
Một trong những lợi thế chính của mã hóa dựa trên ký tự là sẽ khơng có hoặc rất ít từ
khơng xác định hoặc OOV. Do đó, nó có thể biểu diễn các từ chưa biết (những từ khơng
được nhìn thấy trong quá trình huấn luyện) bằng cách biểu diễn cho mỗi ký tự. Một ưu
điểm khác là các từ sai chính tả có thể được viết đúng chính tả lại, thay vì có thể đánh dấu
chúng là mã thơng báo OOV và làm mất thơng tin.
Loại mã hóa này khá đơn giản và có thể làm giảm độ phức tạp của bộ nhớ và thời gian.
Vì vậy, liệu nó có phải thuật tốn tốt nhất hay hồn hảo để tách từ? Câu trả lời là khơng (ít
nhất là đối với Ngơn ngữ tiếng Anh)! Một ký tự thường không mang bất kỳ ý nghĩa hoặc

thơng tin nào như một từ. Ngồi ra, tuy kỹ thuật này giúp giảm kích thước từ vựng nhưng
lại làm tăng độ dài chuỗi trong mã hóa dựa trên ký tự. Mỗi từ được chia thành từng ký tự và
do đó, chuỗi mã hóa dài hơn nhiều so với văn bản thơ ban đầu. Vì vậy, có thể thấy, dù đã
giải quyết được rất nhiều thách thức mà mã hóa dựa trên từ gặp phải, mã hóa dựa trên ký tự
vẫn có một số vấn đề nhất định.
11.3.

Subword-based tokenization

Một kỹ thuật phổ biến khác là mã hóa dựa trên từ khóa phụ. Đây là một giải pháp nằm
giữa mã hóa dựa trên từ và ký tự. Ý tưởng chính là giải quyết đồng thời các vấn đề của mã
hóa dựa trên từ (kích thước từ vựng rất lớn, có nhiều tokens OOV, sự khác biệt trong ý
nghĩa của các từ rất giống nhau) và mã hóa dựa trên ký tự (chuỗi rất dài và token riêng lẻ ít
ý nghĩa hơn).
Các thuật tốn mã hóa dựa trên từ khóa phụ sử dụng các ngun tắc sau.
-

Khơng chia các từ thường dùng thành các từ phụ nhỏ hơn.
Chia các từ hiếm thành các từ phụ có ý nghĩa.

Hầu hết các mơ hình tiếng Anh đều sử dụng các dạng thuật tốn của mã hóa từ phụ,
trong đó, phổ biến là WordPeces được sử dụng bởi BERT và DistilBERT, Unigram của
XLNet và ALBERT, và Bye-Pair Encoding của GPT-2 và RoBERTa.
Mã hóa dựa trên từ khóa phụ cho phép mơ hình có kích thước từ vựng phù hợp và
cũng có thể học các biểu diễn độc lập theo ngữ cảnh có ý nghĩa. Mơ hình thậm chí có thể
xử lý một từ mà nó chưa từng thấy trước đây vì sự phân tách có thể dẫn đến các từ phụ đã
biết.
19



Như vậy, trên đây là cách các phương pháp mã hóa phát triển theo thời gian để đáp ứng
nhu cầu ngày càng tăng của NLP và đưa ra các giải pháp tốt hơn cho các vấn đề.
Các kỹ thuật kể trên cũng đang được VinBigdata ứng dụng trực tiếp trong q trình
nghiên cứu, phân tích dữ liệu tiếng nói và chữ viết, từ đó, giải quyết các bài tốn về nhận
dạng/tổng hợp tiếng nói, dịch máy, hỏi đáp tự động,…. Đây là cơ sở để phát triển nhiều giải
pháp mang tính ứng dụng cao như chatbot, voicebot, trợ lý ảo đa năng,…, phục vụ mục tiêu
gia tăng trải nghiệm người dùng và tối ưu hóa hiệu quả sản xuất, kinh doanh.
12. Phương pháp đánh giá kết quả
Hệ thống trích rút thực thể được đánh giá chất lượng thông qua 3 độ đo: độ chính xác P
(precision), độ bao phủ R (recall) và độ đo F (F-measure).
Độ chính các Recall (R): là phân số thể hiện tỷ lệ thông tin được rút trích đúng. Bao
nhiêu phần trăm thơng tin được rút là đúng. Tỷ lệ giữa số lượng câu trả lời đúng tìm thấy với
tổng số câu trả lời đúng có thể.
Độ tin cậy Precision (P): là độ đo hay phân số thể hiện khả năng tin cậy của thông tin
được trích xuât. Tỷ lệ giữa tổng số câu trả lời đúng tìm thấy với tổng số câu trả lời tìm thấy.
Tuy nhiên, chỉ có Precision hay chỉ có Recall thì khơng đánh giá được chất lượng mơ
hình.
Chỉ dùng Precision, mơ hình chỉ đưa ra dự đốn cho một điểm mà nó chắc chắn nhất.
Khi đó Precision = 1, tuy nhiên ta khơng thể nói là mơ hình này tốt.
Chỉ dùng Recall, nếu mơ hình dự đốn tất cả các điểm đều là positive. Khi đó Recall =
1, tuy nhiên ta cũng khơng thể nói đây là mơ hình tốt.
Khi đó F- measure được sử dụng. F- measure là trung bình điều hòa (harmonic mean)
của precision và recall (giả sử hai đại lượng này khác 0.
Ba độ đo này được tinh tốn theo các cơng thức sau (mỗi kiểu thực thể ứng với một bộ
các độ đo này):
𝑃=

𝑐𝑜𝑟𝑟𝑒𝑐𝑡
𝑐𝑜𝑟𝑟𝑒𝑐𝑡+𝑖𝑛𝑐𝑜𝑟𝑟𝑒𝑐𝑡+𝑠𝑝𝑢𝑟𝑖𝑜𝑢𝑠


𝑅=

𝑐𝑜𝑟𝑟𝑒𝑐𝑡
𝑐𝑜𝑟𝑟𝑒𝑐𝑡+𝑖𝑛𝑐𝑜𝑟𝑟𝑒𝑐𝑡+𝑚𝑖𝑠𝑠𝑖𝑛𝑔

𝐹=

2*𝑃*𝑅
𝑃+𝑅

Ý nghĩa của các giá trị correct, incorrect, missing và spurious được định nghĩa như sau:
Table 2: Bảng giải thích ý nghĩa trong cơng thức

Giá trị

Ý nghĩa

Correct

Số trường hợp được gán đúng

Incorrect

Số trường hợp bị gán sai

20


Missing


Số trường hợp bị thiếu

Spurious

Số trường hợp bị thừa

21


CHƯƠNG III: THỰC NGHIỆM
1. Đọc sơ yếu lý lịch
Sơ yếu lý lịch thường ở dạng .pdf. Vì vậy, thách thức chính của nhóm là đọc sơ yếu lý
lịch và chuyển đổi nó thành văn bản đơn giản. Đối với điều này, nhóm đã sử dụng thuật tốn
phân tích bố cục đã trình bày ở trên.
2. Tiền xử lý
Khi chuyển từ định dạng .pdf, văn bản có dạng như sau:
“Phan Huy Bảo \n \nBack-end PHP \n \nNgày sinh: 19-01-2001 \n \nGiới tính: Nam \n
\nĐiện thoại: 0983785181 \n \nEmail: \n \nĐịa chỉ: \n \n \nMỤC TIÊU NGHỀ NGHIỆP \n \n
\n- Học tập và tiếp thu kinh nghiệm chun mơn. Hồn thiện bản thân. Trải \n\n72 Trần Đại
Nghĩa, Hai Bà Trưng,Hà Nội \n\ \n\nnghiệm mơi trường làm việc
chun nghiệp. \n \n- Trong vịng 1 năm tới sẽ trở thành 1 lập trình viên PHP chuyên nghiệp
\n \nvà học thêm NodeJS. \n \nHỌC VẤN \n \n \n08-2019 - 02-2022 \n \n \n\nChuyên ngành:
Khoa học Máy tính \n\nĐẠI HỌC XÂY DỰNG HÀ \n\nTên bằng cấp: Kỹ sư \n\nIt-lpus
\n\nHọc viên \n\nMô tả: \n\n \nKINH NGHIỆM LÀM VIỆC \n \n \n10-2021 - 02-2022 \n \n
\n \n \n \n \n \n \n \n \n\nĐỒ ÁN TỐT NGHIỆP KHÓA HỌC LẬP TRÌNH WEB PHP
FULL- \n\nSTACK Thành tích đạt được: \n\nShop bán hàng quần áo online AlloShop \n\nLên ý tưởng dự án, chức năng dự án, ... \n\n+ Shop bán hàng online gồm có: giao diện và
chức năng cho phía client và admin. \n\n+ Chức năng chính: mua hàng, đặt… “
Nhiệm vụ lúc này cần làm đó là xử lý các ký tự gây nhiễu, cụ thể thấy rõ ở đây là các ký
tự “\n” là các ký tự xuống dịng, ngồi ra ở một số văn bản khác chứa ký tư “\x0c” cũng cần
được xử lý bằng cách xóa bỏ khỏi văn bản. Sau khi xóa bỏ các ký tự nhiễu, văn bản lúc này

chỉ còn
“Phan Huy Bảo Back-end PHP Ngày sinh: 19-01-2001 Giới tính: Nam Điện thoại:
0983785181 Email: Địa chỉ: MỤC TIÊU NGHỀ NGHIỆP - Học tập và tiếp thu kinh
nghiệm chun mơn. Hồn thiện bản thân. Trải 72 Trần Đại Nghĩa, Hai Bà Trưng,Hà Nội
nghiệm môi trường làm việc chuyên nghiệp. - Trong vòng 1 năm tới
sẽ trở thành 1 lập trình viên PHP chuyên nghiệp và học thêm NodeJS. HỌC VẤN 08-2019
- 02-2022 Chuyên ngành: Khoa học Máy tính ĐẠI HỌC XÂY DỰNG HÀ Tên bằng cấp:
Kỹ sư It-lpus Học viên Mô tả: KINH NGHIỆM LÀM VIỆC 10-2021 - 02-2022
ĐỒ
ÁN TỐT NGHIỆP KHÓA HỌC LẬP TRÌNH WEB PHP FULL- STACK Thành tích đạt
được: Shop bán hàng quần áo online AlloShop - Lên ý tưởng dự án, chức năng dự án, ... +
Shop bán hàng online gồm có: giao diện và chức năng cho phía client và admin. + Chức năng
chính: mua hàng, đặt hàng, xem chi tiết sản phẩm, quản lý sản phẩm cho admin, quản lý đơn
hàng, xem chi tiết đơn hàng, .... - Phân chia cơng việc, hồn thiện chức năn…”
3. Trích xuất tên
Để trích xuất tên từ sơ yếu lý lịch, chúng ta có thể sử dụng các biểu thức chính quy.
Nhưng nhóm sẽ sử dụng một cơng cụ tinh vi hơn gọi là Spacy. Spacy là một mô-đun xử lý
ngôn ngữ tự nhiên cường độ công nghiệp được sử dụng để xử lý văn bản và ngơn ngữ. Nó đi
22


kèm với các mơ hình được đào tạo trước để gắn thẻ, phân tích cú pháp và nhận dạng thực thể.
Thông thường họ và tên sẽ là các đại từ riêng, vì vậy nhóm sẽ xây dựng mẫu bao gồm 3 danh
từ riêng liên tiếp: {'POS': 'PROPN'}, {'POS': 'PROPN'}, {'POS': 'PROPN'}
4. Trích xuất số điện thoại
Để trích xuất số điện thoại, nhóm sẽ sử dụng các biểu thức chính quy. Số điện thoại cũng
có nhiều hình thức như (+84)123456780 hoặc +84123456780 hoặc +84 123 456 780 hoặc
+91 123456780. Do đó, chúng ta cần xác định một biểu thức chính quy chung có thể khớp
với tất cả các kết hợp tương tự của số điện thoại. Nhờ mẫu này, nhóm đã có thể trích xuất số
điện thoại từ văn bản sơ yếu lý lịch bằng cách thực hiện các tinh chỉnh nhẹ.

Mẫu biểu thức chính quy có dạng như sau:
(?:(?:\+?([1-9]|[0-9][0-9]|[0-9][0-9][0-9])\s*(?:[.-]\s*)?)?(?:\(\s*([2-9]1[02-9]|[2-9][02-8]
1|[2-9][02-8][02-9])\s*\)|([0-9][1-9]|[0-9]1[02-9]|[2-9][02-8]1|[2-9][02-8][02-9]))\s*(?:[.-]\s*)
?)?([2-9]1[02-9]|[2-9][02-9]1|[2-9][02-9]{2})\s*(?:[.-]\s*)?([0-9]{5})(?:\s*(?:#|x\.?|ext\.?|exte
nsion)\s*(\d+))?
5. Trích xuất Email
Để trích xuất email từ sơ yếu lý lịch, nhóm có thể sử dụng một cách tiếp cận tương tự
mà nhóm đã sử dụng để trích xuất số điện thoại di động. Email có một biểu mẫu cố định, tức
là một chuỗi chữ và số sẽ theo một ký hiệu @, một lần nữa theo sau là một chuỗi, theo sau là
một dấu . (chấm) và một chuỗi ở cuối. Chúng ta có thể sử dụng biểu thức chính quy để trích
xuất biểu thức như vậy từ văn bản.
Mẫu biểu thức chính quy có dạng như sau:
([^@|\s]+@[^@]+\.[^@|\s]+)
6. Trích xuất kỹ năng
Bây giờ nhóm đã trích xuất một số thơng tin cơ bản về người đó, hãy trích xuất thứ quan
trọng nhất từ ​quan điểm của nhà tuyển dụng, tức là các kỹ năng. Chúng ta có thể trích xuất
các kỹ năng bằng cách sử dụng một kỹ thuật gọi là Tokenization. Tokenization chỉ đơn giản
là chia văn bản thành các đoạn văn, đoạn văn thành các câu, câu thành từ. Do đó, có hai kỹ
thuật chính của mã thơng báo: Sentence Tokenization và Word Tokenization.
Trước khi thực hiện Tokenization, chúng ta sẽ phải tạo một bộ dữ liệu mà chúng ta có
thể so sánh các kỹ năng trong một sơ yếu lý lịch cụ thể. Đối với điều này, nhóm sẽ tạo một
tệp giá trị phân tách dấu phẩy (.csv) với các kỹ năng mong muốn. Ví dụ: nếu nhóm là nhà
tuyển dụng và nhóm đang tìm kiếm một ứng cử viên với các kỹ năng bao gồm NLP, ML, AI
thì nhóm có thể tạo một tệp CSV có nội dung:
machine learning,ml,artificial intelligence,ai,natural language processing,nlp
Giả sử nhóm đã đưa ra tệp trên, với tên file là Skills.csv, nhóm có thể hướng đến xa hơn
để mã hóa văn bản được trích xuất của nhóm và so sánh các kỹ năng với các kỹ năng trong
tệp Skills.csv. Hiện tại tệp skills.csv của nhóm bao gồm 99 kỹ năng khác nhau mà nhóm có
23



thể tìm ra được. Để đọc tệp CSV, nhóm sẽ sử dụng mơ-đun Pandas. Sau khi đọc tệp, nhóm sẽ
xóa tất cả các từ dừng (Stop words) khỏi văn bản sơ yếu lý lịch của nhóm. Nói tóm lại, một
từ dừng là một từ không thay đổi ý nghĩa của câu ngay cả khi nó bị xóa.
CHƯƠNG IV: KẾT QUẢ
Nhóm đã xây dựng tập kiểm thử thủ công từ 15 mẫu sơ yếu lý lịch khác nhau và đánh
giá theo phương pháp đánh giá đã trình bày ở chương II.
Table 3: Bảng kết quả

Thực thể

Trường
Trường
hợp đúng hợp sai

Trường
Trường
hợp thiếu hợp thừa

Precision Recall

F1-meas
ure

Họ và
tên

8

4


4

0

66.67%

50%

57.14%

Email

15

0

0

0

100%

100%

100%

Số điện
thoại


15

0

0

0

100%

100%

100%

Nhận xét: Sử dụng biểu thức chính quy để trích xuất thực thể email, số điện thoại cho ra kết
quả vơ cùng chính xác. Cịn thực thể họ và tên việc trích xuất theo mẫu cho ra kết quả không
được cao, sau khi xem trực tiếp dữ liệu được trích xuất ra, nhóm nhận thấy rằng có một số sơ
yếu lý lịch khơng trích dẫn được họ và tên, họ và tên bị nhầm lẫn với tên địa chỉ.
Ví dụ: Trong sơ yếu lý lịch có địa chỉ là Hai Bà Trưng thì hệ thống sẽ trích xuất “Hai Bà
Trưng” là họ và tên thay vì họ và tên thực tế là “Phạm Huy Hưng”.
Riêng thực thể kỹ năng nhóm chưa tìm được thang đo phù hợp để đánh giá bởi vì một cá
nhân có nhiều kỹ năng, có kỹ năng trích xuất đúng, có kỹ năng trích xuất thiếu, có kỹ năng
trích xuất thừa.

24


×