CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1.1 GIỚI THIỆU BÀI TOÁN Nghiên cứu tuyển dụng là một trong các hoạt động có ý nghĩa quan trọng đối với doanh nghiệp và xã hội. Việc khảo sát về yêu cầu cho một vị trí công việc, mức lương, chính sách chế độ đãi ngộ,. tốn nhiều nguồn lực, chi phí lớn. Quá trình thu thập và phân tích các khảo sát một cách thủ công cũng mất nhiều thời gian hơn và không bắt kịp xu hướng phát triển của thị trường việc làm trong tương lai.
Vấn đề đặt ra ở đây là làm sao phát hiện được các yêu cầu chung cho một vị trí tuyển dụng, mức lương phổ biến cho vị trí công việc cũng như chế độ đãi ngộ đối với nhân viên như thế nào để vừa nhanh chóng, vừa chính xác và đạt được hiệu quả cao. Một phương án được đề xuất là sử dụng dữ liệu việc làm có sẵn từ Internet, kết hợp các công nghệ hỗ trợ giúp thu thập thông tin trên web tuyển dụng, thông qua thu thập và đánh giá tự động để tìm ra được các quan tâm của ứng viên và nhà tuyển dụng. Việc thu thập tự động giúp giảm thiểu sự sai sót và nhọc nhằng cho con người so với tiến hành khảo sát trực tiếp. Hơn nữa với tốc độ việc làm thay đổi chóng mặt, việc thu thập và phân tích tự động cho độ trễ thời gian thấp hơn, kết quả phù hợp hơn với tình hình hiện tại.
Kết quả cũng mang ý nghĩa quan trọng tác động đến định hướng đào tạo sinh viên tại các trường đại học nhằm đáp ứng nhu cầu nhân lực tại các doanh nghiệp.2 MỤC TIÊU Nhiệm vụ của đề tài là thu thập dữ liệu cho một loại việc làm cụ thể trên trang web tuyển dụng nổi tiếng. Sau đó tiến hành phân tích theo chủ đề để phát hiện các yêu cầu chung, mức lương phổ biến, chính sách đãi ngộ,. tương ứng cho loại việc làm đó, đưa ra các từ khóa phổ biến liên quan đến vị trí công việc đang tìm kiếm, phán đoán được các kỹ năng mới, các xu hướng trong tương lai. Để đạt được điều đó, chúng tôi tập trung tìm hiểu một số vấn đề sau: + Tìm hiểu khái niệm web scarping và cấu trúc HTML + Tìm hiểu khái niệm topic analysis và các kỹ thuật phân tích theo chủ đề + Thực hiện công việc thu thập dữ liệu web tuyển dụng với các thư viện của R + Phân tích theo chủ đề đối với dữ liệu thu thập được để đưa ra các thông tin quan tâm + Đánh giá và giải thích kết quả 19 do an 1.3 BỐ CỤC CỦA BÁO CÁO Các phần còn lại của báo cáo khóa luận được tổ chức như sau: Chương 2: Tổng quan về web scraping Chương 3: Tổng quan topic analysis Chương 4: Thực hiện thu thập các thông báo tuyển dụng Chương 5: Ứng dụng topic model phân tích các thông báo tuyển dụng Chương 6: Đánh giá và giải thích kết quả 20 do an CHƯƠNG 2: TỔNG QUAN WEB SCRAPING 2.1 KHÁI NIỆM WEB SCRAPING Sự ra đời mạng máy tính và môi trường world wide web (www) cung cấp nguồn thông tin và dữ liệu vô cùng phong phú.
Con người có thể khai thác chúng để có được những thông tin giá trị phục vụ cho hoạt động kinh tế, chính sách, giáo dục, y tế,… Với nguồn dữ liệu lớn vượt quá khả năng xử lý của con người, các kỹ thuật thu thập và phân tích dữ liệu web dần được quan tâm, nghiên cứu và phát triển. Web scraping là một kỹ thuật phổ biến để thu thập dữ liệu trên web. Web scraping được hiểu là quá trình thu thập và tải xuống dữ liệu quan tâm có trên web một cách tự động [1]. Quá trình web scraping trải qua các giai đoạn chính: Xác định nguồn dữ liệu và dữ liệu quan tâm Sử dụng công cụ để tiến hành trích xuất dữ liệu quan tâm Tải xuống và lưu trữ dữ liệu theo cấu trúc nhất định Giai đoạn đầu tiên là xác định nguồn dữ liệu và dữ liệu quan tâm.
Chúng ta cần xác định trang web mà ta đang hướng đến, nắm được cấu trúc của chúng và xác định dữ liệu ta quan tâm nằm ở đâu. Dữ liệu web có thể sẵn có để tải xuống như các tài liệu TXT, CSV, PDF, XLS, JPEG nhưng cũng có thể tồn tại ở dạng tài liệu khác như HTML.1: Xác định nguồn dữ liệu và dữ liệu quan tâm Tiếp sau đó chúng ta cần lựa chọn một công cụ phù hợp để tiến hành thu thập dữ liệu. Có rất nhiều công cụ hỗ trợ cung cấp giao diện thân thiện và thao tác đơn giản, phổ biến như: myTrama, import.io, kimonolabs, Tabula, Zamzar, cometDocs, Navigator extensions, Google spreadsheets IMPORTHTML,… Chúng ta cũng có thể sử dụng các ngôn ngữ phổ biến như Java, Python, R, Ruby, Node,… để lập trình công cụ thu thập 21 do an dữ liệu web. Cuối cùng là xác định cấu trúc lưu trữ và thực hiện tải xuống dữ liệu.
Dữ liệu đầu ra có thể cấu trúc như TXT, CSV, JSON, XML, XLS,… Các vấn đề lớn liên quan đến web scraping bao gồm [3]: Cấu trúc của các web là không giống nhau và thường xuyên thay đổi, đặt ra yêu cầu cần có sự thay đổi về kỹ thuật để tương thích. Vấn đề làm sạch, tổ chức, xử lý dữ liệu cũng gặp nhiều khó khăn hơn do sự khác biệt về cấu trúc. Thông tin thu thập có thể trùng lặp hoặc không còn phù hợp do có thể một vị trí được đăng tuyển trên nhiều trang khác nhau và nội dung thường xuyên được cập nhật, làm mới. Vấn đề quyền sử dụng dữ liệu và tính an toàn cũng được đề cập đến trong các dự án về web scraping.
Biện pháp an toàn đưa ra là tách biệt máy chủ lưu trữ dữ liệu tải xuống khỏi hệ thống lưu trữ của doanh nghiệp và thực hiện điều khiển từ xa. Để có thể tiến hành bước thu thập dữ liệu web, trước hết chúng ta cần nắm về cấu trúc web để có các biện pháp kỹ thuật tương ứng. Trong đề tài này, chúng tôi chỉ tập trung vào thu thập dữ liệu web dạng HTML bởi sự phổ biến của loại web này.2 CẤU TRÚC TÀI LIỆU HTML HTML (HyperText Markup Language) là ngôn ngữ đánh dấu siêu văn bản dùng các thẻ (tags) để định dạng dữ liệu và tạo khung hoặc bảng cho trang web. HTML cho phép chúng ta tạo ra các trang phối hợp hài hòa giữa văn bản thông thường với hình ảnh, âm thanh, video, các mối liên kết đến các trang siêu văn bản khác.
Tài liệu HTML được thiết kế để phân phối nội dung trên môi trường web. Tập hợp các tài liệu HTML cùng các tài liệu khác tạo thành website cung cấp thông tin về một tổ chức hoặc cá nhân. Theo quy ước, tất cả các tệp mã nguồn của trang siêu văn bản phải có đuôi là. Chúng ta có thể truy cập đến một tài liệu HTML thông qua URL - một địa chỉ web và là một chuẩn xác định tài liệu web trên Internet.
Một tài liệu HTML được tạo nên từ nhiều thành phần HTML. Một thành phần HTML được đánh dấu bằng một cặp thẻ mở (<keyword>) và thẻ đóng (</keyword>). Các thành phần HTML có thể cấu trúc phân cấp hình cây, trong đó thành phần mẹ chứa nhiều thành phần con lồng bên trong nó. Khung cấu trúc của một tài liệu HTML được thể hiện như hình 2.
22 do an Hình 2.2: Khung cấu trúc chung của một tài liệu HTML Các thẻ dùng để báo cho trình duyệt cách thức trình bày văn bản trên màn hình hoặc dùng để chọn một mối liên kết đến các trang hoặc một đoạn chương trình khác. Lệnh sẽ tác động vào đoạn văn bản nằm giữa hai thẻ. Các nhóm thẻ phổ biến được liệt kê trong bảng 2.1: Các nhóm thẻ thông dụng trong cấu trúc HTML Thẻ Ví dụ điển hình Thẻ định dạng trang <body> Thẻ định dạng văn bản <font>, <p>, <b>, <i>, <u>,. Thẻ tạo siêu liên kết (hyperlink) <a> Thẻ định dạng danh sách <ul>, <ol>, <li> Thẻ chèn hình ảnh <img> Chi tiết một số thẻ trong cấu trúc HTML và ví dụ được thể hiện trong bảng 2.2: Mô tả chi tiết một số thẻ trong cấu trúc HTML Thẻ và thuộc tính Ý nghĩa Ví dụ <sup> Định dạng chỉ số trên ax<sup>2</sup> ax2 <sub> Định dạng chỉ số dưới H<sub>2</sub>O H2O <h1>,.,<h6> Định dạng tiêu đề từ kích thước 1 <h1>Tiêu đề 1</h1> đến 6 (tiêu đề 1 có kích thước lớn Tiêu đề 1 nhất) <pre> Bỏ qua định dạng của các thẻ <pre><b>Xin chao</b> 23 do an HTML bên trong (không bỏ qua ký các bạn</pre> tự khoảng trắng, tab và xuống dòng) <b>Xin chào</b> các bạn <br> Kết thúc dòng hiện tại và chuyển <p>Dòng 1<br>Dòng 2</p> sang dòng mới Dòng 1 Dòng 2 <font Thiết lập font chữ cho văn bản <font face=”Arial” size=”5” face=”fontname” color=”#FF00FF”> size=”fontsize” color=”color”> <b> Định dạng chữ in đậm <b>Đoạn văn bản in đậm</b> <i> hay <em> Định dạng chữ in nghiêng <i>Đoạn văn bản in nghiêng</i> <u> Định dạng chữ in gạch dưới <u>Đoạn văn bản in gạch dưới</u> <strike> Định dạng chữ in gạch ngang chữ <strike>Đoạn văn bản in gạch ngang chữ</strike> Mỗi thẻ có thể có một hoặc nhiều thuộc tính đi kèm.
Ví dụ một số thuộc tính của thẻ body như trong bảng 2.3: Một số thuộc tính của thẻ body Thuộc tính Ý nghĩa Ví dụ bgcolor=”color” Thiết lập màu nền cho trang web <body bgcolor=”#00FF00”> background=”url” Thiết lập ảnh nền cho trang web <body background=”image.jpg”> leftmargin=”num” Thiết lập lề trái và lề trên cho <body leftmargin=”0” topmargin=”num” trang web topmargin=”0”> text=”color” Thiết lập màu chữ của văn bản, kể <body text=”#FF0000”> cả các đề mục alink=”color” Xác định màu sắc cho các siêu <body alink=”#FF0000” vlink=”color” liên kết trong văn bản (active link, vlink = “#00FF00”>link= link=”color” visited link, link) “#0000FF”> 24 do an Các thẻ siêu liên kết (hyperlink) cho phép người dùng duyệt từ trang web này đến trang web khác. Cú pháp tạo thẻ hyperlink: <a HREF=”URL”> Label </a> Trong đó: + URL là địa chỉ của trang liên kết. + Label có thể là text, button, hình ảnh,. Ngoài ra còn một số thẻ khác liên quan đến các loại tài liệu video, âm thanh, hình ảnh,.
mà chúng tôi xin phép không trình bày trong báo cáo này. 25 do an CHƯƠNG 3: TỔNG QUAN TOPIC ANALYSIS 3.1 Khái niệm chủ đề Nguồn dữ liệu hiện có trên thế giới như các bài báo khoa học, các nội dung website, các bình luận trên mạng xã hội,… đều tập trung làm rõ một vấn đề nào đó mà ta gọi là chủ đề. Chủ đề giúp ta có một cái nhìn khái quát hơn về sự vật hoặc hiện tượng. Thông thường chủ đề của một bài báo cũng chính là tiêu đề của nó và cũng có thể được xác định thông qua nội dung.