You are on page 1of 27

Đồ án tốt nghiệp đại học

Hệ thống thu thập và xử lý dữ liệu


tuyển dụng việc làm trực tuyến

Sinh viên thực hiện : Trương Đặng Anh Dũng


Giảng viên hướng dẫn: TS. Trần Việt Trung

1
Nội dung trình bày

• Lý do chọn đề tài

• Đề xuất hướng giải quyết và tổng quan hệ thống

• Xây dựng và triển khai hệ thống

• Đánh giá hệ thống

• Kết luận

2
Lý do chọn đề tài
74,4 % lao động
có trình độ từ trung cấp trở lên thất nghiệp Tỉ lệ thiếu hụt nhân sự
Số lượng lao động trẻ thất nghiệp theo quy mô công ty

74.4 % 25.6 %

440.4 NGHÌN LAO ĐỘNG


87% 87%
80%
41,8 % lao động
trình độ Đại học, Cao đẳng
có nhu cầu tìm việc làm
Số lượng lao động có nhu cầu tìm việc

41.8 % 58.2 %
501 - 1000 1001 - 5000 > 5000
25.4 NGHÌN LAO ĐỘNG Số lượng nhân viên

Nghịch lý : Rất nhiều lao động được đào tạo có trình độ nhưng đang thất nghiệp
(hoặc có nhu cầu tìm việc). Ngược lại các công ty lớn lại không tìm đủ được nhân
sự.

Nguyên nhân:
Thị trường đang thiếu là lời giải cho bài toán về thông tin tuyển dụng lao động.

3
Đề xuất hướng giải quyết
INTERNET
Tin đăng tuyển dụng

Hệ thống thu thập và xử lý dữ liệu


tuyển dụng việc làm trực tuyến

Phân tích tổng quan Phân tích công việc


Phân tích công ty
thị trường tuyển dụng

4
Tổng quan hệ thống
Mô đun thu thập dữ liệu: thu thập dữ liệu tin
tuyển dụng định kì và liên tục

Mô đun xử lý dữ liệu phân tán:


• Xử lý trùng lặp: Thực hiện loại bỏ các tin
tuyển dụng trùng lặp trong bộ dữ liệu thu
thập.
• Phân tích dữ liệu: xử lý và phân tích tập dữ
liệu tin tuyển dụng

Labor Market Analysis Database: lưu trữ số


liệu phân tích và hỗ trợ đưa ra các báo cáo,
phân tích cho thị trường tuyển dụng lao động.

Hai bộ lập lịch:


• Bộ lập lịch thu thập
• Bộ lập lịch xử lý dữ liệu.

5
Mô đun thu thập dữ liệu tin đăng tuyển dụng
Tổng quan
• Dựa trên khung làm việc Scrapy

Timviecnhanh

CareerBuilder

CareerLink

Mywork

Viectotnhat

6
Mô đun thu thập dữ liệu tin đăng tuyển dụng
Xử lý yêu cầu trùng lặp

• Mục đích: tránh việc thu thập cùng 1 đường dẫn chứa tin tuyển dụng 2 lần khi
mô đun thực hiện cập nhập dữ liệu
• Ý tưởng thực hiện : khởi tạo danh sách đường dẫn đến các tin tuyển dụng đã thu
thập từ tập dữ liệu trong MongoDB

Spider thu thập tin tuyển dụng


• Lọc đường dẫn chứa tin tuyển dụng: bằng các biểu thức chính quy trên đường dẫn
• Trích rút dữ liệu: 24 trường dữ liệu trích rút

7
Mô đun thu thập dữ liệu tin đăng tuyển dụng
Trường dữ liệu của một tin tuyển dụng : 24 trường

URL Đường dẫn trang thu thập


Thông tin cơ bản
TimestampISODate Thời điểm thu thập
Title
Job Descriptions
Thông tin công việc tuyển Job Requirements
dụng Job Benefits
Salary
Job Number Available
Company Name Trích xuất bằng
Thông tin công ty tuyển dụng Company Address biểu thức css và xpath
Company Info
Update time, Working Location,
Sectors, Job Level, Job
Experience Years, Application
Thông tin kèm theo Deadline, Required Gender
Specific, Required Age Specific,
Job Attributes, Job Trial Period,
Job Formality, Skills

8
Mô đun kiểm tra trùng lặp dữ liệu
Mục đích

Loại bỏ các tin tuyển dụng được đăng nhiều lần trên nhiều tên miền
tuyển dụng khác nhau và có nội dung trùng lặp hoặc gần trùng lặp

Công nghệ sử dụng : Simhash, Milvus, Spark

Luồng xử lý

9
Mô đun kiểm tra trùng lặp dữ liệu
Tính giá trị băm định danh

1 2 … N Trường dữ liệu sử
dụng
Phần tiêu
Title
đề
Job Descriptions,
Phần nội
Job Requirements,
Tính giá trị băm định danh simhash Job Benefits
dung

Tin tuyển dụng

1 2 … N
GTB Tiêu đề GTB Tiêu đề
GTB Tiêu đề GTB Tiêu đề
Xử lý trùng lặp
GTB Nội dung GTB Nội dung GTB Nội dung GTB Nội dung

Tập giá Tập giá


trị băm trị băm Lưu trữ Milvus
tiêu đề nội dung

10
Mô đun kiểm tra trùng lặp dữ liệu
Cài đặt xử lý trùng lặp
1 2 … N

GTB Tiêu đề GTB Tiêu đề GTB Tiêu đề GTB Tiêu đề

GTB Nội dung GTB Nội dung GTB Nội dung GTB Nội dung

Truy vấn từ Milvus ra 200 tin tuyển dụng có nội dung tương
Milvus
đồng nhất.

So sánh tin tuyển dụng đó với 200 tin tuyển dụng trả ra có
nội dung tương đồng với bộ điều kiện đánh giá trùng lặp:
• Biểu thức đánh giá độ tương đồng: Danh sách id
tin tuyển dụng trùng lặp
𝑘𝑐_𝑛ộ𝑖_𝑑𝑢𝑛𝑔 ∗ 0.7 + 𝑘𝑐_𝑡𝑖ê𝑢_đề ∗ 0.3 <= 2.1 (∗)
• Tên công ty tuyển dụng giống nhau. (company_name)
• Địa điểm công ty giống nhau. (company_address)
• Địa điểm làm việc giống nhau. (working_location) Tập tin tuyển dụng mới

1 2 … N n
GTB Tiêu đề GTB Tiêu đề GTB Tiêu đề GTB Tiêu đề
1
drop id 1
GTB Nội dung GTB Nội dung GTB Nội dung GTB Nội dung

11
Mô đun phân tích dữ liệu
Thiết kế cơ sở dữ liệu Labor Market Analysis Database
Cơ sở dữ liệu Labor Market Analysis Database được thiết kế như một Data
Warehouse và mô hình ROLAP.

Lược đồ bảng Fact :

12
Mô đun phân tích dữ liệu
Thiết kế cơ sở dữ liệu Labor Market Analysis Database

Lược đồ bảng các chiều :

13
Mô đun phân tích dữ liệu
Thiết kế cơ sở dữ liệu Labor Market Analysis Database

Nhóm bảng tổng hợp số liệu:


Các phân tích quan trọng trong hệ
thống và giúp tăng tốc truy vấn của
cơ sở dữ liệu

Gồm 18 bảng với các phân tích liên


quan đến số lượng tuyển dụng (mức
lương) cao nhất theo khu vực, ngành
nghề, công ty, công việc và kỹ năng
theo từng tháng.
.

14
Mô đun phân tích dữ liệu

Luồng xử lý

15
Mô đun phân tích dữ liệu
Phân tích dữ liệu – Chuẩn hóa và tổng hợp dữ liệu
Khung dữ liệu tin đăng tuyển dụng
24 cột + 1 id_
… 100 partition

transfrom (trích xuất và chuẩn hóa)

… 14 cột
100 partition

action (tổng hợp và gom nhóm)

12 DF - bảng chiều 4 DF - bảng Fact

16
Mô đun phân tích dữ liệu
bảng Fact (số liệu quá khứ)
Phân tích dữ liệu – Nạp dữ liệu
DF 12 bảng chiều DF 4 bảng Fact

window + orderby

rank() + filter()

Tính tỉ lệ thay đổi


Thay thế (growth)
Lọc bản ghi
giá trị bằng id
mới
tương ứng

Bảng tổng hợp

Larbor Market Analysis Database

17
Lập lịch các mô đun

Công cụ lập lịch Cron

Mô đun thu thập dữ liệu được thực hiện vào đêm chủ nhật
hàng tuần

Mô đun xử lý dữ liệu phân tán bao gồm mô đun kiểm tra trùng
lặp và phân tích dữ liệu thực hiện tuần tự vào thực hiện vào
đêm cuối cùng của mỗi tháng.

18
Triển khai hệ thống
Amazon Web Services
Amazon Web Services (AWS) là nền tảng đám mây toàn diện và được sử dụng rộng
rãi nhất, cung cấp trên 175 dịch vụ đầy đủ tính năng từ các trung tâm dữ liệu trên toàn
thế giới.

Một số dịch vụ AWS cung cấp


• Compute: Tính toán • Analysis: Phân tích
• Storage: Lưu trữ • Application Integration: Tích hợp ứng dụng
• Networking & Content Delivery: Phân phối • Business Productivity: Năng suất nghiệp vụ
mạng và nội dung • Công nghệ thức tế ảo (AR & VR)
• Management Tools: Các công cụ quản lý • Machine Learning: Học máy
• Developer Tools: Các công cụ phát triển

19
Triển khai hệ thống
Danh sách các máy EC2 sử dụng triển khai hệ thống
STT Tên máy chủ vCPU Bộ nhớ Dung lượng
Mục đích sử dụng
lưu trữ
1 Services 2 16 GB 30 + 22 GB Triển khai các dịch
(yourway-services) vụ ứng dụng và
mô đun thu thập
dữ liệu.
2 Database 2 5.25 GB 50 + 100 GB Triển khai cơ sở
(yourway-database) dữ liệu được thiết
kế cho MongoDB
và Mysql để lưu
trữ giữ liệu.
3 HD-1 8 32 GB 32 GB
(yourway-HD-1)
Triển khai cụm
4 HD-2 8 32 GB 32 GB máy Hadoop cho
(yourway-HD-2) các tác vụ phân
5 HD-3 8 32 GB 32 GB tán.
(yourway-HD-3)

20
Triển khai hệ thống

Kiến trúc
dịch vụ sử dụng
triển khai đầy đủ
hệ thống trên
AWS

21
Thử nghiệm điều kiện trùng lặp Bộ dữ liệu
Biểu thức đánh giá độ tương đồng 2500 tin tuyển dụng
𝑘𝑐_noi_dung ∗ 0.6 + kc_tiêu_đề ∗ 0.4 <= 𝑐 (1)
Ngưỡng thử Số tin tuyển Số tin tuyển Số tin tuyển Độ chính xác
nghiệm (c) dụng trùng lặp dụng đúng là dụng không phải
trả ra trùng lặp trùng lặp
<= 1.6 16 16 0 100%
<= 2.1 26 21 5 80.77%
<= 2.4 26 21 5 80.77%

𝑘𝑐_noi_dung ∗ 0.8 + kc_tieu_de ∗ 0.2 <= 𝑐 (2)


<= 1.6 146 102 44 69.86%
<= 2.1 149 103 46 69.13%
<= 2.4 156 107 49 68.59%

𝑘𝑐_noi_dung ∗ 0.7 + kc_tieu_de ∗ 0.3 <= 𝑐 (∗)


<= 1.6 24 20 4 83.33%
<= 2.1 96 79 17 82,29%
<= 2.4 148 99 49 66.89%

22
Đánh giá
Kết quả đạt được

Mô đun thu thập dữ liệu:


• Tổng số tin tuyển dụng thu thập được (từ 8/2020 đến đầu tháng 1/2021):
226403 tin tuyển dụng.
• Trung bình số tin tuyển thu thập / một lần chạy: 10000 tin.
• Thời gian thu thập trung bình trong một lần chạy: 90 phút - 105 phút.

Mô đun phân tích dữ liệu


Số phân tích có thể đưa ra: hơn 100 phân tích:

Các phân tích điển hình:


• Số lượng tuyển dụng và mức lương tuyển dụng khu vực theo thời gian.
• Công ty tuyển dụng nhiều nhất theo ngành nghề hoặc khu vực.
• Kỹ năng và mức lương tuyển dụng của ngành nghề theo thời gian.
• …

23
Đánh giá
Kết quả đạt được

Thống kê số lượng tuyển dụng


và mức lương trung bình
bốn tháng cuối năm toàn quốc

Thống kê các khu vực có số


lượng tuyển dụng lớn nhất
ngành Công nghệ thông tin
trong tháng 10/2020

24
Đánh giá
Mô đun thu thập dữ liệu
• Mô đun chạy ổn định và định kì hàng tuần thu thập dữ liệu.
• Tốc độ thu thập nhanh và không gây ảnh hưởng đến việc vận hành của trang.
• Thu thập đầy đủ tin tuyển dụng của trong mỗi trang hiển thị.
• Chưa tối ưu hết nguồn thông tin có thể.
• Cần bỏ ra nhiều thời gian và công sức để bảo trì và việc mở rộng trang thu thập cũng
khó khăn hơn.

Mô đun kiểm tra trùng lặp dữ liệu


• Phát hiện được nhiều tin tuyển dụng trùng lặp trong bộ dữ liệu
• Khối lượng mất mát dữ liệu và số lượng trùng lặp vẫn còn tồn tại rất nhiều sau khi xử lý
nếu xử lý bộ dữ liệu lớn (độ chính xác 82,29%)

Mô đun phân tích dữ liệu và cơ sở dữ liệu


• Tốc độ xử lý phân tích nhanh với môi trường phân tán.
• Số liệu phân tích trong cơ sở dữ liệu phản ánh cơ bản về thị trường tuyển dụng lao
động Việt Nam. Luôn cập nhập định kỳ và mới nhất.
• Các chiều thông tin trong trích rút và chuẩn hóa chủ yếu bằng luật
=> có thể làm mất mát thông tin.

25
Kết luận
Về kiến thức
• Kiến thức về các thuật toan và công nghệ: Simhash, Scrapy, PySpark,…
• Kiến thức triển khai một số dịch vụ của Amazon Web Services.
Về kỹ năng
• Kỹ năng thiết kế lược đồ cho cơ sở dữ liệu hỗ trợ phân tích trực tuyến.
• Kỹ năng xây dựng và triển khai các tác vụ xử lý trong môi trường phân tán.
Về sản phẩm
• Tất cả mô đun xây dựng đều chạy ổn định và định kì cập nhập số liệu thống

• Tối ưu được rất nhiều chi phí và công sức bỏ ra để triển khai và duy trì hệ
thống khi sử dụng Amazon Web Services.
• Có thể đưa ra các số liệu thống kê phân tích phản ảnh cơ bản thị trường
tuyển dụng lao động. Tạo ra nguồn thông tin giá trị cho thị trường tuyển
dụng lao động.

26
Thank you
for your
attention!!!

27

You might also like