Hiện nay, Trí tuệ nhân tạo hay trí thông minh nhân tạo (Artificial intelligence – viết tắt là AI) rất phổ biến, nó được ứng dụng cho rất nhiều ngành nghề từ y tế, giáo dục, kinh doanh, dịch vụ, truyền thông đến các ngành công nhiệp như vận chuyển, sản xuất,… Sáng tạo công nghệ trên thế giới có xu hướng luôn chú tâm đến sự phát triển trí tuệ nhân tạo AI. Chính vì thế, chỉ trong vòng một thời gian nữa, ngành trí tuệ nhân tạo sẽ thật sự đạt đến đỉnh cao. Với những ưu điểm của trí tuệ nhân tạo cùng những ứng dụng quan trọng trong nhiều lĩnh vực, ngành nghề hiện nay mà chúng đã đem đến rất nhiều giá trị cho nhân loại, giúp con người xử lý vấn đề nhanh hơn, tiết kiệm thời gian, công sức và chi phí. Và một trợ lý ảo trên máy tính sẽ giúp chúng ta có thể sử dụng máy tính một cách nhanh hơn, hiện đại hơn, không cần tốn nhiều thao tác, chỉ cần ra lệnh bằng giọng nói và máy tính sẽ giúp chúng ta làm nốt phần còn lại. Đó là lý do em chọn đề tài này.
Trang 1ĐỒ ÁN KIẾN THỨC NGÀNH
Ngành: Công nghệ thông tin
TÊN ĐỀ TÀI: NGHIÊN CỨU, XÂY DỤNG CHƯƠNG
TRÌNH TRỢ LÝ ẢO BẰNG NGÔN NGỮ PYTHON
HẢI DƯƠNG – NĂM 2021
Họ và tên sinh viên:
Lớp, khóa:
Giảng viên hướng dẫn:
Trang 2BỘ CÔNG THƯƠNG CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
NHIỆM VỤ ĐỒ ÁN/KHOÁ LUẬN TỐT NGHIỆP
1 Thông tin
Hệ đào tạo: Chính quy
Thời gian thực hiện đồ án: 8/2021
Giảng viên hướng dẫn:
2 Tên đề tài: Xây dụng chương trình trợ lý ảo bằng ngôn ngữ python
3 Điều kiện cho trước:
4 Nhiệm vụ chính của đồ án/khoá luận:
(Ký, ghi rõ họ và tên và đóng
dấu)
GIẢNG VIÊN HƯỚNG DẪN (Ký, ghi rõ họ và tên)
Trang 3BỘ CÔNG THƯƠNG CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
BẢN NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
Tên đề tài:
Họ tên sinh viên: Mã sinh viên:
Lớp, khoá: Mã số:
Giảng viên hướng dẫn: Học hàm, học vị:
Đơn vị công tác:
NỘI DUNG: 1 Đánh giá về tinh thần, thái độ của sinh viên trong quá trình thực hiện đề tài:
2 Đánh giá về bố cục, hình thức trình bày:
3 Đánh giá về những kết quả đạt được:
4 Kết luận: Tôi đồng ý (hoặc không đồng ý) cho sinh viên
được bảo vệ trước Hội đồng chấm bảo vệ Đồ án/Khoá luận tốt nghiệp 5 Điểm đánh giá:
Hải Dương, ngày….…tháng…….năm GIẢNG VIÊN HƯỚNG DẪN
(Ký, ghi rõ họ và tên)
2
Trang 5BỘ CÔNG THƯƠNG CỘNG HOÀ XÃ HỘI CHỦ NGHĨA VIỆT NAM
BẢN NHẬN XÉT CỦA GIẢNG VIÊN PHẢN BIỆN
Tên đề tài:
Họ tên sinh viên: Mã sinh viên:
Lớp, khoá Mã số:
Giảng viên phản biện: Học hàm, học vị:
Đơn vị công tác:
NỘI DUNG: 1 Đánh giá về bố cục, hình thức trình bày:
2 Đánh giá về sự không trùng lặp, tính trung thực:
3 Đánh giá về những kết quả đạt được:
4 Các vấn đề cần làm rõ hay bổ sung, chỉnh sửa (nếu có): 5 Kết luận: Tôi đồng ý (hoặc không đồng ý) cho sinh viên ………… được bảo vệ trước Hội đồng chấm bảo vệ Đồ án/Khoá luận tốt nghiệp 6 Điểm đánh giá:
Hải Dương, ngày…… tháng…….năm
GIẢNG VIÊN PHẢN BIỆN (Ký, ghi rõ họ và tên)
4
Trang 6MỤC LỤC
MỤC LỤC 4
MỞ ĐẦU 6
1 Lý do chọn đề tài 6
2 Ý nghĩa khoa học và thực tiễn của đề tài 6
2.1.1 Ý nghĩa khoa học 6
2.2.2 Ý nghĩa thực tiễn 7
CHƯƠNG 1: TỔNG QUAN, CƠ SỞ LÝ THUYẾT 11
1 Giới thiệu về ngôn ngữ python 11
1.1python là gì ? 11
1.2 xếp hạng ngôn ngữ 12
1.3 lịch sử python 14
2 Các thư viện python 14
2.1Giới thiệu một số gói thư viện thông dụng cho Python: 14
2.2.1 Thư viên NumPy 14
2.2.2 Thư viên SciPy 15
2.2.3 Thư viên pandas 15
2.2.4 Thư viên Scikit-learn 15
2.2.5 Thư viên IPython 15
2.2.6 Thư viên Matplotlib 16
2.2.7 Thư viên Statsmodels 16
2.2 Các thư viên sử dụng trong xây dụng chương trình trợ lý ảo bằng ngôn ngữ pyhton 16
3 Giới thiệu về sublime text 18
3.1 Sublime text là gì? 18
4 Chạy chương trình python 22
4.1 chạy trương trình python trên sublime text 22
CHƯƠNG 2: THIẾT KẾ CHƯƠNG TRÌNH 23
1 Các chức năng của trợ lý ảo 23
2 Nguyên lý hoạt động của trợ lý ảo 23
Trang 72.1 Nghe – chuyển thành dạng chữ 23
2.2 Hiểu – trả lời bằng âm thanh 24
CHƯƠNG 3: KẾT LUẬN 30
LỜI CẢM ƠN 31
6
Trang 8MỞ ĐẦU
1 Lý do chọn đề tài
Hiện nay, Trí tuệ nhân tạo hay trí thông minh nhân tạo (Artificialintelligence – viết tắt là AI) rất phổ biến, nó được ứng dụng cho rất nhiều ngànhnghề từ y tế, giáo dục, kinh doanh, dịch vụ, truyền thông đến các ngành công nhiệpnhư vận chuyển, sản xuất,…
Sáng tạo công nghệ trên thế giới có xu hướng luôn chú tâm đến sự phát triểntrí tuệ nhân tạo AI Chính vì thế, chỉ trong vòng một thời gian nữa, ngành trí tuệnhân tạo sẽ thật sự đạt đến đỉnh cao
Với những ưu điểm của trí tuệ nhân tạo cùng những ứng dụng quan trọngtrong nhiều lĩnh vực, ngành nghề hiện nay mà chúng đã đem đến rất nhiều giá trịcho nhân loại, giúp con người xử lý vấn đề nhanh hơn, tiết kiệm thời gian, công sức
và chi phí
Và một trợ lý ảo trên máy tính sẽ giúp chúng ta có thể sử dụng máy tính mộtcách nhanh hơn, hiện đại hơn, không cần tốn nhiều thao tác, chỉ cần ra lệnh bằnggiọng nói và máy tính sẽ giúp chúng ta làm nốt phần còn lại Đó là lý do em chọn
đề tài này
2 Ý nghĩa khoa học và thực tiễn của đề tài
2.1.1 Ý nghĩa khoa học
Trí tuệ nhân tạo hay trí thông minh nhân tạo (Artificial intelligence – viết tắt
là AI) là một ngành thuộc lĩnh vực khoa học máy tính (Computer science) Là trítuệ do con người lập trình tạo nên với mục tiêu giúp máy tính có thể tự động hóacác hành vi thông minh như con người
Trí tuệ nhân tạo khác với việc lập trình logic trong các ngôn ngữ lập trình là
ở việc ứng dụng các hệ thống học máy (machine learning) để mô phỏng trí tuệ củacon người trong các xử lý mà con người làm tốt hơn máy tính
Cụ thể, trí tuệ nhân tạo giúp máy tính có được những trí tuệ của con ngườinhư: biết suy nghĩ và lập luận để giải quyết vấn đề, biết giao tiếp do hiểu ngôn ngữ,tiếng nói, biết học và tự thích nghi,…
Trang 9Tuy rằng trí thông minh nhân tạo có nghĩa rộng như là trí thông minh trongcác tác phẩm khoa học viễn tưởng, nó là một trong những ngành trọng yếu của tinhọc Trí thông minh nhân tạo liên quan đến cách cư xử, sự học hỏi và khả năngthích ứng thông minh của máy móc.
2.2.2 Ý nghĩa thực tiễn
Trong ngành vận tải
Trí tuệ nhân tạo được ứng dụng trên những phương tiện vận tải tự lái, điển hình
là ô tô Sự ứng dụng này góp phần mang lại lợi ích kinh tế cao hơn nhờ khả năng cắt giảm chi phí cũng như hạn chế những tai nạn nguy hiểm đến tính mạng
Vào năm 2016, Otto, hãng phát triển xe tự lái thuộc Uber đã vận chuyển thành công 50.000 lon bia Budweisers bằng xe tự lái trên quãng đường dài 193 km Theo
dự đoán của công ty tư vấn công nghệ thông tin Gartner, trong tương lai, những chiếc xe có thể kết nối với nhau thông qua Wifi để đưa ra những lộ trình vận tải tốt nhất
Trong sản xuất
Trí tuệ nhân tạo được ứng dụng để xây dựng những quy trình sản xuất tối ưuhơn Công nghệ AI có khả năng phân tích cao, làm cơ sở định hướng cho việc raquyết định trong sản xuất
8
Trang 10Trí tuệ nhân tạo còn có thể chỉ ra những vấn đề mà các khóa học cần phải cảithiện Chẳng hạn như khi nhiều học sinh được phát hiện là gửi đáp án sai cho bàitập, hệ thống sẽ thông báo cho giáo viên đồng thời gửi thông điệp đến học sinh đểchỉnh sửa đáp án phù hợp Công nghệ AI còn có khả năng theo dõi sự tiến bộ của
Trang 11học sinh và thông báo đến giáo viên khi phát hiện ra vấn đề đối với kết quả học tậpcủa học sinh.
Hơn nữa, sinh viên còn có thể học hỏi từ bất cứ nơi nào trên thế giới thông quaviệc sử dụng những phần mềm có hỗ trợ AI Công nghệ AI cũng cung cấp dữ liệunhằm giúp sinh viên lựa chọn được những khóa học tốt nhất cho mình
Trong truyền thông
Đối với lĩnh vực truyền thông, sự phát triển của trí tuệ nhân tạo góp phần làmthay đổi cách thức tiếp cận đối với khách hàng mục tiêu Nhờ những ưu điểm củacông nghệ AI, các công ty có thể cung cấp quảng cáo vào đúng thời điểm, đúngkhách hàng tiềm năng, dựa trên việc phân tích các đặc điểm về nhân khẩu học, thóiquen hoạt động trực tuyến và những nội dung mà khách hàng thường xem trênquảng cáo
10
Trang 12 Trong ngành dịch vụ
Công nghệ AI giúp ngành dịch vụ hoạt động tối ưu hơn và góp phần mang đếnnhững trải nghiệm mới mẻ hơn và tốt hơn cho khách hàng Thông qua việc thu thập
và phân tích dữ liệu, công nghệ AI có thể nắm bắt thông tin về hành vi sử dụng dịch
vụ của khách hàng, từ đó mang lại những giải pháp phù hợp với nhu cầu của từngkhách hàng
Trang 13CHƯƠNG 1: TỔNG QUAN, CƠ SỞ LÝ THUYẾT
1 Giới thiệu về ngôn ngữ python
1.1python là gì ?
Python là một ngôn ngữ lập trình thông dịch (interpreted), hướng đối tượng(object-oriented), 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íchchương trình module hóa và tái sử dụng mã Trình thông dịch Python và thư việnchuẩ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
Sau đây là các đặ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 oriented)
(object- 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)
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.
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.
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à
Trang 14điện thoại di động (Nokia Series 60) Với cùng một mã nguồn sẽ chạy giốngnhau trên mọi nền 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.
1.2 xếp hạng ngôn ngữ
Hiện nay ngôn ngữ Python được xếp hạng thứ 3 trong Top 10 các ngôn ngữ
lập trình phổ biến nhất đang được thế giới sử dụng (Bảng xếp hạng năm 2016):
Trang 15Theo thống kê từ top 39 trường giảng dạy khoa học máy tính thì đa phần các
trường sử dụng ngôn ngữ Python để giảng dạy:
Trang 161.3 lịch sử python
Python đã được hình thành vào cuối những năm 1980, và việc thực hiện nó vào tháng 12 năm 1989 bởi Guido van Rossum tại Centrum Wiskunde & Informatica (CWI) ở Hà Lan như là một kế thừa cho ngôn ngữ ABC (tự lấy cảm
hứng từ SETL) có khả năng xử lý ngoại lệ và giao tiếp với Hệ điều hành
Amoeba Van Rossum là tác giả chính của Python, và vai trò trung tâm của ông trong việc quyết định hướng phát triển của Python.
Guido van Rossum
2 Các thư viện python
2.1Giới thiệu một số gói thư viện thông dụng cho Python:
2.2.1 Thư viên NumPy
Được tạo bởi Travis Oliphant, NumPy là một "ngựa kéo" phân tích thực sự của
Python Nó cung cấp cho người dùng cách làm việc với các mảng nhiều chiều,cùng một số lượng lớn các hàm để xử lý trên các toán tử toán học nhiều chiều trêncác mảng đó Mảng là các khối dữ liệu được sắp xếp theo nhiều chiều dựa trên cácvéc tơ và ma trận trong toán học Mảng thường hữu ích không chỉ trong việc lưu dữliệu mà cả việc tính toán nhanh các ma trận, điều không thể thiếu khi giải quyết cácvấn đề liên quan đến khoa học dữ liệu
Cài đặt: pip install numpy
Trang 172.2.2 Thư viên SciPy
Là một dự án gốc bởi Travis Oliphant, Pearu Peterson, and Eric Jones, SciPyhoàn thiện các tính năng của NumPy, nhằm cung cấp các thuật toán cho đại sốtuyến tính, không gian ma trận, xử lý tín hiệu và xử lý ảnh, tối ưu, biến đổiFourier,
Cài đặt: pip install scipy
Trang chủ: http://www.scipy.org
2.2.3 Thư viên pandas
pandas là thư viện thực hiện mọi thứ mà NymPy và SciPy không thể làm Nó
làm việc với các đối tượng cấu trúc dữ liệu, DataFrames và Chuỗi (Series) pandascho phép bạn có thể xử lý các bảng dữ liệu phức tạp của nhiều loại khác nhau (điều
mà các mảng của NumPy thông thể làm được) và chuỗi thời gian Bạn sẽ dễ dàngtải dữ liệu từ nhiều nguồn khác nhau, sau đó slide, dice, xử lý các thành phần cònthiếu, thêm, đổi tên, tổng hợp (aggregate), reshape và cuối cùng là trực quan dữ liệutheo ý của bạn
Cài đặt: pip install pandas
Trang chủ: http://pandas.pydata.org
2.2.4 Thư viên Scikit-learn
Bắt đầu như một phần của SciKits, Scikit-learn là lõi hoạt động của khoa học dữliệu trên Python Nó cung cấp tất cả những gì bạn cần để tiền xử lý dữ liệu, họcgiám sát và không giám sát, lựa chọn mô hình, validate và error metrics
Cài đặt: pip install scikit-learn
Trang chủ: http://scikit-learn.org/stable
2.2.5 Thư viên IPython
Một cách tiếp cận khoa học yêu cầu thử nghiệm nhanh các giả thuyết khác nhautrong một khoảng thời gian IPython được tạo bởi Fernando Perez để giải quyếtviệc cần thiết một lệnh Shell Python (dựa trên shell, trình duyệt web, và giao diệnứng dụng) với đồ họa tích hợp, các lệnh có thể tùy chỉnh, lịch sử phong phú (dướiđịnh dạng JSON) và khả năng tính toán song song để cải thiện hiểu năng tính toán
Cài đặt: pip install "ipython[notebook]"
Trang chủ: http://ipython.org
Trang 182.2.6 Thư viên Matplotlib
Được phát triển bởi John Hunte, matplotlib là một thư viện xây dựng các khốicần thiết để tạo các biểu đồ chất lượng từ mảng và trực quan và tương tác vớichúng
Cài đặt: pip install matplotlib
Trang chủ: http://matplotlib.org
2.2.7 Thư viên Statsmodels
Trước đây là một phần của SciKits, Statsmodels bổ sung các tính năng thống kêcho SciPy Nó bao gồm các mô hình tuyến tính tổng quát (generalized linearmodels), mô hình lựa chọn rời rạc (discrete choice models), phân tích chuỗi thờigian (time series analysis) và một chuỗi các thống kê mô tả như kiểm định tham số
và kiểm định phi tham số (parametric and nonparametric tests)
Giúp chương trình tương tác với hệ điều hành
Thư viên playsound
Phát âm thanh bằng python
Thư viên speech_recognition
Chuyển giọng nói thành văn bản
Thư viên time
Xử lý các lệnh liên quan đến thời gian
Thư viên sys
Cung cấp các hàm và các biến được sử dụng để thao tác các phần khác nhau của môi trường chạy Python
Thư viên ctypes
Cho phép sử dụng các lib sẵn có từ một ngôn ngữ khác
Thư viên wikipedia
Sử dụng được nhiều loại ngôn ngữ
Thư viên datetime
Trang 19 Thư viên json
Lưu trữ và trao đổi dữ liệu giữa các tiến trình với nhau
Thư viên strftime
Chuỗi biểu diễn các giá trị ngày, giờ
Thư viên gTTS
Chuyển văn bản thành giọng nói
Thư viên youtube_search import YoutubeSearch
Tìm kiếm trên youtube
Trang 203 Giới thiệu về sublime text
3.1 Sublime text là gì?
Sublime text hay còn biết đến là trình soạn thảo mã nguồn đa nền tảng độcquyền với giao diện của ngôn ngữ lập trình Python Công cụ này được nhiềudeveloper sử dụng rộng rãi vì vừa miễn phí vừa đầy đủ các tính năng hỗ trợ cầnthiết Nó hỗ trợ cả ngôn ngữ lập trình và ngôn ngữ đánh dấu cho phép người dùngthêm các chức năng vào plugin theo ý muốn
Vậy Sublime text có những ưu điểm gì mà thu hút các developer lựa chọnđến vậy? Cùng đến ngay với phần tiếp theo nhé!
Sublime text có ưu điểm gì?
Khả năng tùy biến
Khả năng tùy biến là một trong những ưu điểm nổi bật đầu tiên khi nhắc đến trìnhsoạn thảo Sublime text khi lập trình viên thiết kế website có thể hoàn toàn tùychỉnh như ý muốn thông qua các plugin Lập trình viên được cho phép cài đặt, nângcao, hoặc gỡ bỏ các plugin trực tiếp từ bên trong trình chỉnh sửa mà không cần phảithao tác lại từ đầu (khởi động)
Github, BitBucket và PackageControl.io là cộng đồng mà người dùng có thể tảixuống các gói của Sublime text rồi cho vào kho lưu trữ riêng Những cộng đồngtrên đều sử dụng trình soạn thảo này với vô số các plugin giúp tăng cường khả năngcủa nó Từ đó, bạn có thể biến công cụ này từ một trình soạn thảo mã nguồn đơngiản thành một IDE hoàn chỉnh và thảo sức xây dựng môi trường bạn muốn pháttriển trên đây