Do vậy nhu cầu nghiên cứuphát triển các ứng dụng AI Chatbot ngày càng gia tăng đóng vai trò quan trọngtrong hệ sinh thái các ứng dụng thông minh trong tương lai sử dụng công nghệ xử lý n
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG VIỆT – HÀN
BÁO CÁO TỔNG KẾT
ĐỀ TÀI NGHIÊN CỨU KHOA HỌC CỦA SINH VIÊN
NĂM 2023
PHÁT TRIỂN TRỢ LÝ ẢO TÍCH HỢP GIỚI THIỆU
VIỆC LÀM THÔNG MINH TRONG TƯ VẤN TUYỂN DỤNG
Mã số đề tài: ĐHVH-2023-SV-06 Thuộc lĩnh vực khoa học và công nghệ: Khoa học dữ liệu và trí tuệ nhân tạo
Sinh viên thực hiện : Nguyễn Kết Đoàn
Phạm Quốc Huy Kiều Xuân Lộc Nguyễn Lê Hữu Duy Trần Đình Hiếu Ngành học : Khoa học dữ liệu và trí tuệ nhân tạo
Kỹ thuật phần mềm Giảng viên hướng dẫn : TS Nguyễn Hữu Nhật Minh
Đà Nẵng, tháng 4 năm 2023
Trang 2ĐẠI HỌC ĐÀ NẴNG TRƯỜNG ĐẠI HỌC CNTT VÀ TRUYỀN THÔNG VIỆT – HÀN
Thuộc lĩnh vực khoa học và công nghệ: Kỹ thuật máy tính và Điện tử
Sinh viên thực hiện : Nguyễn Kết Đoàn
Phạm Quốc Huy Kiều Xuân Lộc Nguyễn Lê Hữu Duy Trần Đình Hiếu Ngành học : Khoa học dữ liệu và trí tuệ nhân tạo
Kỹ thuật phần mềm
Giảng viên hướng dẫn : TS Nguyễn Hữu Nhật Minh
Đà Nẵng, tháng 4 năm 2023
Trang 3ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC CNTT
VÀ TRUYỀN THÔNG VIỆT - HÀN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – tự do – hạnh phúc
Đà Nẵng, ngày 17 tháng 4 năm 2023
THÔNG TIN KẾT QUẢ NGHIÊN CỨU CỦA ĐỀ TÀI
1 Thông tin chung:
- Tên đề tài: Phát triển trợ lý ảo tích hợp giới thiệu việc làm thông minh trong tư vấntuyển dụng
- Mã đề tài: ĐHVH-2023-SV-06
- Sinh viên chịu trách nhiệm chính: Nguyễn Kết Đoàn
- Lớp: 20AD Khoa: Khoa học máy tính Năm thứ: 03 Số năm đào tạo: 4,5
- Người hướng dẫn: TS Nguyễn Hữu Nhật Minh
- Thời gian thực hiện: 11/2022 - 04/2023
2 Mục tiêu:
- Nhằm tạo ra một AI Chatbot trên nền tảng mã nguồn mở BotPress để tư vấn tuyểndụng được sử dụng cho một nền tảng tìm kiếm việc làm Trong ứng dụng này, AIChatbot được tạo kịch bản và hỗ trợ xử lý ngôn ngữ tự nhiên để hiểu giao với cácứng viên muốn tìm việc
- AI Chatbot có thể phân loại ý định cũng như các câu hỏi thông dụng để hỗ trợ qua
đó giới thiệu các thông tin công việc liên quan
3 Tính mới và sáng tạo:
Nghiên cứu, phát triển trợ lý ảo thông minh dựa trên nền tảng Botpress giúp dễdàng triển khai, tích hợp lên website miễn phí Bên cạnh đó nhóm phát triểnthêm module giới thiệu việc làm dựa trên kỹ năng của người dùng cũng như yềucầu vị trí của công việc Điều này giúp cho người dùng có thể dễ dàng, nhanhchóng tìm được công việc phù hợp với kỹ năng của mình Module này đã đượctích hợp vào trợ lý ảo của nhóm
4 Kết quả nghiên cứu:
- Ứng dụng AI Chatbot trên nền tảng mã nguồn mở BotPress để hỗ trợ trao đổi vớicác ứng viên tìm việc sử dụng xử lý ngôn ngữ tự nhiên
5 Sản phẩm:
Sản phẩm của đề tài bao gồm:
- 01 báo cáo khoa học
Trang 4- 01 bài báo khoa học CITA 2023 phiên quốc tế
6 Về các đóng góp của đề tài cho giáo dục và đào tạo, kinh tế - xã hội, an ninh, quốc phòng:
AI Chatbot được coi là một trong những ứng dụng tiềm năng nhất của ứng dụng tríthông minh nhân tạo (AI) vào nhiều lĩnh vực xã hội Do vậy nhu cầu nghiên cứuphát triển các ứng dụng AI Chatbot ngày càng gia tăng đóng vai trò quan trọngtrong hệ sinh thái các ứng dụng thông minh trong tương lai sử dụng công nghệ xử
lý ngôn ngữ tự nhiên, học máy trong phân tích dữ liệu của người dùng Trước nhucầu tìm kiếm và thay đổi công việc gia tăng dẫn đến sự cần thiết của trợ lý ảo giúp
hỗ trợ quá trình tìm kiếm công việc phù hợp thuận tiện và thân thiện hơn chongười dùng trong tương lai
7 Công bố khoa học của sinh viên từ kết quả nghiên cứu đề tài
Nguyen Huu Nhat Minh, Nguyen Ket Doan, Pham Quoc Huy, Kieu Xuan Loc,
Hoang Nguyen Vu, Huy Nguyen and Huynh Cong Phap “Information Technology Skills Extractor for Job Descriptions in vku-ITSkills Dataset using Natural Language Processing”, Accepted to present in CITA 2023 (International Track)
Sinh viên chịu trách nhiệm chính
thực hiện đề tài
Nhận xét của người hướng dẫn về những đóng góp khoa học của sinh viên thực hiện
đề tài (phần này do người hướng dẫn ghi):
Đề tài đã thiết kế VKU AI chatbot cơ bản giúp hỗ trợ công tác tuyển dụng công việcCNTT trên nền tảng mã nguồn mở Botpress sử dụng khả năng xử lý ngôn ngữ tự nhiên
Để thể hiện sự thông minh trong khuyến nghị và giới thiệu việc làm, đề tài đã thực hiệnquy trình phân tích xử lý ngôn ngữ tự nhiên để trích xuất các kỹ năng công nghệ thông tin(IT Skills) trong các mô tả công việc Từ đó dựa vào sự giống nhau cosine similarity giữacác skills và kỹ năng của người tìm việc để đưa ra khuyến nghị phù hợp Đề tài đã đượcchấp nhận trình bày oral presentation tại hội nghị CITA2023 phiên quốc tế và thể hiệnnhiều tiềm năng trong ứng dụng xử lý ngôn ngữ tự nhiên vào bài toán tìm việc CNTT
Xác nhận của đơn vị Người hướng dẫn
TS Nguyễn Hữu Nhật Minh
Trang 5ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC CNTT
VÀ TRUYỀN THÔNG VIỆT - HÀN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
Độc lập – tự do – hạnh phúc
Đà Nẵng, ngày 17 tháng 4 năm 2023
THÔNG TIN VỀ SINH VIÊN CHỊU TRÁCH NHIỆM CHÍNH THỰC HIỆN ĐỀ TÀI
I SƠ LƯỢC VỀ SINH VIÊN:
Họ và tên: Nguyễn Kết Đoàn
Sinh ngày: 20 tháng 05 năm 2001
Nơi sinh: Quảng Ngãi
Lớp: 20AD Khóa: 2020 – 2025
Khoa: Khoa học máy tính
Địa chỉ liên hệ: 470 Trần Đại Nghĩa, phường Hòa Quý, quận Ngũ Hành Sơn, Đà NẵngĐiện thoại: 0976141872 Email: nkdoan.20it7@vku.udn.vn
II QUÁ TRÌNH HỌC TẬP
* Năm thứ 1:
Ngành học: Công nghệ thông tin Khoa: Khoa học máy tính
Kết quả xếp loại học tập: Giỏi
Trang 6MỞ ĐẦU
Trong thế giới phát triển nhanh ngày nay, công nghệ đóng một vai trò quan trọngtrong hầu hết mọi khía cạnh của cuộc sống Khi ngành tuyển dụng tiếp tục phát triển, cáccông ty đang tìm kiếm những cách thức mới và sáng tạo để hợp lý hóa quy trình tuyểndụng, cải thiện trải nghiệm của ứng viên và cuối cùng là tìm kiếm những ứng viên tốtnhất cho từng vị trí công việc của nhà tuyển dụng Một trong những đổi mới đó là pháttriển trợ lý ảo tích hợp với giới thiệu việc làm thông minh trong lĩnh vực tư vấn tuyểndụng
Trợ lý ảo thông minh là một phần mềm dựa trên trí tuệ nhân tạo có thể hiểu ngônngữ tự nhiên và mô phỏng các tương tác giao tiếp giống con người Khi được tích hợpvới giới thiệu việc làm thông minh bằng trí tuệ nhân tạo trong tư vấn tuyển dụng, trợ lý
ảo có thể cung cấp cho ứng viên trải nghiệm được cá nhân hóa, không chỉ trả lời câu hỏicủa họ mà còn hướng dẫn họ trong quá trình tuyển dụng như đề xuất những công việcphù hợp với những kỹ năng của các ứng viên
Việc tích hợp trợ lý ảo với giới thiệu việc làm thông minh bằng trí tuệ nhân tạotrong tư vấn tuyển dụng có khả năng cải thiện trải nghiệm của ứng viên, tìm kiếm nhữngviệc làm phù hợp nhất với những kỹ năng của ứng viên, giảm khối lượng công việc của
tư vấn tuyển dụng và cải thiện chất lượng của quy trình tuyển dụng Tuy nhiên, cũng cónhững thách thức liên quan đến việc tích hợp này, chẳng hạn như đảm bảo rằng trợ lý ảothông minh có thể hiểu chính xác ngôn ngữ tự nhiên và đưa ra các phản hồi phù hợp,cũng như cung cấp dịch vụ được cá nhân hóa và đáp ứng nhu cầu cá nhân của từng ứngviên Hay phải đảm bảo giới thiệu việc làm thông minh đạt chất lượng khi dựa trên nhưng
kỹ năng của ứng viên để đưa ra những công việc phù hợp nhất cho ứng viên
Một trong những thách thức trong việc tích hợp giới thiệu việc làm thông tin vàotrợ lý ảo mà chúng tôi phải đối mặt là làm thế nào để xác định và đánh giá chính xác các
kỹ năng cứng của ứng viên trong ngành CNTT Điều này đặc biệt khó khăn do tốc độthay đổi công nghệ nhanh chóng và các yêu cầu về kỹ năng không ngừng phát triển Đểgiải quyết thách thức này, chúng tôi đã phát triển một mô-đun trích xuất kỹ năng CNTT
từ các mô tả công việc trên 2 trang web tìm việc lớn là LinkedIn và Indeed Mô-đun này
sử dụng các kỹ thuật trong xử lý ngôn ngữ tự nhiên như Tokenizer, Part of Speech (POS)Tagging & Noun phrases, Named Entity Recognition (NER), Lemmatization và đặc biệt
là khả năng Embedding Token mạnh mẽ của mô hình Transformer tên là RoBERTa Các
kỹ thuật này đều được hổ trợ bởi thư viện xử lý ngôn ngữ tự nhiên SpaCy của Python.Đều này giúp chúng tôi trích xuất các kỹ năng CNTT rất tốt và hổ trợ cho quá trình giớithiệu việc làm thông minh dựa vào trí tuệ nhân tạo
Trang 7Hiểu được những khó khăn của các ứng viên và nhân sự tuyển dung nhằm cảithiện trải nghiệm của ứng viên, tìm kiếm những việc làm phù hợp nhất với những kỹnăng của ứng viên, giảm khối lượng công việc của tư vấn tuyển dụng và cải thiện chấtlượng của quy trình tuyển dụng Tuy nhiên, cũng có những thách thức liên quan đến việctích hợp này, chẳng hạn như đảm bảo rằng trợ lý ảo thông minh có thể hiểu chính xácngôn ngữ tự nhiên và đưa ra các phản hồi phù hợp, cũng như cung cấp dịch vụ được cánhân hóa và đáp ứng nhu cầu cá nhân của từng ứng viên Hay phải đảm bảo giới thiệuviệc làm thông minh đạt chất lượng khi dựa trên nhưng kỹ năng của ứng viên để đưa ranhững công việc phù hợp nhất cho ứng viên.
Nhìn chung, dự án nghiên cứu khoa học phát triển trợ lý ảo tích hợp giới thiệucông việc thông tin dựa trên trí tuệ nhân tạo có thể cải thiện khả năng tương tác với cácứng viên, hợp lý hóa quy trình tuyển dụng, cung cấp cho ứng viên trải nghiệm được cánhân hóa, không chỉ trả lời câu hỏi của họ mà còn hướng dẫn họ trong quá trình tuyểndụng như đề xuất những công việc phù hợp với những kỹ năng của các ứng viên Đềunày sẽ giúp các ứng viên tìm kiếm những công việc phù hợp với bản thân và giúp các nhàtuyển dụng tìm được các ứng viên ưu tú cho công việc của mình
Trang 8MỤC LỤC
MỞ ĐẦU 8
DANH MỤC CÁC TỪ VIẾT TẮT 12
DANH MỤC HÌNH ẢNH 13
DANH MỤC BẢNG BIỂU 14
CHƯƠNG 1 – KIẾN THỨC TỔNG QUAN 15
1 Giới thiệu về AI Chatbot 15
2 Tổng quan về nền tảng mã nguồn mở AI Chatbot Botpress 16
2.1 Tiền xử lý văn bản 17
2.2 Phân tích cú pháp 17
2.3 Hiểu ngữ nghĩa câu đối thoại 18
2.4 Trích xuất thông tin 21
2.5 Thiết kế VKU AI Chatbot trên Botpress 22
CHƯƠNG 2 – SỬ DỤNG NER VÀ TRANSFORMER TRÍCH XUẤT KỸ NĂNG NGÀNH CÔNG NGHỆ THÔNG TIN 25
2.1 Tổng quan trích xuất thông tin dựa trên xử lý ngôn ngữ tự nhiên 25
2.2 Trích xuất thông tin dựa trên nền tảng xử lý ngôn ngữ tự nhiên SpaCy 26
2.3 Xây dựng từ điển kỹ năng CNTT và Bộ dữ liệu vku-ITSkills 28
2.4 Quy trình đề xuất cho Trình trích xuất kỹ năng CNTT 29
Trang 92.4.2 TokenEmbedding d a trên Transformer ự 30
2.4.3 Part of Speech (POS) Tagging, C m danh t và Quy tắắc kêắt h p kyỹ nắng ụ ừ ợ 32
2.4.4 Nh n d ng th c th đ ậ ạ ự ể ượ ặ c đ t tên (Named Entity Recognition) NER 34
2.4.5 Huấắn luy n Mô hình NER và Tinh ch nh RoBERTa ệ ỉ 35
2.4.6 Quy tắắc dấắu ph y ẩ 36
2.5 Kết quả thử nghiệm 36
CHƯƠNG 3 –TÍCH HỢP TÍNH NĂNG GIỚI THIỆU CÔNG VIỆC THÔNG MINH TRONG VKU CHATBOT 38
3.1 Tích hợp tính năng giới thiệu công việc thông minh 38
Xử lý từ phía Server 41
3.3 Xử lý từ phía Chatbot trong Botpress 42
CHƯƠNG 4 – KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 44
TÀI LIỆU THAM KHẢO 46
Trang 10DANH MỤC CÁC TỪ VIẾT TẮT
Trang 11DANH MỤC HÌNH ẢNH
Hình 1 1: Thiết kế Conversational Flow cho VKU Chatbot trong Botpress 16
Hình 1 2: Kiến trúc FastText 18
Hình 1 3:Kiến trúc mô hình Skip-gram 19
Hình 1 4: Kiến trúc mô hình CBOW 21
Hình 1 5: ChatBot hiển thị yêu cầu người dùng trả lời câu hỏi 23
Hình 1 6: Hiển thị yêu cầu “skip” hoặc “go home” của chatbot 24
Hình 1 7:Hiển thị câu hỏi của chatbot là có thể làm “part-time” hay “full-time” 25
Hình 1 8:Hiển thị câu hỏi của chatbot về địa điểm làm việc 26
Hình 1 9:Hiển thị câu hỏi chatbot về trình độ tiếng anh 27
Hình 1 10:Hiển thị câu hỏi của chatbot về kinh nghiệm testing 28
Hình 1 11: Hiển thị câu hỏi của chatbot về số năm kinh nghiệm 29
Hình 1 12: Hiển thị câu hỏi của chatbot về số lương khi ứng tuyển 30
Hình 1 13:Hiển thị câu hỏi của chatbot về thời gian có thể bắt đầu làm việc 31
Hình 1 14: Hiển thị câu hỏi của chatbot về lợi ích đạt được ở môi trường mới 32
Hình 1 15: Hiển thị câu hỏi của chatbot khi nào muốn nhận điện thoại tư vấn 33
Hình 1 16:Hiển thị câu hỏi của chatbot về công ty mình yêu thích 34
Hình 1 17: Hiển thị phản hồi của chatbot khi người dùng trả lời xong các câu hỏi Y Hình 2 1:Các chức năng xử lý ngôn ngữ tự nhiên trong SpaCy 38
Hình 2 2:Quy trình đề xuất cho Trích xuất kỹ năng CNTT 39
Hình 2 3: Mô hình SpaCy NER 4 Hình 3 1: Mô hình triển khai botpress kết hợp SpaCy Server 50
Hình 3 2: Trích xuất kỹ năng trong mô tả công việc lĩnh vực phát triển thiết kế trang web 52
Hình 3 3: Trích xuất kỹ năng trong mô tả công việc lĩnh vực Trí tuệ nhân tạo (AI) 52
Hình 3 4: Các kỹ năng cứng được trích xuất của từng mô tả công việc 53
Hình 3 5: File CSV chứa URL, tên, yêu cầu và các kỹ năng cứng của các công việc 53
Hình 3 6: Server xử lý nội dung văn bản được đưa vào 54
Hình 3 7: Demo Chatbot nhận kỹ năng người dùng và trả về URL 55
Trang 12DANH MỤC BẢNG BIỂU
Bảng 1: Các thành phần SpaCy cơ bản sẽ được áp dụng trong hệ thống được đề xuất 29 Bảng 2: Quy trình đề xuất cho Trích xuất kỹ năngCNTT 30 Bảng 3: Phương pháp đào tạo của các quy trình NLP được đề xuất 37 Bảng 4: Kết quả trích xuất kỹ năng cứng trên 100JDs từ LinkedIn và Indeed 38 Bảng 5: Kết quả trích xuấ kỹ năng cứng trên 100JDs từ GlassDoor, Dice, Monster,
Career Builder 38
Trang 13CHƯƠNG 1 – KIẾN THỨC TỔNG QUAN
1 Giới thiệu về AI Chatbot
Chatbot bùng nổ trong những năm gần đây [1], Chatbot đóng góp phần tự độnghóa quy trình tư vấn khách hàng và cho phép thu thập dữ liệu cần thiết, doanh nghiệphiểu rõ hơn về khách hàng AI Chatbot cho phép các doanh nghiệp tiết kiệm chi phí trongtương tác với khách hàng đồng thời nâng cao trải nghiệm và tương tác với người dùng.Chatbot đóng góp phần tự động hóa quy trình tư vấn khách hàng và cho phép thu thập dữliệu cần thiết, doanh nghiệp hiểu rõ hơn về khách hàng
Trong bối cảnh các tổ chức và doanh nghiệp gia tăng xu hướng sử dụng Chatbot
và ngày càng có nhiều công nghệ hỗ trợ sự phát triển nền tảng này Theo InsideIntelligence dự đoán chi tiêu bán lẻ của người tiêu dùng thông qua Chatbot sẽ tăng lên
142 tỷ đô la trên toàn thế giới vào năm 2024, so với 2,8 tỷ đô la đã chi vào năm 2019.Một số ngành đang áp dụng việc sử dụng chatbot bao gồm các lĩnh vực nổi bật như bán lẻtrực tuyến, dịch vụ khách hàng, viễn thông và ngân hàng Theo Juniper Research ước tínhtiết kiệm được 7,3 tỷ đô la chi phí hoạt động trên toàn cầu vào năm 2023 chỉ trong ngànhngân hàng thông qua Chatbot AI Chatbot được coi là một trong những ứng dụng tiềmnăng nhất của ứng dụng trí thông minh nhân tạo (AI) vào thương mại Do vậy nhu cầunghiên cứu phát triển các ứng dụng AI Chatbot ngày càng gia tăng
Việc tích hợp khả năng xử lý ngôn ngữ tự nhiên giúp các ứng dụng chatbot trở nênthông minh và đưa ra các hỗ trợ tư vấn phù hợp hơn với người dùng Nền tảng đối thoạingười dùng tạo thêm sự gắn kết với người dùng với dịch vụ được cung cấp thông qua đốithoại Nội dụng hội thoại có thể giọng nói hay tin nhắn trở nên hữu ích đối với nhiều dịch
vụ và các tổ chức Botpress là một trong những nền tảng mã nguồn mở mới có khả năng
xử lý ngôn ngữ tự nhiên và thiết kế hội thoại theo kịch bản [2] Với ưu điểm sử dụnglượng nhỏ dữ liệu đặc thù để huấn luyện từ mô hình ngôn ngữ chung xây dựng trên côngnghệ xử lý ngôn ngữ Word2Vec của FastText [3] Dựa trên mô hình biểu diễn ngôn ngữcủa FastText, Botpress xây dựng các tính năng phân tích xử lý ngôn ngữ để hiểu ý địnhcủa câu hội thoại giúp đưa ra phản hồi phù hợp cho người dùng Ngoài ra BotPress cònkết hợp CRFSuite [4] để trích xuất thông tin được định nghĩa từ câu hội thoại để hỗ trợviệc phản hồi trên thông tin được cung cấp bởi người dùng
Các nghiên cứu nền tảng phát triển AI Chatbots trở nên phổ biến tuy nhiên ứngdụng trong lĩnh vực tuyển dụng còn mới mẻ và cần phát triển dựa trên kiến thức, dữ liệuđặc thù của lĩnh vực tuyển dụng vẫn còn mới mẻ ở Đà Nẵng và Việt Nam Nhóm hướngđến loại ứng dụng đối thoại thông minh nhằm hỗ trợ tuyển dụng cho các ứng viên khitham gia vào nền tảng tìm việc trực tuyến
Trang 142 Tổng quan về nền tảng mã nguồn mở AI Chatbot Botpress
Botpress là một nền tảng chatbot mã nguồn mở, cung cấp một cách tiếp cận đơngiản và hiệu quả để xây dựng AI chatbot với khả năng tương tác cao và tích hợp nhiềukênh như Facebook Messenger, Slack, Telegram[5] và nhiều hơn nữa Được phát triểndựa trên Node.js và có sẵn các công cụ để quản lý dữ liệu, xử lý ngôn ngữ tự nhiên vàphát triển các kịch bản tương tác Nó cho phép tích hợp các API và các dịch vụ khác đểtăng cường tính năng của bot Botpress cho phép xây dựng chatbot dựa trên kịch bản cósẵn một cách dễ dàng với tính năng Design Conversational Flow như hình 1.1
Hình 1 1: Thiết kế Conversational Flow cho VKU Chatbot trong Botpress
Dựa trên kịch bản được thiết kế sẵn, chatbot có thể dễ dàng tương tác với ngườidùng dựa trên thông tin trả lời mà người dùng nhập vào thông qua ngữ cảnh của nó Từ
đó chatbot có thể thu thập xử lý thông tin và cho ra câu trả lời phù hợp nhất trong từngtrường hợp cụ thể Quá trình mà Botpress tiếp nhận, xử lý thông tin mà người dùng nhậpvào thông qua các bước sau:
- Tiền xử lý: Khi người dùng gửi tin nhắn, chatbot sẽ tiến hành tiền xử lý văn bản
bằng cách loại bỏ các ký tự đặc biệt, chuyển đổi chữ hoa thành chữ thường, táchtừ
- Phân tích cú pháp: Sau khi tiền xử lý, Chatbot sẽ phân tích cú pháp của câu để xác
định cấu trúc như động từ, danh từ, tính từ, và cụm từ
- Hiểu ngữ nghĩa câu: Chatbot sẽ sử dụng các mô hình học máy và thuật toán NLP
để hiểu ngữ nghĩa của câu, xác định chủ đề, ý định, và các đối tượng liên quan
Trang 15- Trích xuất thông tin: Chatbot sẽ trích xuất thông tin cụ thể từ câu như tên sản
phẩm, số lượng, địa chỉ, để xử lý yêu cầu của người dung
- Xử lý yêu cầu: Dựa trên ý định và thông tin được trích xuất, Chatbot sẽ thực hiện
hành động phù hợp như trả lời câu hỏi hay lưu trữ thông tin
- Phản hồi: Cuối cùng, Chatbot sẽ tạo ra câu trả lời phù hợp dựa trên kịch bản và dữ
liệu có sẵn, sau đó phản hồi đến người dùng
2.1 Tiền xử lý văn bản.
Tiền xử lý văn bản là bước quan trọng quan trọng trong quá trình xử lý ngôn ngữ
tự nhiên (NLP), giúp chuẩn bị dữ liệu đầu vào cho các bước xử lý tiếp theo Đầu tiênBotpress sẽ loại bỏ các ký tự đặc biệt, dấu câu không liên quan đến ngữ cảnh của câu.Điều này giúp giảm kích thước dữ liệu đầu vào Sau khi xóa bỏ các ký tự đặc biệt,Botpress sẽ chuyển đổi tất cả các chữ in trong văn bản thành chữ thường Điều này giúpđơn giản hóa các bước xử lý tiếp theo và giảm thiểu sai số do việc phân biệt chữ hoa vớichữ thường Bước tiếp theo Botpress sẽ phân tác văn bản thành các từ riêng biệt (token).Việc tách từ giúp giúp cho Botpress dễ dàng xử lý và phân tích thành phần con của câuhơn Sau khi phân tách các từ cần phải loại bỏ các từ xuất hiện thường xuyên nhưngkhông mang nhiều ý nghĩa (ví dụ như (“a”, “the”, ) Việc loại bỏ những từ như này giúptập trung vào các từ quan trọng trong văn bản và giảm kích thước dữ liệu đầu vào Bướctiếp theo phải chuẩn hóa từ(Stemming/Lematization) Botpress sử dụng kỹ thuậtStemming (cắt từ gốc) hoặc lemmatization ( chuẩn hóa từ) để đưa các từ về về dạng cơ sởcủa chúng Điều này giúp giảm số lượng các biến thể và đồng thời tăng độ chính xáctrong các bước xử lý tiếp theo
2.2 Phân tích cú pháp
Botpress phân tích cú pháp (parsing) câu của người dùng thông qua xử lý ngônngữ tự nhiên (NLP) và các kỹ thuật học máy Mục đích của việc phân tích cú pháp là xácđịnh các thành phần cấu trúc của câu, như danh từ, động từ, tính từ và cụm từ, để giúpchatbot hiểu rõ hơn về ngữ nghĩa của câu Dữ liệu sau khi được tiền xử lý xong, sẽ đượcgán nhãn từ loại (Part-of-speech tagging) Điều này bao gồm gán nhãn danh từ, động từ,tính từ, trạng từ, giới từ, v.v Sau khi gán nhãn từ loại, Botpress sẽ phân tích cấu trúc câu
để xác định mối quan hệ giữa các từ và nhóm từ trong câu Một số kỹ thuật phổ biến choviệc phân tích cấu trúc câu bao gồm phân tích cú pháp phụ thuộc (dependency parsing)
và phân tích cú pháp cây cấu trúc (constituency parsing) Cuối cùng, dựa trên kết quả củaviệc phân tích cú pháp, Botpress sẽ tiếp tục tiến hành phân tích ngữ nghĩa để hiểu ý nghĩacủa câu đối thoại Điều này bao gồm việc xác định chủ đề ý định, , và các đối tượng liên quan trong câu.
Trang 162.3 Hiểu ngữ nghĩa câu đối thoại
Quá trình hiểu ngữ nghĩa của câu đóng vai trò quyết định nhất để đánh giá hiệuquả hoạt động của một chatbot Để hiểu được ngữ cảnh của câu, Natural LanguageUnderstanding (NLU) trong Botpress sử dụng framework FastText FastText là một thưviện máy học để biểu diễn và phân loại văn bản hiệu quả, cho tốc độ xử lý nhanh, được
mở rộng mô hình Word2Vec, dựa trên ý tưởng biểu diễn từ thành véc-tơ nhúng (WordEmbedding) FastText hoạt động bằng cách học các biểu diễn véc-tơ cho các từ và sửdụng các véc-tơ này để thực hiện các tác vụ xử lý ngôn ngữ tự nhiên khác nhau, chẳnghạn như phân loại văn bản và phân tích tình cảm Để học các biểu diễn từ và thực hiệncác nhiệm vụ phân loại văn bản, FastText được xây dựng trên các mô hình skip-gramhoặc continuous bag-of-words (CBOW) [6] FastText khởi tạo mạng nơ-ron với lớp đầuvào (word embedding), lớp ẩn và lớp đầu ra (softmax) Lớp đầu vào biểu thị các từ dướidạng tổng của các biểu diễn vectơ n-gram ký tự của chúng và lớp đầu ra tính toán xácsuất cho các từ ngữ cảnh (skip-gram) hoặc từ đích (CBOW)
Hình 1 2: Kiến trúc FastText
Mô hình N-Gram
Mô hình N-Gram được hiểu đơn giản là tần suất xuất hiện của kí tự (chữ cái)n
liên tiếp xuất hiện trong dữ liệu Có một số mô hình n-gram phổ biến như:
- Unigram, mô hình hình n=1, tức là ta sẽ tính tần suất xuất hiện của 1 ký tự
- Bigrams: với n=2
- Trigrams: nới n=3 cho độ chính xác càng cao.
FastText biểu thị các từ dưới dạng một n-gram ký tự, là các chuỗi n ký tự liền kềtrong một từ Nó cũng bao gồm toàn bộ từ được bao quanh bởi các ký hiệu ranh giới đặc
Trang 17biệt Ví dụ: cho từ "apple" và phạm vi n-gram là 3, ký tự n-gram là: "<ap", "app", "ppl",
"ple", "le>" Biểu diễn cấp độ từ phụ (subword/token) này cho phép FastText nắm bắt
thông tin hữu ích, tạo ra các biểu diễn phù hợp cho cả các từ hiếm gặp hoặc chưa có trongtập từ vựng được huấn luyện
Mô hình Skip-Gram
Mô hình Skip-gram dự đoán các từ ngữ cảnh được cung cấp một từ mục tiêu Ví
dụ trong câu “I want to learn python.” Từ “learn” được cung cấp làm từ mục tiêu để tìm
ra ngữ cảnh “I ”, “want ”, “to”, “python” Tất cả dữ liệu đầu vào và đầu ra đều có cùngkích thước và có mã hóa one-hot Nó sử dụng một mạng lưới thần kinh để đào tạo Mạngthần kinh có lớp đầu vào, lớp ẩn và lớp đầu ra
Hình 1 3: Kiến trúc mô hình Skip-gram
Xét ví dụ trong câu “ I want to learn python ” Từ “learn” được cung cấp làm từmục tiêu để tìm ra ngữ cảnh“ I ”, “want ”, “to”, “python” Việc dự đoán xác suất xảy ra
dự đoán các từ mục tiêu dựa trên ngữ cảnh được mô hình hóa bởi: P(“learn”| "I","want
","to","python") Ta có thể giả sử rằng sự xuất hiện của một từ ngữ cảnh khi biết từ đích
wc độc lập với các từ ngữ cảnh khác để xấp xỉ xác suất trên đây bởi: P("I"|"learn")*P("want"|"learn")*P("to"|"learn") Giả sử từ đích wc có chỉ số (index) t
trong bộ từ vựng và là tập hợp các chỉ số của các từ ngữ cảnh tương ứng trong vănV Ct
bản đầu vào Từ dữ liệu đã có, ta cần một mô hình sao cho xác suất dưới đây càng lớncàng tốt với mỗi từ ngữ cảnh :wt
(1)
Trang 18Bài toán tối ưu này thường được đưa về bài toán tối thiểu sử dụng log (thườngđược gọi là negative log loss):
Xác suất có điều kiện P(w |w c t) được xác định bởi:
P(w |w ) c t = (3)Trong đó: là số phần tử của từ điển VN
exp( thể hiện mối quan hệ giữa từ đích wt và từ ngữ cảnh wc
Tích vô hướng cũng thể hiện tương tự giữa 2 vec-tơ
Tóm lại hàm loss sau cần được tối ưu:
L(V, Wt) = - (4)
Mô hình Continous Bag of Words (CBOW)
Ngược với Skip-gram, Continous bag of Words đi tìm xác suất xảy ra từ đích khibiết các từ ngữ cảnh xung quanh Ta cần mô hình hóa dữ liệu sao cho xác suất sau đây đạtgiá trị lớn P( "I","want ","to","python"|"learn”) Vì có nhiều từ ngữ cảnh trong điều kiện,chúng thường được đơn giản hóa bằng cách lấy một từ “trung bình” làm đại diện
Hình 1 4: Kiến trúc mô hình CBOW
Với là là trung bình cộng của các từ trong ngữ cảnh của từ đích của Embeddingwt
của từ trung bình này là trung bình của embedding các từ ngữ cảnh Xác xuất này cũngđược định nghĩa tương tự như trong Skip-gram:
P(w |) = (5)
Trang 19Tóm lại, FastText hoạt động bằng cách tận dụng thông tin ở cấp độ từ phụ(subword) và cấu trúc Skip-grams hoặc CBOW để tìm hiểu cách biểu diễn từ hoặc thựchiện các nhiệm vụ phân loại văn bản Mô hình được huấn luyện bằng cách sử dụngphương gradient descent với hàm mục tiêu phù hợp và hiệu suất của mô hình có thể đượctinh chỉnh bằng cách điều chỉnh siêu tham số hoặc sửa đổi dữ liệu huấn luyện.
2.4 Trích xuất thông tin
Để có câu trả lời chính xác hơn, ngồi hiểu được ngữ cảnh của thông tin ngườidùng nhập vào thì trích xuất thông tin cũng đóng vai trò rất quan trọng Botpress tríchxuất thông tin từ câu của người dùng bằng cách sử dụng kỹ thuật gọi là "trích xuất thựcthể" (Entity Extraction) trong xử lý ngôn ngữ tự nhiên (NLP) Trích xuất thực thể giúpbot nhận diện và tách ra các thông tin cụ thể từ câu, như tên sản phẩm, số lượng, địa chỉ,ngày tháng, và các thông tin khác có liên quan Để trích xuất được thông tin cần thiết thìnatural language understanding (NLU) trong botpress sử dụng Conditional RandomFields (CRFs) làm module hạt nhân Conditional Random Fields (CRF) là một phươngpháp học máy được sử dụng để dự đoán các nhãn tuần tự cho dữ liệu tuần tự, ví dụ như
dự đoán các từ loại của một câu hoặc đoạn văn Là thuật toán xác suất có điều kiện �( |�
�) với xác suất của vector đầu ra được cung cấp bởi một vector đặc trưng Để dự đoány x
chuỗi thích hợp thì ta phải tối đa hóa và lấy chuỗi với xác suất lớn nhất:
(7)Trong CRF, dữ liệu đầu vào là tuần tự và chúng ta phải dựa vào ngữ cảnh trước đó
để đưa ra dự đoán về một điểm dữ liệu Ta sử dụng hàm tính năng (feature functions) cónhiều giá trị đầu vào:
(8)Trong đó: là tập hợp các véc-tơ đầu vàoX
i là vị trí của điểm dữ liệu cần dự đoán
là nhãn của điểm dữ liệu trước i
là nhãn của điểm dữ liệu yi i
Mỗi hàm tính năng dựa trên nhãn của từ trước đó và từ hiện tại, có giá trị 0 hoặc 1.Chúng ta gán cho mỗi hàm một tập các trọng số (giá trị lambda), thuật toán sẽ học được:
(9)trong đó Z(x) là hàm chuẩn hóa
(10)
Trang 20Để ước tính các tham số , CRFs sử dụng Maximum likelihood estimation Ápdụng với hàm log âm tuyến tính của hàm trên ta có:
(11)
Ta cần tính đạo hàm riêng với để tìm giá trị tối thiểu của riêng hàm trên Qua đó�huấn luyện mô hình CRF để xác định nhãn thực thể cho các từ trong văn bản
2.5 Thiết kế VKU AI Chatbot trên Botpress
Để thiết kế hội thoại AI Chatbot trên Botpress, nhóm đã phân tích thông tin cần thiếttrong phỏng vấn xin việc CNTT bao gồm các thông tin và các bước xử như sau:
- Đầu tiên khi người dùng truy cập gửi yêu cầu đến chatbot, sẽ hiện lên tên người dùng đãđăng nhập và yêu cầu trả lời một số câu hỏi của chatbot Khi người dùng đồng ý trả lờicác câu hỏi, các list câu hỏi sẽ dần dần hiện ra Nếu không muốn trả lời thì người dùng cóthể nhập vào “skip” để chuyển đến câu hỏi tiếp theo hoặc nhập vào “go home” để quaytrở lại trạng thái ban đầu khi truy cập vô chatbot như hình 1.5
- Sau khi người dùng đồng ý tham gia trả lời các câu hỏi của chatbot, lần lượt các câu hỏi
sẽ được hiện thị lên và yêu cầu người dùng phải trả lời lần lượt các câu hỏi đó như tronghình 1.6 và 1.7
- Sau khi trả lời xong tất cả câu hỏi trên của chatbot, người dùng có thể download lại nộidung, câu trả lời mà mình đã trình bày ở trên, cũng như các câu trả lời đó cũng được lưutrên server để nhà tuyển dụng nắm bắt được thông tin như hình 1.8
Việc sử dụng VKU AI chatbot trao đổi với người dùng giúp tự động hóa quy trình phỏngvấn cơ bản Thông tin cần thiết từ người dùng cũng được thu thập rất tự nhiên và chuẩnhóa trong quá trình phỏng vấn và rất cần thiết cho việc khuyến nghị các công việc phùhợp Giao diện chatbot đem đến sự thân thiện và linh hoạt giúp tăng tương tác với ứngviên so với giao diện tĩnh nhập web form Đối thoại được thiết kế giúp tối ưu hóa thờigian và nhân lực tuyển dụng Kết quả khuyến nghị cũng nhờ đó cung cấp cho người dùngnhững lựa chọn công việc phù hợp với khả năng của ứng viên
Trang 21
Hình 1 5: ChatBot hiển thị yêu cầu người dùng trả lời câu hỏi Sau đó hiển thị
yêu cầu “skip” hoặc “go home” của chatbot
Hình 1 6: Hiển thị câu hỏi của chatbot là có thể làm “part-time” hay “full-time”, nơi làm
việc, trình độ tiếng Anh
Trang 22Hình 1 7: Hiển thị câu hỏi của chatbot về kinh nghiệm testing và mức lương của người
dùng mong đợi
Hình 1 8: Hiển thị phản hồi của chatbot khi người dùng trả lời xong các câu hỏi