TensorFlow, một thư viện mã nguồn mở do Google phát triển, đã trở thành một cơng cụ mạnh mẽ trong việc xây dựng và triển khai các mơ hình học sâu deep learning phục vụ cho nhận diện ngơn
Trang 1_ BQ GIAO DUC VA DAO TAO | TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á KHOA: CÔNG NGHỆ THÔNG TIN
BÀI TẬP LỚN HỌC PHAN: TRI TUE NHAN TAO
DE TAI: XAY DUNG HE THONG NHAN DANG CHU SO VIET
TAY SU DUNG TENSORFLOW
Trang 2BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CONG NGHE DONG A KHOA: CONG NGHE THONG TIN
BAI TAP LON HOC PHAN: TRI TUE NHAN TAO
Nhom: 04
DE SO: 38
DE TAI: XAY DUNG HE THONG NHAN DANG CHU SO VIET
TAY SU DUNG TENSORFLOW
Sinh viên thực hiện | Mã sinh viên | Điếm băng số | Điểm bằng chữ
Vũ Minh Chiên 20211416
(Ky và ghi rõ họ tên) (Kỹ và ghi rõ họ tên)
Trang 3
MỞ ĐẦU
Nhận diện ngơn ngữ tự nhiên là một trong những thách thức quan trọng trong lĩnh vực xử lý ngơn ngữ tự nhiên (NLP) và trí tuệ nhân tạo Với sự phát triển nhanh chĩng của các ứng dụng thơng minh, việc phân tích, xử lý và hiểu ngơn ngữ trở thành yếu tổ cốt lỗi, mở ra nhiều cơ hội phát triển các hệ thống hỗ trợ giao tiếp giữa người và máy tính
Nhận diện ngơn ngữ (Languàe Identification - LID) là quá trình xác định ngơn ngữ của một đoạn văn bản đầu vào, đĩng vai trị quan trọng trong việc tiền xử lý dữ liệu trước khi tiến hành các nhiệm vụ NLP khác như dịch thuật tự động, phân tích cú pháp,
và tìm kiếm thơng tin đa ngơn ngữ
TensorFlow, một thư viện mã nguồn mở do Google phát triển, đã trở thành một cơng cụ mạnh mẽ trong việc xây dựng và triển khai các mơ hình học sâu (deep learning) phục vụ cho nhận diện ngơn ngữ Với sự hỗ trợ của Python, TensorFlow cung cấp các API dễ sử dụng, giúp các nhà nghiên cứu và kỹ sư dễ dàng xây dựng các mơ hình học máy từ đơn giản đến phức tạp
Trong báo cáo này, chúng tem sẽ tập trung vào việc ứng dụng TensorFlow giải quyết bài tốn nhận điện ngơn ngữ, thơng qua việc xây dựng mơ hình học sâu nhăm xác định chính xác ngơn ngữ của các đoạn văn bản đâu vào
Trang 4900 In 4
1.1 Giới thiệu công cụ phát triỂn 2-52 ST 22 S3 3222 21x11 crrerersei 6
1.2 Các thư viện và module được sử dụng - - - S eee tree erent eeeetnaeeeeeeenaaes 9 1.2.1 Thư viện TensorFlow nh nh kg ng kh kh 9
1.2.3 Thư viện Numpy Ăn ng ng ng ng KH tk kh 14 1.2.4 Thư viện OpenCY err TH TT ng gà TK kh 17
CHƯƠNG II: XÂY DỰNG CHƯƠNG TRÌNH 0 2 2 2222222 exsxsrrxerrrrerree 22
2.1.1 Xử lý ngôn ngữ tự nhiên (Natural Language Processing) là gì? 22 2.1.2 Thuật toán và tập dữ liệu ch ng kh kết 25 2.1.3 InpUt & OU[DUI TT HH TH TH TH HH KH kg 25 2.1.4 _ Quy trình bài tOÁP c LH KH KH kg KH tk hykt 26 2.2 Mô hình thuật toán sử dụng cho bài toán - che 27 2.1.1 Convolution là GÌ? - ch TH Tnhh KH kh ĐH KH 27 2.1.2 Vậy tính tích chập để làm gì? S522 2tS St xe 3S 2xx sxrxerrrrerrre 27 2.1.3 Mạng nơ-ron tích chập là gÌ? nh nh kh kh kh 29 2.1.4 CNN áp dụng như thế nào vào nhận diện ngôn ngữ tự nhiên (NLP)? 30 2.1.5 Các lớp CNN được xây dựng trong bài toán Ăn nhnnnhehhheee 32 2.3 Mô tả quá trình đào tạo máy với CNNs và Tensorflow 33 2.4 Cấu trúc chương trình +: S2 S2 St St SE SE E223 EEEEEE 1221151111 2E Trrre 39 2.5 Các giao diện chương trình cece eens eee nh ng kết 41
CHƯƠNG III: KÉT QUÁ THỰC NGHIỆM CHƯƠNG TRÌNH .- 55 42
3.1 Mô tả giao diện chính n n nnnnnn hnnnnh gà 42
1.2.3 Mau thử nghiệm 3.00.00 ccc cccccccessescsecessesesesscscsecessesesesaessesessseseasesseeaeeees 43 1.2.4 Mẫu thử nghiệm 4.000.000 cccccccecsescsecessesesesscecsecessesesesacecseessesesesasesseesaeeees 43 1.2.5 Mau thir nghiém 5.00.00 cccccccccessescsececsesesesscscseesesesesacecsesesesesesacesseesaeeees 43 1.2.6 Mẫu thử nghiệm 6 - (2-52 12223 St SE 2322353 121 E335 1E1 1E E1 rrree 44
4
MỤC LỤC
Trang 51.2.7 Mẫu thử nghiệm 7 - 2-52 222 St S322 E3 121 E335 1E1 1E re rrvrrrec 44 1.2.8 Mẫu thử nghiệm 8 S2 S2 12321 2v SE 23222153 1 1 E115 E11 xxx vrrrờc 44 1.2.9 Mẫu thử nghiệm 9 L5 S22 2323 v SE 232111511211 1151111111 HH rrrờc 45 1.2.10 Mẫu thử nghiệm 1( - -:- S2 2 St S323 3 E3 2E E353 ty nh rec 45
CHUONG IV: KET LUAN ng - 46
4.1 Các nội dung đã đạt được va chưa đạt được - - nh nhe nhe 46 LAM na A ÔỎ 46
IV \180i130/9:7 0/864 ản 47
9
Trang 6CHUONG I: CO SO LY THUYET
1.1 Giới thiệu công cụ phát triển
Đề tài xây dựng hệ thống nhận dạng chữ số viết tay là một đề tài thú vị trong lĩnh vực trí tuệ nhân tạo, đặc biệt là phân tích hình ảnh và học máy Để phát triển hệ thông này một các hiệu quả, nhóm 04 sử dụng các công cụ phát triển sau:
1.1.1 PyCharm Thứ nhất, nhóm sử dụng công cụ ứng dụng PyCharm lưu trữ và khởi chạy dự án
Về công cụ PyCharm là một môi trường phát triển tích hợp (IDE) phô biến, được thiết
kê đặc biệt cho Python và công cụ này còn có những đặc trưng nối trội hơn so với công
cụ ứng dụng khác như:
© H6 tro Da Nén Tang © H6 tro Debugging Manh Mé
© H6 tro Ngén ngit Python Todn Dién ~~ Tich hop Céng cu Quan ly Co sé Dit
© 7ích hợp Hệ Thống Kiểm Soát Phiên liệu
Trang 7Ưu điểm Nhược điểm
Tính Năng Tự Động Hoá: PyCharm
cung cấp tự động hoàn thành mã, gợi ý
và sửa lỗi, giúp tăng năng suất và hiệu
qua làm việc
Tốc độ và Hiệu Suất: PyCharm có thê chạy chậm trên các máy tính có cầu hình yếu hoặc khi làm việc với các dự án rất lớn
Tỉnh Năng Gỡ Lỗi Mạnh Mẽ: Cung
cấp công cụ gỡ lỗi mạnh mẽ với giao
diện người dùng thân thiện, dễ sử dụng
Giá cả: PyCharm có phiên bản miễn phí
(Community Edition), nhung cac tinh nang nâng cao chỉ có trong phiên bản trả phí (Professional Edition), có thể là một rào cản đối với những người dùng cá nhân hoặc
Hồ trợ Phát Triển Web: Tích hợp tốt
voi cac framework phat trién web
Python, nhu Django va Flask, giup don
giản hóa quy trinh phat trién web
Can cau hinh nhiều: Đôi khi việc cầu hình môi trường làm việc có thê phức tạp và mắt thoi gian
Trang 8
ython’
Hình l2 Ngôn ngữ lập trinh Python
e Thong dich va Dong s_ Hỗ trợ Lập trình Hướng dỗi tượng và
Lập trình Hàm
Cùng với những đặc trên, thì Python cũng có những ưu điểm và nhược điêm của ngôn ngữ như:
Phat Trién Nhanh Chong Không Phù Hợp cho ng dạng Yêu Cau Hi
Suát Cao Cộng đồng Lớn và Tài liệu Phong phú | Quán Lý Bó Nhớ Thiếu Hiệu Quá
Khá Năng Tích Hợp Tốt Kha Nang Pa Luông Chưa Tối Ưu
Ứng dựng Róng Bãi Không phù hợp cho Mobile Development
hỗ trợ mạnh mẽ như gỡ lỗi, tự động hoàn thành mã, và quản lý dự án, giúp quá trình
Trang 9phát triển trở nên mượt mà hơn Kết hợp Python và PyCharm, thì sẽ có một bộ công cụ mạnh mẽ đề xây dựng hệ thống nhận dạng chữ số viết tay hiệu quả
1.2 Các thư viện và module được sử dụng
Trong đề tài xây dựng hệ thống nhận dạng chữ số viết tay hiệu quả, các thư viện Python như TensorFlow, Gradio, NumPy, và OpenCV đóng vai trò quan trọng trong việc tạo ra một giải pháp mạnh mẽ và chính xác
1.2.1 Thư viện TensorFlow
TensorFlow là một trong những thư viện mã nguồn mở phô biến nhất để phát triển và triển khai các mô hình học máy, đặc biệt 1a hoc sau (deep learning) No duoc phát triển bởi Google và đã trở thành một công cụ mạnh mẽ cho các nhà nghiên cứu, nhà phát triển, và kỹ sư dữ liệu
¥
TensorFlow
\
S Hình 1.2.1.1 Thư viện TensorFlow
Dưới đây là ưu điểm nhược điêm của thư viện TensorFlow:
Hế trợ đa nên táng Yêu cầu cáu hình phần cứng cao
7m viện phong phú và linh hoạt Tài liệu và hố trợ ¿hông đồng nhất
Kha năng mở rộng tốt Tĩnh tương thích ngược chưa hoàn chỉnh
Bang 1.2.1.1 Cac uu nhuoc diém cia thu vién TensorFlow
Trang 101.2.1.2 Chức măng của thư viện TensorFlow Thư viện TensorFlow là một nên tảng mã nguôn mở mạnh mẽ, phô biên trong xIviệc phát triển và triển khai các mô hình học may (machine learning) và trí tuệ nhân tạo (AI) Dưới đây là một số chức năng chính của TensorFlow:
Layers va Activation Functions: Cung cấp các lớt mang no-ron (neural network layers) va cac ham k
hoat (activation functions) dé xay dựng các mô hinh phức tạp
Huấn luyện vả tối ưu hóa
mô hình (Model Training
Triển khai mô hình
(Model Deployment) TensorFlow Serving: Cung cấp công cụ để triển khai
mô hỉnh học máy trong môi trường sản xuất
TensorFlow Lite: Cho phép triển khai mô hình trên các thiệt bị dị động và nhúng với hiệu suất cao
10
Trang 11TensorFlow.js: Cho phép triển khai mô hình trên trình duyệt và các ứng dụng JavaScript
Distributed Training: Cung cap cac API dé huan luyén m6 hinh trén nhiéu GPU hoặc nhiều máy khác nhau
Mô hình hóa thời gian
thực (Real-time Model
Inference)
e TensorFlow Extended (TFX): Cung cap cac céng cu
để xây dựng, trién khai, va quan ly pipeline hoc may trong môi trường sản xuat
Bang 1.2.1.2 Các chức năng của thư viện TensorFlovw 1.2.1.3 Cac module s# dung trong thư viện tensorflow Thư viện TensorFlow bao gồm nhiều module và gói con (submodules) cung cấp các chức năng khác nhau đề hồ trợ việc phát triên và triên khai các mô hình học máy Dưới đây là các module chính của TensorFlow:
Cung cap các công cụ đề tạo và xử lý các pipeline dữ liệu
Hồ trợ tải, xử lý và biên đôi dữ liệu trước khi đưa vào mô
hình huấn luyện
tensorflow.linalg Cung cập các phép tính đại số tuyên tính như ma trận,
phép nhân, tính định thức, và các phép biến đối ma trận
tensorflow.math Cung cap các phép toán sô hoc co ban va nang cao như
phép cộng, trừ, nhân, chia, hàm số học, và các phép toán
11
Trang 12
tensorflow.random Hỗ trợ tạo ra các số ngau nhiên, tensor ngau nhiên, và các
phép biến đổi ngẫu nhiên khác
tensorflow.nn
Cung cap cac ham lién quan dén mang no-ron, bao g6m các hàm kích hoạt, phép biên d6i convolution, va cac ham mất mát đặc biệt
tensorflow.losses Cung cấp các hàm mất mat (loss functions) dé tinh toan
lỗi của mô hình trong quá trình huấn luyện
†ensorflow.saved_ model Cung câp công cụ đề lưu và tải các mô hình TensorFlow,
hỗ trợ triển khai mô hình trong môi trường sản xuất
tensorflow.image xoay, thay đôi kích thước Cung cấp các hàm đề xử lý và biến đôi hình ảnh như cắt,
Bang 1.2.1.3 Cac module trong the vién TensorFlow
1.2.2 Thư viện Gradio
Gradio là một thư viện mã nguồn mở cho phép tạo giao diện người dùng (UI)
đơn giản để tương tác với các mô hỉnh học máy Nó giúp nhà phát triển nhanh chóng triển khai và kiêm thử mô hỉnh trực tiếp từ trình duyệt mà không cần thiết kế giao diện phức tạp
øradio
Hình 1.2.2.1 Thư viện Gradio
12
Trang 13Dưới đây là các ưu và nhược điểm của thư viện Gradio:
Bang 1.2.2.1 Cac uu nhược điểm của thư viện Gradio
1.2.2.2 Chức măng của thư viện của Gradio Thư viện Gradio là một công cụ mạnh mẽ trong Python giúp bạn dé dang tao cac giao diện người dùng đơn giản và nhanh chóng cho các ứng dụng máy học hoặc xử lý
dữ liệu Dưới đây là một số chức năng chính của Gradio:
oo e H6tro tinh nang chinh swa và cập nhật
e Hỗ trợ nhiêu loại input va output
e_ Triên khai mô hình máy học
1.2.2.3 Cac module s# dung trong thir vién Gradio Thư viện Gradio có nhiều module và lớp hỗ trợ cho việc tạo vả quản lý các giao diện người dùng một cách đễ dàng Dưới đây là một số module chính trong Gradio:
Đây là module chính và phô biến nhất trong Gradio Interface cho gr.Interface phép tạo một giao diện người dùng đơn giản chỉ với một vài dòng
mã
grBlocks Blocks là một module mạnh mẽ hơn, cho phép xây dung cac giao
điện phức tạp hơn với nhiêu loại thành phan và bô cục tủy chỉnh Module này chứa các lớp và hàm giúp định nghĩa các loại input khác
gr.inputs nhau nhu TextBox, Slider, Image, Audio, File, v.v Nhimg input nay
được sử dụng để nhận dữ liệu từ người dùng
13
Trang 14State là một module đặc biệt giúp duy trì trạng thái giữa các tương
gr.State tác của người dùng Nó rất hữu ích khi bạn cần theo dõi hoặc lưu trữ
dữ liệu người dùng trong suốt quá trình tương tác
Bang 1.2.2.3 Cac module trong thư viện Gradio 1.2.3 Thư viện Numpy
NumPy (Numerical Python) là một thư viện mã nguồn mở cơ bản cho khoa học
dữ liệu và tính toán số trong Python Nó cung cấp hỗ trợ cho các mảng đa chiều (ndarray)
và các hàm toán học đề thao tác với các mảng này, giúp xử lý các phép tính số học nhanh
Hiệu suất cao và xz lý nhanh Giới hạn ch¿ cho các kiều dữ liệu đồng nhà
Hồ trợ máng đa chiều (ndarray) Không phù hợp cho các phép toán quy
Trang 151.2.3.2 Chức măng của thư viện NumDy Thư viện NumPy là một thư viện cơ bản và quan trọng trong Python, đặc biệt hữu ích cho khoa học đữ liệu, tính toán khoa học, và phát triển các ứng dụng máy học NumPy cung câp một tập hợp các chức năng mạnh mẽ đê làm việc với mảng số học (array) và các phép toán trên mảng Dưới đây là các chức năng chính của thư viện
Chi muc va cat mang: NumPy hé tro các thao tác chỉ mục và cắt mảng phức tạp, cho phép đễ dàng truy cập và thay đổi phần tử trong mảng
Tính toán vector hóa
Pháp toán số học: NumPy hỗ trợ các phép toán số học (cộng, trừ, nhân, chia) trên mảng với hiệu suất cao và cú pháp đơn giản Điều này giúp tránh việc
sử dụng vòng lặp trong Python, cải thiện hiệu suất Phép toán ma trận: NumPy cung cap cac ham dé thực hiện các phép toán ma trận như nhân ma trận, chuyền vị, tính định thức, và nghịch đảo ma trận
Các hàm thông kê và toán học Hàm thông kê: NunPy cung cấp các hàm tính toán
thông kê như trung bình (mean), phương sai (var),
độ lệch chuân (std), tong (sum), tích (prod), giá trị lớn nhất (max), và nhỏ nhất (min)
Hàm toán học: Bao gồm các hàm như lượng giác (sin, cos, tan), mu (exp), logarit (log), can bac hai
15
Trang 16
Broadcasting
e NumPy hé tro mét tinh nang goi la broadcasting
cho phép thực hiện các phép toán trên mảng có kích thước khác nhau bằng cách tự động mở rộng mảng nhỏ hơn đề phù hợp với mảng lớn hơn
1.2.3.3
Bang 1.2.3.2 Các chức năng của the vién NumPy
Cac module sw# dung trong thir vién Numlpy
Thư viện NumPy bao g6m nhieu module, m6i module cung cap cac chire nang khác nhau đề thao tác với mảng và thực hiện các phép toán khoa học Dưới đây là một
số module chính của NumPy:
Laguerre, va Hermite
numpy.random Day la module dé sinh số ngẫu nhiên và các mảng ngầu nhiên
Nó cung cấp các hàm tạo mầu ngầu nhiên từ các phân phôi xác suât khác nhau như phân phôi chuâãn, phân phối đều, phân phôi
Bang 1.2.3.3 Cac module sử dụng trong thư viện NuinPy
16
Trang 171.2.4 Thư viện OpenCV
OpenCV (OpenSource Computer Vision Library) la mét thu vién ma nguồn mở phổ biến cho xử lý ảnh và thị giác máy tính Nó cung cấp các công cụ và thuật toán cho việc phân tích, nhận dạng, và xử lý hình ảnh và video
©}
OpenCV
Hình 1.2.4.1 Thu vién OpenCV (OpenSource Computer Vision Library)
Dưới đây là các ưu điểm và nhuge diém của thư viện OpenCV:
Pa nên tảng và linh hoạt Giới hạn trong xz lý học sâu
Hiệu suát cao và tới ưu hóa rốt Quan lý bó nhớ th¿ công
Thư viện OpenOV cung cấp nhiều chức năng mạnh mẽ cho xử lý ảnh và thị giác
máy tính Nó bao gồm hàng loạt các thuật toán và công cụ để phân tích và thao tác hình ảnh và video Dưới đây là các chức năng chính của OpenCV:
17
Trang 18Chức năng Nội dung
Thay đổi kích thước (Resize): Thay déi kich thước ảnh (phóng to hoặc thu nhỏ)
Cất ánh (Cropping): Cắt và trích xuất các phần
cụ thể từ ảnh
Bién déi mau sac (Color Space Conversion Chuyên đôi giữa các không gian màu khác nhau như BGR, RGB, HSV, Grayscale, v.v
Lam mé va lec anh (Blurring and Filtering): Ap dụng các b6é loc Gaussian, trung vi (median), Bilateral, và các bộ lọc khác để làm mờ và xử lý ảnh
Phát hiện biên và cạnh (Edge
Detection): Thuật toán Canny Edge Detection: Một tron
những thuật toán phát hiện biên phô biến nhất được sử dụng đề xác định các đường viễn và biên cua vat thé trong anh
Cac bé lec Sobel va Laplacian: Phat hién ca canh bang cách tính toán độ dốc của cường độ
18
Trang 19Cascade va HOG (Histogram of Orient
Gradients) dé phát hiện khuôn mặt và mắt
Nhén dang vat thé (Object Recognition): Si
dụng các ky thuật nhw HOG +SVM, YOLO (You Only Look Once), va SSD (Single Shot MultiB:
Detector)
Phát hiện và theo dõi vi thể chuyển don (Obiect Tracking): Sử dụng các thuật toán như MeanShift, CamShift, KLT (Kanade-Luca Tomasi), va MOSSE
Phan tich va xu ly video (Vided
Analysis and Processing):
Phát hién chuyén déng (Motion Detection): Phé hiện và phân tích chuyển động trong video, ứng dụng cho giám sát và phân tích hành vi Theo dõi vát thể (Object Tracking): Theo dõi cí vật thể qua các khung hình video
Trích xuất khung hình (Frame Extraction): Xử
lý từng khung hình riêng lẻ từ video để phân tích hoặc áp dụng thuật toán xử lý ảnh
Xử lý hình học (Geometric
Transformations): Biếu đổi Affine và Perspective: Thực hiện các
phép biến đổi hình học như xoay, dịch chuyên, kéo dai, va co giãn ảnh
hiện các đường thăng và đường tròn trong ảnh
19
Trang 20Phân đoạn và phân loại ảnh
(Image Segmentation and
Classification):
e Phan doan anh (Image Segmentation): Sử dun
các kỹ thuật như Watershed, GrabCut, và K- means clustering đề phân đoạn ảnh thành các vùng riêng biệt
Recognition - OCR): Tich hop voi Tesseract
OCR dé nhận diện và trích xuất văn bản từ ảnh
Hình 1.2.4.2 Cac chức năng của the vién OpenCV 1.2.4.3 Cac module s# dung trong thir vién OpenCV Thư viện OpenCV bao gém nhiều module, mỗi module cung cấp các chức năng chuyên biệt cho các tác vụ xử lý ảnh và thị giác máy tính Các module này được thiết kế
đề thực hiện các phép toán cụ thê, từ xử lý ảnh cơ bản đên học sâu Dưới đây là các
module chính của OpenOV:
Core Module (core)
Chứa các chức năng cơ bản và các lớp hỗ trợ xử lý ảnh và
ma trận, chẳng hạn như Mat (ma trận đa chiều), các phép toán đại số tuyến tính, các hàm thống kê, và các công cụ
cơ bản khác
Image Processing Module
(imgproc)
Cung cấp các công cụ xử lý ảnh như làm mờ, lọc anh, bién đổi hình học, phát hiện biên và cạnh, phân đoạn ảnh, vả các kỹ thuật khác để xử lý và phân tích ảnh
High-Level GUI Module
(highgui) Cung cấp giao điện đồ họa người dùng cơ bản đề hiền thị
hỉnh ảnh và video, và xử lý các sự kiện bàn phím và chuột
Nó rất hữu ích cho việc hiển thị kết quả trong quá trình phát triển
20
Trang 21Image Input and Output
(imgcodecs)
Hỗ trợ việc đọc và ghi các định dạng hình ảnh khác nhau
như JPEG, PNG, TIFF, BMP, và nhiều định dạng khác
Video Input and Output
(ml)
Chứa các thuật toán học máy cô điển như SVMI (Support
Vector Machine), KNN (K-Nearest Neighbors), Decis
Trees, Random Forests, va cac thuat toan clustering
Calib3d Module (calib3d)
Chứa các công cu cho hiệu chỉnh camera, tái thiết 3D, và các phép biến đôi hình học 3D, như biến đôi affine và biến déi projective
Structured Light Module
(structured_light)
Cung cap các công cụ cho kỹ thuật chiêu sáng có câu trúc
để quét và tái tạo hình ảnh 3D
Deep Neural Networks
Module (dnn) Hỗ trợ tải và chạy các mô hình học sâu được huân luyện
trước từ các framework nhu TensorFlow, Caffe, và PyTorch, sử dụng các mô hình học sâu để phát hiện và nhận dạng đối tượng
Hình 1.2.4.3 Cac module trong thu vién OpenCV
21
Trang 22
CHUONG II: XÂY DỰNG CHƯƠNG TRÌNH
2.1 Mô tả bài toán
2.1.1 Xử lý ngôn ngữ tự nhiên (Natural Language Processing) là gì?
Về cơ bản, các hệ thống NLP cô gắng phân tích và trong nhiều trường hợp, "hiểu" ngôn ngữ của con người Các hệ thông này thường có trách nhiệm nhận dạng giọng nói của con người (nói cách khác, có thê "nghe" những gì ai đó đang nói), hiểu nó (tìm ra bối cảnh của những gì đã nói) và tạo ra phản hồi ngôn ngữ tự nhiên (tức là nói lại) Với sự trợ giúp của các thuật toán phức tạp và phân tích thông minh, Xử lý ngôn ngữ tự nhiên (NLP) là một công nghệ đang bắt đầu định hình cách chúng ta tương tác với thế giới NLP đã mở đường cho các trợ lý kỹ thuật số, chatbot, tìm kiếm bằng giọng nói và vô số ứng dụng mà chúng ta chưa hình dung ra Nếu bạn đã trò chuyện với trợ lý
kỹ thuật số hoặc chatbot gần đây, bạn có thể đã tận mắt chứng kiến chúng ta đã tiễn xa đến mức nào về mặt tính vi công nghệ Tuy nhiên, chúng ta vẫn còn một chặng đường dài phía trước
Tất nhiên, NLP vẫn chưa có quỹ đạo tăng trưởng không giới hạn Các nhà phát trién NLP van con phải đối mặt với nhiều vấn đề nhưng chúng ta đã bắt đầu tìm ra cách giải quyết chúng Dưới đây là cách vấn đề chính mà các nhà phát triển gặp phải trong quá trình phát triển hệ thống:
Anh, nhưng nếu bạn đang nghĩ đến việc tiếp cận đối tượng quốc tế và/hoặc đa văn hóa, bạn sẽ cần cung cấp hỗ trợ cho nhiều ngôn ngữ
Các ngôn ngữ khác nhau không chỉ có các bộ
từ vựng khác nhau rất nhiều mà còn có các loại cụm
từ khác nhau, các chế độ biến tố khác nhau và các kỳ vọng văn hóa khác nhau Bạn có thê giải quyết vẫn đề này với sự trợ giúp của các mô hình "phô quát" có thể chuyền ít nhất một số kiến thức sang các ngôn ngữ khác Tuy nhiên, bạn vẫn cần dành thời gian đào tạo lại hệ thống NLP của mình cho từng ngôn ngữ
22
Trang 23e_ Dữ liệu đào tao Về ban chat, NLP la tat cả về việc phân tích
ngôn ngữ đề hiểu rõ hơn Con người phải đắm chỉm trong một ngôn ngữ liên tục trong một khoảng thời gian nhiều năm để trở nên thành thạo ngôn ngữ đó; ngay cả AI tốt nhất cũng phải dành nhiều thời gian để đọc, nghe và sử dụng ngôn ngữ đó Khả năng của hệ thông NLP phụ thuộc vào dữ liệu đào tạo được cung cấp cho nó Nếu bạn cung cấp cho hệ thống dữ liệu xấu hoặc đáng ngờ, nó sẽ học những điều sai hoặc học theo cách không hiệu quả
s_ Thời gian phát triển Tương tự như vậy, bạn cũng cân phải suy nghĩ
về thời gian phát triển cho một hệ thống NLP
Để được đào tạo đầy đủ, AI thường phải xem xét hàng triệu điểm đữ liệu Việc xử lý tất cả đữ liệu
đó có thể mất cả đời nếu bạn sử dụng một chiếc PC không đủ mạnh Tuy nhiên, với một mô hình học sâu phân tán và nhiều GPU hoạt động phối hợp, bạn có thé rút ngắn thời gian đảo tạo xuống chỉ còn vải gid Tất nhiên, bạn cũng cần phải tính đến thời gian để phát triển sản phẩm từ đầu—trừ khi bạn đang sử dụng các cong cu NLP da co san
© Swmo ho trong cach dién Đôi khi, ngay cả một con người bình thường
nói điều gì đó mơ hồ Có thể không tìm thấy ý nghĩa
rõ ràng và súc tích trong quá trình phân tích chặt chẽ các từ ngữ của họ Đề giải quyết vấn đề này, hệ thống NLP phải có khả năng tìm kiếm ngữ cảnh đề giúp hiểu được cách diễn đạt Hệ thông cũng có thể cần yêu cầu
người dùng giải thích rõ ràng
© Lỗi chính tả Lỗi chính tả là một vân đề đơn giản đôi với con
người Chúng ta có thể dễ dàng liên kết một từ viết sai chính tả với từ viết đúng chính tả tương ứng và
23