CHƯƠNG 1. GIỚI THIỆU TỔNG QUAN VỀ ĐỀ TÀI 1. Lựa chọn đề tài nghiên cứu Các công nghệ liên tục phát triển và mọi người đang dựa vào chúng ngày càng nhiều cho các tác vụ hàng ngày, điều đó có nghĩa là khối lượng và tính khả dụng của dữ liệu văn bản tiếp tục tăng theo cấp số nhân. Với sự gia tăng của các dịch vụ trực tuyến, các công ty rất khó theo kịp tốc độ thu thập dữ liệu chất lượng.
Các mô hình nhận dạng ý định đã được phát triển để tạo điều kiện đánh dấu và phân loại sự rộng lớn của dữ liệu văn bản. Nhận dạng ý định là một thuật ngữ được sử dụng trong xử lý ngôn ngữ tự nhiên (NLP) để mô tả mục đích hoặc ý định đằng sau một biểu hiện ngôn ngữ, chẳng hạn như một lời khẳng định hoặc một câu hỏi. Khi có liên quan đến dữ liệu, nhận dạng ý định đề cập đến ý định đằng sau một truy vấn hoặc hành động được thực hiện bằng dữ liệu cụ thể. Ví dụ: người dùng tìm kiếm internet với đối tượng tìm kiếm thông tin về dịch vụ trên trang web hoặc muốn mua dịch vụ trực tuyến, v.
phát hiện ý định đằng sau các biểu thức ngôn ngữ là một nhiệm vụ chính trong NLP và có thể được sử dụng để cải thiện Phản ứng mà các hệ thống tự động cung cấp cho con người [1]. Các mô hình xử lý ngôn ngữ tự nhiên có thể phát hiện ý định đằng sau một biểu thức ngôn ngữ bằng cách tự động học các mẫu trong bộ dữ liệu đào tạo. Điều này đặc biệt hữu ích cho các ứng dụng trò chuyện, chẳng hạn như trợ lý ảo, chatbot, v., nơi cần phải hiểu ý định của người dùng để có thể đáp ứng theo nhu cầu của họ. Sau khi tìm hiểu kĩ lưỡng em quyết định lựa chọn “Xác định lĩnh vực của ý định người dùng Việt Nam sử dụng mô hình học sâu” làm đồ án tốt nghiệp với những lí do sau: - Đề tài là sự tính lũy kiến thức em học được từ trong suốt thời gian học được các kỳ học trước như : Chuyên đề khoa học máy tính, Trí tuệ nhân tạo, Lập trình Web, Phân tích thiết kế hệ thống,… - Dự án với mục tiêu sử dụng mô hình LSTM, CONV1D (một kiến trúc mô hình học sâu sử dụng phổ biến cho bài toán phân lớp văn bản) - Mang tính thực tiễn, ứng dụng cao cho các doanh nghiệp muốn khai thác các khía cạnh của khách hàng, đưa ra bài toán kinh doanh hợp lí.
Vì vậy, em lựa chọn đề tài “Xác định lĩnh vực của ý định người dùng Việt Nam sử dụng mô hình học sâu” làm đồ án tốt nghiệp. Nội dung và phạm vi đề tài *Nội dung : - Khảo sát và tìm hiểu nguồn dữ liệu - Thu thập dữ liệu - Làm sạch dữ liệu và đánh nhãn - Xây dựng mô hình học sâu - Phát triển API và Deploy lên Cloud *Phạm vi : - Xác định lĩnh vực của ý định người dùng Việt Nam 1. Ý nghĩa lý luận và ý nghĩa thực tiễn của đề tài - Đề tài đóng góp vai trò quan trọng trong việc nâng cao kiến thức và dần tiếp cận tới việc xây dựng một ứng dụng thực tế cao, giúp ginh viên có thêm những kiến thức, kinh nghiệm, trải nghiệm trong lĩnh vực AI - Nâng cao khả năng tự học - Nâng cao khả năng làm việc độc lập - Củng cố và nâng cao, tiếp thu kiến thức mới, công nghệ mới 1. Kết quả dự kiến - Xây dựng được ứng dụng trên nền tảng Website có thể xác định lĩnh vực của ý định người dùng Việt Nam 1.
Tổng quan về xác định lĩnh vực ý định người dùng Ngày nay, nhiều người dùng Internet thường xuyên chia sẻ cảm xúc, hoạt động hàng ngày và thậm chí cả ý định của họ trên các kênh truyền thông xã hội trực tuyến như Twitter và Facebook. Ví dụ: một người dùng có thể đăng “Tôi sẽ mua một chiếc ô tô bảy chỗ vào tuần tới” hoặc “Chúng tôi đang tìm một căn hộ gần trung tâm thành phố” trên một diễn đàn thảo luận hoặc trên tường Facebook của chính họ. Những bài đăng đó được gọi là “bài đăng ý định” bởi vì chúng mang ý định của người dùng để làm điều gì đó trong tương lai gần. Các bài đăng hoặc tin nhắn có ý định rõ ràng là một nguồn kiến thức có giá trị cho các doanh nghiệp.
Nếu doanh nghiệp biết và hiểu chính xác người dùng đang định làm gì, họ có thể dễ dàng tìm được một lượng lớn khách hàng tiềm năng phù hợp với lĩnh vực kinh doanh của mình. Tuy nhiên, câu hỏi thách thức nhất là làm thế nào chúng ta có thể xử lý, phân tích và hiểu những ý định đó một cách tự động? 11 Nắm bắt, phân tích và hiểu các bài đăng về ý định trên phương tiện truyền thông xã hội trực tuyến là một quy trình gồm bốn giai đoạn: thu thập nguồn dữ liệu, lọc ý định của người dùng, xác định miền ý định, phân tích và trích xuất ý định. Trong đồ án tốt nghiệp này, em chỉ phân loại các bài viết về ý định vào một trong 13 lĩnh vực chính như “thiết bị điện tử”, ”thời trang”, ”phụ kiện”, ”tài chính”, ”dịch vụ ăn uống”, ”trang trí nội thất”, ”tạp hóa”, ”du lịch”, ”khách sạn”, ”tài sản”, ”việc làm”, ”giáo dục”, ”giao thông”, ”sức khỏe và sắc đẹp”, ”thể thao và giải trí”, ”vật nuôi và cây trồng”, ”khác” Em đã tiến hành thử nghiệm với dữ liệu thược được thu thập tự động từ các diễn đàn thảo luận và các mạng xã hội nổi tiếng. Em đã xây dựng một bộ dữ liệu có nhãn kích thước trung bình gồm các bài viết bằng Tiếng Việt để đánh giá.
Các mô hình phân loại được đào tạo bằng cách dử dụng LSTM và CONV1D. Công cụ sử dụng nghiên cứu *Công nghệ: - Python, VncoreNLP, Selenium, Phobert, LSTM, CONV1D, Sklearn… *Công cụ lập trình: - Visual Studio Code, Excel ,… *Ngôn ngữ lập trình: - Python *Quản lí source code: - Github *Đóng gói sản phẩm: - Docker *Cloud: - Azure 1. Docker Docker là một nền tảng cho developers và sysadmin để develop, deploy và run application với container. Nó cho phép tạo các môi trường độc lập và tách biệt để khởi chạy và phát triển ứng dụng và môi trường này được gọi là container.
Khi cần deploy lên bất kỳ server nào chỉ cần run container của Docker thì application sẽ được khởi chạy ngay lập tức.[6] 12 a) Một sô khái niệm Hình 1. 1 Kiến trúc docker - Docker Client: là cách tương tác với docker thông qua command trong terminal. Docker Client sẽ sử dụng API gửi lệnh tới Docker Daemon. - Docker Daemon: là server Docker cho yêu cầu từ Docker API.
Nó quản lý images, containers, networks và volume. - Docker Volumes: là cách tốt nhất để lưu trữ dữ liệu liên tục cho việc sử dụng và tạo apps. - Docker Registry: là nơi lưu trữ riêng của Docker Images. Images được push vào registry và client sẽ pull images từ registry.
Có thể sử dụng registry của riêng bạn hoặc registry của nhà cung cấp như : AWS, Google Cloud, Microsoft Azure. - Docker Hub: là Registry lớn nhất của Docker Images ( mặc định). Có thể tìm thấy images và lưu trữ images của riêng bạn trên Docker Hub ( miễn phí). - Docker Repository: là tập hợp các Docker Images cùng tên nhưng khác tags.
- Docker Networking: cho phép kết nối các container lại với nhau. Kết nối này có thể trên 1 host hoặc nhiều host. - Docker Compose: là công cụ cho phép run app với nhiều Docker containers 1 cách dễ dàng hơn. Docker Compose cho phép bạn config các command trong file docker-compose.yml để sử dụng lại.
Có sẵn khi cài Docker. - Docker Swarm: để phối hợp triển khai container. - Docker Services: là các containers trong production. 1 service chỉ run 1 image nhưng nó mã hoá cách thức để run image — sử dụng port nào, bao nhiêu bản sao container run để service có hiệu năng cần thiết và ngay lập tức.
13 b) Dockerfile Dockerfile là file config cho Docker để build ra image. Nó dùng một image cơ bản để xây dựng lớp image ban đầu. Một số image cơ bản: python, unbutu và alpine. Sau đó nếu có các lớp bổ sung thì nó được xếp chồng lên lớp cơ bản.
Cuối cùng một lớp mỏng có thể được xếp chồng lên nhau trên các lớp khác trước đó.[6] Các config : - FROM — chỉ định image gốc: python, unbutu, alpine… - LABEL — cung cấp metadata cho image. Có thể sử dụng để add thông tin maintainer. Để xem các label của images, dùng lệnh docker inspect. - ENV — thiết lập một biến môi trường.
- RUN — Có thể tạo một lệnh khi build image. Được sử dụng để cài đặt các package vào container. - COPY — Sao chép các file và thư mục vào container. - ADD — Sao chép các file và thư mục vào container.
- CMD — Cung cấp một lệnh và đối số cho container thực thi. Các tham số có thể được ghi đè và chỉ có một CMD. - WORKDIR — Thiết lập thư mục đang làm việc cho các chỉ thị khác như: RUN, CMD, ENTRYPOINT, COPY, ADD,… - ARG — Định nghĩa giá trị biến được dùng trong lúc build image. - ENTRYPOINT — cung cấp lệnh và đối số cho một container thực thi.
- EXPOSE — khai báo port lắng nghe của image.- VOLUME — tạo một điểm gắn thư mục để truy cập và lưu trữ data. Microsoft Azure 14 a) Microsoft Azure là gì? Hình 1. 2 Microsoft Azure Azure là một nền tảng điện toán đám mây được Microsoft ra mắt vào năm 2010. Các công cụ của Azure hỗ trợ người dùng lưu trữ dữ liệu không giới hạn, phát triển ứng dụng, quản lý dịch vụ trên internet mà không cần tới bộ nhớ và phần cứng máy tính cá nhân.
Mọi hoạt động đều thực hiện và xử lý thông qua trung tâm dữ liệu của Microsoft.[7] Tại Mỹ, có tới 90% công ty lớn nhất đất nước thuộc danh sách Fortune 500 đang sử dụng Microsoft Azure để thúc đẩy hoạt động kinh doanh. Các doanh nghiệp có thể tận dụng một loạt công cụ để nhanh chóng xây dựng, triển khai, quản lý các ứng dụng vận hành. So với các nền tảng đám mây khác, Azure mở rộng hơn, bảo mật hơn và mạnh mẽ hơn: - Kết hợp 3 dạng mô hình đám mây là IaaS (Cơ sở hạ tầng dưới dạng dịch vụ), PaaS (Nền tảng dưới dạng dịch vụ), SaaS (Phần mềm dưới dạng dịch vụ). - Linh hoạt, có thể di chuyển các tài các tài nguyên máy tính khi cần thiết.
- Nền tảng mở, hỗ trợ hầu hết mọi hệ điều hành, mọi ngôn ngữ lập trình, mọi công cụ. - Đáng tin cậy, SLA (cam kết chất lượng dịch vụ) đạt 99,95% và hỗ trợ 24/7.