Tải bản đầy đủ (.docx) (31 trang)

Đồ án 3 ngành công nghệ thông tin đề tài xây dựng ứng dụng ai chatbot hỗ trợ tìm kiếm thông tin thời tiết

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 (419.58 KB, 31 trang )

ĐẠI HỌC ĐÀ NẴNG
TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN 3
NGÀNH: CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI:
XÂY DỰNG ỨNG DỤNG AI CHATBOT HỖ TRỢ TÌM KIẾM THƠNG TIN
THỜI TIẾT


TÓM TẮT

Tên đề tài: Xây dựng ứng dụng AI chatbot hỗ trợ tìm kiếm thơng tin thời tiết

Mục tiêu của đồ án này là xây dựng ứng dụng di động di động giúp người
dùng tìm kiếm thơng tin bài hát dễ dàng và hiệu quả hơn. Hướng về mục tiêu này,
đồ án chia thành ba phần chính: giới thiệu các cơ sở lý thuyết liên quan, phân tích
và thiết kế hệ thống và cài đặt chương trình.
Phần đầu giới thiệu tổng quan lý thuyết cần thiết cho việc xây dựng ứng dụng
di động bao gồm tìm hiểu về hệ điều hành di động, ngơn ngữ lập trình javascript và
cơng cụ lập trình Visual Studio Code, những lý thuyết cần thiết để xây dựng ứng
dụng như tìm hiểu về React Native, thư viện Dialogflow và Flask.
Phần tiếp theo trình bày về các chức năng của hệ thống, phân tích và thiết kế hệ
thống sử dụng các biểu đồ gồm ca sử dụng, biểu đồ hoạt động, biểu đồ lớp, biểu đồ
tuần tự và thiết kế cơ sở dữ liệu.
Phần còn lại trình bày cách cài đặt chương trình và các kết quả khi chạy ứng
dụng. Qua kết quả chúng ta biết được các giao diện màn hình của ứng dụng cũng
như những chức năng của từng màn hình.
Cuối cùng là một số kết luận về ưu điểm, nhược điểm và hướng phát triển cho
đề tài.



LỜI CẢM ƠN

Em xin chân thành gửi lời cảm ơn đến các thầy cô trường Đại học Bách Khoa –
Đại học Đà Nẵng, đặc biệt là các thầy cô giáo khoa Công nghệ thông tin trong suốt
5 năm qua đã truyền đạt cho em những kiến thức quý báu để em hồn thành đồ án
tốt nghiệp này. Sự tận tình hướng dẫn của thầy cô cũng là một trong những yếu tố
quyết định đến sự thành công của đồ án.
Đặc biệt, em xin gửi lời cảm ơn đến PGS.TS. Nguyễn Tấn Khơi. Trong suốt
q trình làm đồ án, thầy đã tận tình hướng dẫn cách thực hiện đồ án cũng như chỉ
ra những thiếu xót, những mặt chưa được trong đồ án này để giúp em cải thiện đồ
án.
Cuối cùng em xin gửi lời cảm ơn đến gia đình, tất cả bạn bè, các anh chị em
trong khoa Công nghệ thông tin, tập thể sinh viên đã động viên, khuyến khích, ủng
hộ, chia sẽ giúp cho em có thêm nghị lực để vượt qua những thử thách trong suốt 5
năm học.
Mặc dù đã cố gắng để hoàn thành tốt đồ án này nhưng em biết sẽ không tránh
khỏi những thiếu sót. Do đó, em rất mong nhận được những ý kiến đóng góp q
báu của q thầy cơ và các bạn học cùng lớp để kiến thức của em trong lĩnh vực này
được hồn thiện hơn.
Sau cùng, em xin kính chúc quý thầy cô trong khoa Công nghệ thông tin, thầy
PGS.TS. Nguyễn Tấn Khôi, thật dồi dào sức khỏe, niềm tin để tiếp tục thực hiện sứ
mệnh cao đẹp của mình là truyền đạt kiến thức cho thế hệ mai sau.
Em xin chân thành cảm ơn!


LỜI CAM ĐOAN

Em xin cam đoan:
1. Nội dung trong đồ án này là do em thực hiện dưới sự hướng dẫn trực tiếp


của PGS.TS. Nguyễn Tấn Khôi.
2. Các tham khảo dùng trong đồ án đều được trích dẫn rõ ràng tên tác giả,

tên cơng trình, thời gian, địa điểm cơng bố.
3. Nếu có những sao chép khơng hợp lệ, vi phạm quy chế đào tạo, hay gian

trá, em xin chịu hoàn toàn trách nhiệm.
Sinh viên thực hiện


MỤC LỤC

TÓM TẮT......................................................................................................................i
LỜI CẢM ƠN...............................................................................................................ii
LỜI CAM ĐOAN.........................................................................................................iii
MỤC LỤC....................................................................................................................iv
DANH SÁCH CÁC BẢNG, HÌNH VẼ......................................................................vii
DANH SÁCH TỪ VIẾT TẮT......................................................................................ix
MỞ ĐẦU.......................................................................................................................1
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT..............................................................................3
1.1.

Kiến trúc hệ thống.........................................................................................3

1.2.

Giới thiệu về React Native và Visual Studio Code........................................6

1.2.1


Giới thiệu về React Native.........................................................................6

1.2.2

Giới thiệu về Visual Studio Code..............................................................7

1.3.

Giới thiệu về ngơn ngữ lập trình Javascript...................................................7

1.4.

Giới thiệu về ngơn ngữ lập trình Python và Flask framework.....................11

1.4.1

Python là gì?............................................................................................11

1.4.2

Flask là gì?...............................................................................................11

1.4.3

Cách thức hoạt động................................................................................13

1.5.

Giới thiệu về xử lý ngôn ngữ tự nhiên........................................................13


1.5.1

Xử lý ngôn ngữ tự nhiên là gì?................................................................13

1.5.2

Các bước xử lý.........................................................................................13

1.5.3

Các bài tốn và ứng dụng.........................................................................14

1.6.
1.6.1

Giới thiệu về Dialogflow.............................................................................15
Dialogflow là gì?.....................................................................................15


1.6.2
1.7.

Các khái niệm chính................................................................................16
Kết luận.......................................................................................................18

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG............................................19
2.1.

Mô tả yêu cầu..............................................................................................19


2.1.1

Yêu cầu chức năng...................................................................................19

2.1.2

Yêu cầu phi chức năng.............................................................................21

2.2.
2.2.1
2.3.

Thiết kế hệ thống.........................................................................................38
Thiết kế cơ sở dữ liệu..............................................................................43
Kết luận.......................................................................................................43



DANH SÁCH TỪ VIẾT TẮT
STT
1

TỪ VIẾT TẮT
REST

Ý NGHĨA
REpresentational State Transfer

2


MVC

Model View Controler

3

IDE

Integrated Development Environment

4

NLU

Natural Language Understanding

5

HTTP

HyperText Transfer Protocol

6

HTML5

HyperText Markup Language 5

7

8
9
10
11
12

TCP
URI
RDMS
JSON
XML
CSDL

Transmission Control Protocol
Uniform Resource Identifier
Relational Database Management System
JavaScript Object Notation
eXtensible Markup Language
Cơ sở dữ liệu


ĐỒ ÁN 3
GVHD: PGS.TS. NGUYỄN TẤN KHÔI

MỞ ĐẦU

1. Tổng quan về đề tài

Ngày nay với sự phát triển của công nghệ thông tin, đặc biệt điện thoại và thiết bị thông
minh đã trở nên phổ biến và được sử dụng rộng rãi trên thế giới. Những ứng dụng trên

thiết bị di động giúp đỡ con người trong nhiều lĩnh vực trong cuộc sống, trong đó có
những ứng dụng giúp con người có thể tìm kiếm thơng tin về thời tiết khi đi du lịch hoặc
đi công tác xa hay thậm chí là đặt phịng khách sạn. Bên cạnh đó, chatbot ngày càng phát
triển và được ứng dụng trong nhiều ứng dụng để hỗ trợ người dùng. Nắm bắt những xu
thế đó, em muốn xây dựng một ứng dụng di động có tích hợp chatbot để hỗ trợ người
dùng tìm kiếm thông tin thời tiết dễ dàng và thuận tiện.
2. Mục đích và ý nghĩa của đề tài

2.1. Mục đích
Ứng dụng giúp người dùng tìm kiếm thơng tin thời tiết dễ dàng và thuận tiện hơn.
Người dùng chỉ việc nhập địa điểm và thời gian cụ thể thì chatbot có thể trả lời ngay nội
dung thông tin thời tiết tại địa điểm đó một cách nhanh chóng. Bên cạnh đó, chatbot có
thể hỗ trợ đặt phịng khách sạn và đồng thời cũng có thể tán gẫu với người dùng.
2.2. Ý nghĩa
Vì ứng dụng được phát triển trên hệ điều hành di động (một hệ điều hành dành cho
các thiết bị di động) giúp người dùng có thể dể dàng tìm kiếm bài hát, nghe nhạc mọi lúc
mọi nơi
3. Phương pháp thực hiện

- Phân tích yêu cầu và các chức năng chính của ứng dụng.
- Phân tích và thiết kế hệ thống.
- Tìm hiểu các cơng nghệ và các cơng cụ được sử dụng để xây dựng ứng dụng.
Xây dựng ứng dụng di động:
 Ứng dụng chạy trên nền tảng Di động.

1


ĐỒ ÁN 3
GVHD: PGS.TS. NGUYỄN TẤN KHƠI


 Ngơn ngữ lập trình: Javascript.
 Cơng cụ lập trình: Visual Studio Code.
Xây dựng máy chủ:
 Backend: Flask.
 Sử dụng Dialogflow Service để xử lý ngôn ngữ tự nhiên.
4. Bố cục của đồ án

Đồ án bao gồm những nội dung sau:
Mở đầu
Chương 1: Cơ sở lý thuyết
Trình bày về các lý thuyết và cơng nghệ cần thiết để xây dựng ứng dụng di động, xử
lý ngôn ngữ tự nhiên và xây dựng chatbot.
Chương 2: Phân tích thiết kế hệ thống
Trình bày và phân tích về u cầu của hệ thống, thơng qua đó thiết kế các biểu đồ của
hệ thống, thiết kế cơ sở dữ liệu và các luống dữ liệu của hệ thống.
Chương 3: Cài đặt chương trình
Trình bày về mơi trường cài đặt và một số kết quả đạt được.
Kết luận và hướng phát triển
CHƯƠNG 1: CƠ SỞ LÝ THUYẾT

Chương này trình bày về: tổng quan lý thuyết cần thiết cho việc xây dựng ứng dụng
di động bao gồm ngôn ngữ lập trình Javascript và cơng cụ lập trình Visual Studio Code;
những lý thuyết cần thiết để xây dựng Back-end như tìm hiểu về firebase. Ngồi ra, trong
chương này cịn trình bày về kiến trúc hệ thống, tìm hiểu về Dialogflow service.

2


ĐỒ ÁN 3

GVHD: PGS.TS. NGUYỄN TẤN KHÔI

1.1. Kiến trúc hệ thống

Hình 1.1 Kiến trúc hệ thống của ứng dụng
1.2. Giới thiệu về React Native và Visual Studio Code
1.2.1 Giới thiệu về React Native
React Native là framework được tạo bởi Facebook, cho phép các dev sử dụng
JavaScript để làm mobile apps trên cả Android và iOS với cảm nhận và giao diện native.
React Native giải quyết được vấn đề về hiệu suất trên Hybrid và tối ưu được chi phí khi
mà phải viết nhiều loại ngôn ngữ native cho từng nền tảng di động.
1.2.2 Giới thiệu về Visual Studio Code
Visual Studio Code là một trình biên tập mã được phát triển bởi Microsoft dành cho
Windows, Linux và MacOS. Nó hỗ trợ chức năng debug, đi kèm với git, có syntax
highlighting, tự hồn thành mã thơng minh, snippets, và cải tiến mã nguồn. Nó cũng cho
phép tùy chỉnh, do đó, người dùng có thể thay đổi theme, phím tắt và các tùy chọn khác.
Nó miễn phí và là phần mềm mã nguồn mở, mặc dù gói tải xuống chính là có giấy phép.

3


ĐỒ ÁN 3
GVHD: PGS.TS. NGUYỄN TẤN KHÔI

1.3. Giới thiệu về ngơn ngữ lập trình Javascript
– JavaScript được biết đến lần đầu tiên là Mocha và chỉ ngay sau đó một thời gian nó lại
được đổi tên thành LiveScript và cuối cùng Netscape đã đổi tên thành JavaScript, bởi vì
sự phổ biến của Java như là một hiện tượng lúc bấy giờ.
– Và sau khi ngôn ngữ mới được tạo ra, nhóm marketing của Netscape đã yêu cầu Sun
cho phép họ đặt tên ngôn ngữ là JavaScript để truyền thông và quảng bá. Và đó cũng

chính là lý do mà tại sao hầu hết người dùng chưa sử dụng JavaScript bao giờ, đã nghĩ
rằng JavaScript có liên quan đến Java.
– Khoảng 1, 2 năm sau khi phát hành JavaScript trên trình duyệt, trình duyệt IE của
Microsoft đã lấy lại ngơn ngữ này và bắt đầu tạo ra ngôn ngữ của riêng mình có tên
là JScript. Cũng tại thời điểm đó, IE đã “thống trị” thị trường và khơng lâu sau đó
Netscape đã phải đóng cửa dự án của mình.
– Trước khi Netscape xuống dốc, vào năm 1997 họ đã chuyển JavaScript đến ECMA
International để làm cơng tác chuẩn hóa và viết đặc tả,… Cái tên ECMAScript đã được
hình thành từ đây.
– Trước đó Netscape đã phát hành một vài phiên bản ECMAScript và đến năm 1999 thì
phiên bản ECMAScript 3 được phát hành – phiên bản cuối cùng trước khi Netscape đi vào
“chế độ ngủ đông” trong suốt 10 năm tiếp theo. Trong suốt 10 năm qua, Microsoft đã
“thống trị” toàn bộ thị trường và hãng cũng không ngừng cải tiến các sản phẩm của mình.
Tiếp sau đó là sự ra đời của một loạt các trình duyệt khác như Firefox, Chrome và Opera.
– Phiên bản ECMAScript 4 đã bị “lãng quên”. Phiên bản ECMAScript 5 được phát hành
vào năm 2009, ECMAScript 6 được phát hành vào năm 2015 và phiên bản ECMAScript
7, 8, 9 cũng lần lượt được phát vào các năm 2016, 2017, 2018.

1.4. Giới thiệu về Python và Flask Framework
1.4.1. Python là gì?

4


ĐỒ ÁN 3
GVHD: PGS.TS. NGUYỄN TẤN KHƠI

Python là một ngơn ngữ lập trình thơng dịch (interpreted), hướng đối tượng
(objectoriented), và là một ngôn ngữ bậc cao (high-level), ngữ nghĩa động (dynamic
semantics). Python hỗ trợ các module và gói (packages), khuyến khích chương trình

module hóa và tái sử dụng mã. Trình thơng dịch Python và thư viện chuẩn mở rộng có sẵn
dưới dạng mã nguồn hoặc dạng nhị phân miễn phí cho tất cả các nền tảng chính và có thể
được phân phối tự do. Những đặc điểm của Python:
 Ngữ pháp đơn giản, dễ đọc;
 Vừa hướng thủ tục (procedural-oriented), vừa hướng đối tượng (object-oriented);
 Hỗ trợ module và hỗ trợ gói (package);
 Xử lý lỗi bằng ngoại lệ (Exception);
 Kiểu dữ liệu động ở mức cao;
 Có các bộ thư viện chuẩn và các module ngoài, đáp ứng tất cả các nhu cầu lập trình;
 Có khả năng tương tác với các module khác viết trên C/C++ (hoặc Java cho Jython,
hoặc .Net cho IronPython);
 Có thể nhúng vào ứng dụng như một giao tiếp kịch bản (scripting interface). Tại sao sử
dụng python? Python dễ dàng kết nối với các thành phần khác:
 Python có thể kết nối với các đối tượng COM, .NET (Ironpython, Python for .NET), và
CORBA, Java… Python cũng được hỗ trợ bởi Internet Communications Engine (ICE) và
nhiều công nghệ kết nối khác; Xây dựng ứng dụng iOS: RiBo – Chatbot quản lý thời gian
biểu cá nhân 20
 Có thể viết các thư viện trên C/C++ để nhúng vào Python và ngược lại;
 Python là ngôn ngữ có khả năng chạy trên nhiều nền tảng;
 Python có cho mọi hệ điều hành: Windows, Linux/Unix, OS/2, Mac, Amiga, và những
hệ điều hành khác. Thậm chí có cả những phiên bản chạy trên .NET, máy ảo Java, và điện
thoại di động (Nokia Series 60). Với cùng một mã nguồn sẽ chạy giống nhau trên mọi nền
5


ĐỒ ÁN 3
GVHD: PGS.TS. NGUYỄN TẤN KHÔI

tảng. Python rất đơn giản và dễ học: Python có cộng đồng lập trình rất lớn, hệ thống thư
viện chuẩn, và cả các thư viện mã nguồn mở được chia sẻ trên mạng. Python là ngôn ngữ

mã nguồn mở: Cài đặt Python dùng giấy phép nguồn mở nên được sử dụng và phân tối tự
do, ngay cả trong việc thương mại. Giấy phép Python được quản lý bởi Python Software
Foundation. Python là một trong những ngơn ngữ lập trình được sử dụng phổ biến nhất
trong lĩnh vực trí tuệ nhân tạo nhờ vào tính đơn giản của nó. Nó có thể được sử dụng một
cách trơn tru với các cấu trúc dữ liệu và các thuật toán AI được sử dụng thường xuyên
khác. Sự lựa chọn Python dành cho các dự án AI cũng xuất phát từ thực tế là Python có
nhiều library hữu ích có thể được sử dụng trong AI. Ví dụ: Numpy mang đến khả năng
tính tốn khoa học (scientific computation), Scypy thì dành cho tính tốn tiên tiến
(advanced computing) và Pybrain thì dành cho máy học (machine learning) trong Python
[5].
1.4.2. Flask là gì?
Flask là một micro web framework được viết bằng Python, không yêu cầu tool hay thư
viện cụ thể nào. “Micro” khơng có nghĩa là thiếu chức năng mà “micro” theo triết lý thiết
kế là cung cấp một lõi chức năng “súc tích” nhất cho ứng dụng web nhưng người dùng có
thể mở rộng bất cứ lúc nào. Flask ln hỗ trợ các thành phần tiện ích mở rộng cho ứng
dụng như tích hợp cơ sở dữ liệu, xác thực biểu mẫu, xử lý upload, các công nghệ xác
thực, template, email, RESTful..., chỉ khác là khi nào bạn muốn thì bạn mới đưa vào thơi.
Người dùng có thể tập trung xây dựng web application ngay từ đầu trong một khoảng thời
gian rất ngắn và có thể phát triển quy mô của ứng dụng tùy theo yêu cầu.
1.5. Giới thiệu về xử lý ngôn ngữ tự nhiên
1.5.1 Xử lý ngôn ngữ tự nhiên là gì?
Xử lý ngơn ngữ tự nhiên (natural language processing - NLP) là một nhánh của trí tuệ
nhân tạo tập trung vào các ứng dụng trên ngôn ngữ của con người. Trong trí tuệ nhân tạo
thì xử lý ngôn ngữ tự nhiên là một trong những phần khó nhất vì nó liên quan đến việc
phải hiểu ý nghĩa ngơn ngữ-cơng cụ hồn hảo nhất của tư duy và giao tiếp [9].

6


ĐỒ ÁN 3

GVHD: PGS.TS. NGUYỄN TẤN KHÔI

1.5.2 Các bước xử lý
Phân tích hình thái: Trong bước này từng từ sẽ được phân tích và các ký tự khơng
phải chữ (như các dấu câu) sẽ được tách ra khỏi các từ. Trong tiếng Anh và nhiều ngôn
ngữ khác, các từ được phân tách với nhau bằng dấu cách. Tuy nhiên trong tiếng Việt, dấu
cách được dùng để phân tách các tiếng (âm tiết) chứ không phải từ. Cùng với các ngôn
ngữ như tiếng Trung, tiếng Hàn, tiếng Nhật, phân tách từ trong tiếng Việt là một công
việc không hề đơn giản.
Phân tích cú pháp: Dãy các từ sẽ được biến đổi thành các cấu trúc thể hiện sự liên
kết giữa các từ này. Sẽ có những dãy từ bị loại do vi phạm các luật văn phạm.
Phân tích ngữ nghĩa: Thêm ngữ nghĩa vào các cấu trúc được tạo ra bởi bộ phân tích
cú pháp.
Tích hợp văn bản: Ngữ nghĩa của một câu riêng biệt có thể phụ thuộc vào những
câu đứng trước, đồng thời nó cũng có thể ảnh hưởng đến các câu phía sau.
Phân tích thực nghĩa: Cấu trúc thể hiện điều được phát ngôn sẽ được thông dịch lại
để xác định nó thật sự có nghĩa là gì.
Tuy nhiên, ranh giới giữa 5 bước xử lý này cũng rất mong manh. Chúng có thể được
tiến hành từng bước một, hoặc tiến hành cùng lúc - tùy thuộc vào giải thuật và ngữ cảnh
cụ thể [9].
1.5.3 Các bài toán và ứng dụng
Nhận dạng chữ viết: Có hai kiểu nhận dạng, thứ nhất là nhận dạng chữ in, ví dụ
nhận dạng chữ trên sách giáo khoa rồi chuyển nó thành dạng văn bản điện tử như dưới
định dạng doc của Microsoft Word chẳng hạn. Phức tạp hơn là nhận dạng chữ viết tay,
có khó khăn bởi vì chữ viết tay khơng có khn dạng rõ ràng và thay đổi từ người này
sang người khác. Với chương trình nhận dạng chữ viết in có thể chuyển hàng ngàn đầu
sách trong thư viện thành văn bản điện tử trong thời gian ngắn. Nhận dạng chữ viết của
con người có ứng dụng trong khoa học hình sự và bảo mật thơng tin (nhận dạng chữ ký
điện tử).
Nhận dạng tiếng nói: Nhận dạng tiếng nói rồi chuyển chúng thành văn bản tương

ứng. Giúp thao tác của con người trên các thiết bị nhanh hơn và đơn giản hơn, chẳng hạn
7


ĐỒ ÁN 3
GVHD: PGS.TS. NGUYỄN TẤN KHƠI

thay vì gõ một tài liệu nào đó bạn đọc nó lên và trình soạn thảo sẽ tự ghi nó ra. Đây cũng
là bước đầu tiên cần phải thực hiện trong ước mơ thực hiện giao tiếp giữa con người với
robot. Nhận dạng tiếng nói có khả năng trợ giúp người khiếm thị rất nhiều.
Tổng hợp tiếng nói: Từ một văn bản tự động tổng hợp thành tiếng nói. Thay vì phải
tự đọc một cuốn sách hay nội dung một trang web, nó tự động đọc cho chúng ta. Giống
như nhận dạng tiếng nói, tổng hợp tiếng nói là sự trợ giúp tốt cho người khiếm thị, nhưng
ngược lại nó là bước cuối cùng trong giao tiếp giữa robot với người.
Dịch tự động (machine translate): Như tên gọi đây là chương trình dịch tự động từ
ngôn ngữ này sang ngôn ngữ khác. Một phần mềm điển hình về tiếng Việt của chương
trình này là Evtrans của Softex, dịch tự động từ tiếng Anh sang tiếng Việt và ngược lại,
phần mềm từng được trang web vdict.com mua bản quyền, đây cũng là trang đầu tiên
đưa ứng dụng này lên mạng. Tháng 10 năm 2008 có hai công ty tham gia vào lĩnh vực
này cho ngôn ngữ tiếng Việt là công ty Lạc Việt (công ty phát hành từ điển Lạc Việt) và
Google, một thời gian sau đó Xalo_vn cũng đưa ra dịch vụ tương tự.
Tìm kiếm thông tin (information retrieval): Đặt câu hỏi và chương trình tự tìm ra
nội dung phù hợp nhất. Thơng tin ngày càng đầy lên theo cấp số nhân, đặc biệt với sự trợ
giúp của internet việc tiếp cận thông tin trở lên dễ dàng hơn bao giờ hết. Việc khó khăn
lúc này là tìm đúng nhất thơng tin mình cần giữa bề bộn tri thức và đặc biệt thông tin đó
phải đáng tin cậy. Các máy tìm kiếm dựa trên giao diện web như Google hay Yahoo hiện
nay chỉ phân tích nội dung rất đơn giản dựa trên tần suất của từ khoá và thứ hạng của
trang và một số tiêu chí đánh giá khác để đưa ra kết luận, kết quả là rất nhiều tìm kiếm
khơng nhận được câu trả lời phù hợp, thậm chí bị dẫn tới một liên kết khơng liên quan gì
do thủ thuật đánh lừa của các trang web nhằm giới thiệu sản phẩm (có tên tiếng Anh là

SEO viết tắt của từ search engine optimization). Thực tế cho đến bây giờ chưa có máy
tìm kiếm nào hiểu được ngôn ngữ tự nhiên của con người trừ trang www.ask.com được
đánh giá là "hiểu" được những câu hỏi có cấu trúc ở dạng đơn giản nhất. Mới đây cộng
đồng mạng đang xôn xao về trang Wolfram Alpha, được hứa hẹn là có khả năng hiểu
ngơn ngữ tự nhiên của con người và đưa ra câu trả lời chính xác. Lĩnh vực này hứa hẹn
tạo ra bước nhảy trong cách thức tiếp nhận tri thức của cả cộng đồng.
8


ĐỒ ÁN 3
GVHD: PGS.TS. NGUYỄN TẤN KHƠI

Tóm tắt văn bản: Từ một văn bản dài tóm tắt thành một văn bản ngắn hơn theo
mong muốn nhưng vẫn chứa những nội dung thiết yếu nhất.
Khai phá dữ liệu (data mining) và phát hiện tri thức: Từ rất nhiều tài liệu khác
nhau phát hiện ra tri thức mới. Thực tế để làm được điều này rất khó, nó gần như là mơ
phỏng quá trình học tập, khám phá khoa học của con người, đây là lĩnh vực đang trong
giai đoạn đầu phát triển. Ở mức độ đơn giản khi kết hợp với máy tìm kiếm nó cho phép
đặt câu hỏi để từ đó cơng cụ tự tìm ra câu trả lời dựa trên các thơng tin trên web mặc cho
việc trước đó có câu trả lời lưu trên web hay khơng (giống như trang Yahoo! hỏi và đáp,
nơi chuyên đặt các câu hỏi để người khác trả lời), nói một cách nơm na là nó đã biết xử
lý dữ liệu để trả lời câu hỏi của người sử dụng, thay vì máy móc đáp trả những gì chỉ có
sẵn trong bộ nhớ [9].
1.6. Giới thiệu về Dialogflow
1.6.1 Dialogflow là gì?
Dialogflow được đổi tên từ Api.ai sau khi được Google mua lại vào tháng 9 năm
2016. Tiền thân là một công ty nổi tiếng với trợ lý ảo Speaktoit.
Dialogflow hiện tại là miễn phí cho tất cả mọi người. Dialogflow cho phép bạn tạo ra
các kịch bản một cách dễ dàng kèm theo đó là Dialogflow cũng được phát triển trên
mền Machine Learning nên bạn hồn tồn có thể dạy cho con Bot của bạn biết cách xử lý

các trường hợp, ngữ cảnh khác nhau.
Dialogflow hiện có sẵn các kịch bản và Dialogflow cũng được dạy khá tốt với lượng
dữ liệu khá đồ sộ. Chỉ tiếc là đa phần Dialogflow làm việc tốt hơn với Tiếng Anh và một
số tiếng của các nước đơng dân khác.
Ngồi ra Dialogflow cịn cho phép bạn liên kết Chatbot của bạn với Messanger hay
Skype hay Slack… một cách rất đơn giản [10].
1.6.2 Các khái niệm chính
Agents là một khái niệm đại diện cho một mô-đun (model) NLU (Natural Language
Understanding – Phân tích ngơn ngữ tự nhiên)

9


ĐỒ ÁN 3
GVHD: PGS.TS. NGUYỄN TẤN KHÔI

Agents giúp bạn phân tích những gì người dùng đưa vào (như chuỗi ký tự hoặc âm thanh)
thành những dữ liệu mà bạn có thể xử lý được bằng lập trình. Bạn sẽ sử dụng Agents để
quản lý cuộc hội thoại thông qua Intents và Entities.

Hình 1.2 Mơ hình hoạt dộng của Dialogflow service
Intents là đại diện cho một ánh xạ những gì người dùng đưa vào và hành động sẽ
được thực hiện bởi phần mềm. Intents gồm các phần sau:
 Training Phrases
 Action
 Response
 Contexts
Entities là những công cụ được sử dụng để trích xuất các giá trị của tham số từ ngơn
ngữ tự nhiên. Bất kỳ những gì mà bạn muốn biết từ nội dung của người dùng đều sẽ có
một ENTITY tương ứng.


10


ĐỒ ÁN 3
GVHD: PGS.TS. NGUYỄN TẤN KHƠI

CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG

Chương này trình bày về: mơ tả chi tiết những yêu cầu của hệ thống bao gồm yêu cầu
chức năng và yêu cầu phi chức năng; phân tích và thiết kế hệ thống sử dụng ca sử dụng,
biểu đồ hoạt động, biểu đồ lớp, biểu đồ tuần tự và thiết kế cơ sở dữ liệu.
2.1. Mô tả yêu cầu
2.1.1 Yêu cầu chức năng
Ứng dụng phải đáp ứng được những chức năng sau:
-

Ứng dụng được tích hợp chatbot để hỗ trợ người dùng tìm kiếm thơng tin thời tiết và

đặt phòng.Người dùng sẽ nhắn tin trực tiếp với chatbot trên màn hình trị chuyện. Người
dùng nhắn tin những u cầu của mình cho chatbot. Sau đó chatbot sẽ xác định yêu cầu
của người dùng là gì và thực hiện những yêu cầu đó. Chatbot cũng có thể hỏi người dùng
một số câu hỏi để thực hiện được một số chức năng. Những chức năng cụ thể mà chatbot
có thể thực hiện được:
 Xem thơng tin thời tiết tại một địa điểm và thời gian cụ thể
 Đặt phịng khách sạn
 Đặt xe đưa đón
 Tán gẫu
2.1.2 u cầu phi chức năng
-


Yêu cầu hiệu suất:
 Ứng dụng phải xử nhanh chóng, đáp ứng thao tác của người dùng.
 Ứng dụng phải có hiệu năng cao, tiết kiệm nguồn năng lượng cho thiết bị.

-

Yêu cầu về giao diện người dùng:
 Giao diện thân thiện, dễ dàng sử dụng.
 Các thành phần giao diện được xây dựng trên nguyên tắc thói quen sử dụng của
người dùng.

11


ĐỒ ÁN 3
GVHD: PGS.TS. NGUYỄN TẤN KHÔI

 Người dùng thao tác trên một cửa sổ duy nhất để có cái nhìn tổng qt về ứng
dụng.
-

u cầu an tồn:
 Ứng dụng hoạt động độc lập, không gây ảnh hưởng đến các phần mềm khác và hệ
điều hành.

-

Yêu cầu bảo mật:
 Ứng dụng phải đảm bảo bảo mật thông tin người dùng.


-

Yêu cầu chất lượng phần mềm:
 Ứng dụng phải hoạt động tốt, thực hiện tốt các chức năng, tiết kiệm năng lượng.

12



×