Python JSON
dict object list, tuple array
str string
int, long,float number
4.2.1.2 Kiểu dữ liệu của Json
Json có 5 kiểu dữ liệu chính
- Number: kiểu số bao gồm số nguyên và số thực.
- String: kiểu chuỗi, nội dung bao bởi cặp dấu nháy kép “, những ký tự đặt biệt được escape bởi dấu .Theo chuẩn JSON thì khơng sử dụng dấu nháy đơn như Javascript để bọc chuỗi.
- Boolean: kiểu luận lý bao gồm 2 giá trị là true và false
- Array: kiểu mảng, gồm các phần tử phân cách nhau bởi dấu phẩy ‘,’ và mảng được bao bởi cặp dấu [ và ].
- Object: kiểu đối tượng, gồm những cặp giá trị đi cùng nhau, mỗi cặp phân cách bởi dấu phẩy’,’, đối tượng được bao bởi cặp dấu { và }, cặp giá trị bao gồm tên và giá trị được phân cách bởi dấu hai chấm’:’.
- Null: giá trị null.
4.2.1.3 Ưu điểm của Json
SVTH: LÊ TRUNG KIÊN 66 - Là kiểu dữ liệu trên nền cơ sở Javascript nên dễ dàng tiếp cận.
- Dữ liệu truyền tải ngắn gọn so với những định dạng dữ liệu khác như: xml, html…
- Dễ dàng chuyển đổi(parse) dữ liệu từ dạng chuỗi (nhận từ server) sang dữ liệu có thể sử dụng được (thành Object, Number, Array)…
- Dễ truy cập nội dung.
- Với những ứng dụng Ajax lấy và xử lý dữ liệu từ một web service nào đó khác domain: Nếu nội dung trả về có dạng xml thì javascript từ trang web của chúng ta khơng thể trực tiếp truy cập mà phải nhờ một proxy để đáp ứng yêu cầu của same origin policy. Nhưng nếu là dạng JSON thì đó khơng là vấn đề. (Thường dùng lệnh eval).
- Hai công nghệ phổ biến sử dụng JSON là PHP và .NET
4.2.2 Thư viện SpeechRecognition 4.2.2.1 Giới thiệu 4.2.2.1 Giới thiệu
Nhận dạng giọng nói, như tên cho thấy, đề cập đến việc nhận dạng tự động giọng nói của con người. Nhận dạng giọng nói là một trong những nhiệm vụ quan trọng nhất trong lĩnh vực tương tác với máy tính của con người. Nếu bạn đã từng tương tác với Alexa hoặc đã từng ra lệnh cho Siri hoàn thành một nhiệm vụ, bạn đã trải nghiệm sức mạnh của nhận dạng giọng nói.
Nhận dạng giọng nói có nhiều ứng dụng khác nhau, từ phiên âm tự động dữ liệu giọng nói (như thư thoại) đến tương tác với rơ bốt qua giọng nói.
Thực hiện lệnh sau để cài đặt thư viện:pip install SpeechRecognition
4.2.2.2 Nhận đầu vào âm thanh từ micrô
Để sử dụng micrô, chúng tôi cũng sẽ phải cài đặt mô-đun pyaudio(pip install
PyAudio). Chúng tôi sử dụng lớp micrô để lấy lời nói đầu vào từ micrơ thay vì bất kỳ
SVTH: LÊ TRUNG KIÊN 67 Đối với hầu hết các dự án, chúng tơi có thể sử dụng micrơ mặc định. Nhưng nếu bạn không muốn sử dụng micrơ mặc định, bạn có thể lấy danh sách tên micrô bằng phương thức list_microphone_names.
Để nắm bắt đầu vào từ micrô, chúng tôi sử dụng phương pháp nghe:
import speechrecognition as sr r = sr.Recognizer()
with sr.Microphone() as source: audio = sr.listen(source)
4.2.3 Thư viện NLU 4.2.3.1 Giới thiệu 4.2.3.1 Giới thiệu
NLTK là một nền tảng hàng đầu để xây dựng các chương trình Python để làm việc với dữ liệu ngơn ngữ của con người. Nó cung cấp các giao diện dễ sử dụng cho hơn 50 tài nguyên ngữ liệu và từ vựng như Mạng từ, cùng với một bộ thư viện xử lý văn bản để phân loại, mã hóa, tạo gốc, gắn thẻ, phân tích cú pháp và lập luận ngữ nghĩa, trình bao bọc cho các thư viện NLP cơng nghiệp, và một diễn đàn thảo luận tích cực .
Nhờ hướng dẫn thực hành giới thiệu các nguyên tắc cơ bản về lập trình cùng với các chủ đề trong ngơn ngữ học tính tốn, cùng với tài liệu API tồn diện, NLTK phù hợp với các nhà ngôn ngữ học, kỹ sư, sinh viên, nhà giáo dục, nhà nghiên cứu và người dùng trong ngành. NLTK có sẵn cho Windows, Mac OS X và Linux. Hơn hết, NLTK là một dự án miễn phí, mã nguồn mở, hướng tới cộng đồng.
NLTK đã được gọi là “một công cụ tuyệt vời để giảng dạy và làm việc trong ngơn ngữ học tính tốn sử dụng Python” và “một thư viện tuyệt vời để chơi với ngôn ngữ tự nhiên.”
SVTH: LÊ TRUNG KIÊN 68 Xử lý ngôn ngữ tự nhiên với Python cung cấp giới thiệu thực tế về lập trình để xử lý ngơn ngữ. Được viết bởi những người tạo ra NLTK, nó hướng dẫn người đọc các nguyên tắc cơ bản của việc viết chương trình Python, làm việc với kho ngữ liệu, phân loại văn bản, phân tích cấu trúc ngơn ngữ và hơn thế nữa. Phiên bản trực tuyến của cuốn sách đã được cập nhật cho Python 3 và NLTK 3.
Thực hiện lệnh sau để cài đặt thư viện: pip install nltk
Một số chức năng chính của NLTK:
- Mã hóa và gắn thẻ một số văn bản - Xác định các thực thể được đặt tên:
4.2.4 Thư viện Numpy
Numpy (Numeric Python): là một thư viện toán học phổ biến và mạnh mẽ của Python. Cho phép làm việc hiệu quả với ma trận và mảng, đặc biệt là dữ liệu ma trận và mảng lớn với tốc độ xử lý nhanh hơn nhiều lần khi chỉ sử dụng “core Python” đơn thuần.
NumPy được phát triển bởi Jim Hugunin. Phiên bản ban đầu là Numarray được phát triển, có một số chức năng bổ sung. Năm 2005, Travis Oliphant đã tạo ra gói NumPy bằng cách kết hợp các tính năng của Numarray và gói Numeric.
Sử dụng NumPy, lập trình viên có thể thực hiện các thao tác sau:
- Các phép toán học và logic trên mảng.
- Các biến đổi Fourier và các quy trình để thao tác shape.
- Các phép toán liên quan đến đại số tuyến tính. NumPy tích hợp sẵn các hàm cho đại số tuyến tính và tạo số ngẫu nhiên.
SVTH: LÊ TRUNG KIÊN 69
4.2.5 Thư viện Openpyxl 4.2.5.1 Giới thiệu 4.2.5.1 Giới thiệu
Python cung cấp mô-đun Openpyxl, được sử dụng để xử lý các tệp Excel mà không liên quan đến phần mềm ứng dụng Microsoft của bên thứ ba. Bằng cách sử dụng mơ-đun này, chúng ta có thể kiểm sốt excel mà khơng cần mở ứng dụng. Nó được sử dụng để thực hiện các tác vụ excel như đọc dữ liệu từ tệp excel, hoặc ghi dữ liệu vào tệp excel, vẽ một số biểu đồ, truy cập trang tính excel, đổi tên trang tính, sửa đổi (thêm và xóa) trong trang tính excel, định dạng, tạo kiểu trong trang tính và bất kỳ nhiệm vụ nào khác. Openpyxl rất hiệu quả để thực hiện các tác vụ này cho bạn.
Các nhà khoa học dữ liệu thường sử dụng Openpyxl để thực hiện các hoạt động khác nhau như sao chép dữ liệu để khai thác dữ liệu cũng như phân tích dữ liệu.
4.2.5.2 Quy trình làm việc của Openpyxl
Thư viện Openpyxl được sử dụng để ghi hoặc đọc dữ liệu trong tệp excel và nhiều tác vụ khác. Tệp excel mà chúng tôi sử dụng cho hoạt động được gọi là Workbook chứa tối thiểu một Trang tính và tối đa là hàng chục trang tính.
• Trang tính bao gồm Hàng (chuỗi ngang) bắt đầu từ 1 và Cột (chuỗi dọc) bắt đầu từ A.
• Hàng và cột cùng nhau tạo thành một lưới và tạo thành một ơ có thể lưu trữ một số dữ liệu. Dữ liệu có thể thuộc bất kỳ kiểu nào, chẳng hạn như số, chuỗi.
• Openpyxl cung cấp tính linh hoạt để đọc dữ liệu từ ơ riêng lẻ hoặc ghi dữ liệu vào ơ đó.
4.2.5.3 Đọc, ghi dữ liệu vào Excel
Chúng ta có thể đọc dữ liệu mà chúng ta đã ghi trước đó trong ơ. Có hai phương pháp để đọc một ơ, thứ nhất chúng ta có thể truy cập nó bằng tên ơ và thứ hai, chúng ta có thể truy cập nó bằng hàm cell().Ghi dữ liệu vào Excel
SVTH: LÊ TRUNG KIÊN 70 Chúng ta có thể thêm dữ liệu vào tệp excel bằng cách sử dụng mã Python sau. Đầu tiên, chúng ta sẽ nhập hàm load_workbook từ mơ-đun openpyxl , sau đó tạo đối tượng của tệp và chuyển đường dẫn tệp làm đối số. Hãy xem xét đoạn code sau:
from openpyxl import load_workbook
wb = load_workbook(r'C:\Users\DEVANSH SHARMA\Desktop\demo.xlsx') sheet = wb.active
sheet['A1'] = 'Devansh Sharma'
sheet.cell(row=2, column=2).value = 5
wb.save(r'C:\Users\DEVANSH SHARMA\Desktop\demo.xlsx')
Đầu ra:
Hình 4.4: Dữ liệu Excel sau khi được ghi bởi Openpyxl
4.2.5.4 Thư viện chuyển văn bản thành giọng nói python
❖ pyttsx3 đọc tiếng anh
Chuyển văn bản thành giọng nói là q trình tạo ra giọng nói từ văn bản ngơn ngữ bình thường. Ở đây trong bài đăng này, tôi sẽ giới thiệu với bạn về mô-đun pyttsx3 , một trong những thư viện python tốt nhất để chuyển đổi văn bản thành giọng nói. Phần tốt nhất về thư viện này là nó hồn tồn ngoại tuyến, vì vậy bạn khơng cần phải có kết nối internet đang hoạt động để thư viện này hoạt động.
SVTH: LÊ TRUNG KIÊN 71
pip install pyttsx3
Bây giờ chúng ta đã sẵn sàng để bắt đầu làm việc với thư viện này.
Chuyển văn bản thành giọng nói
Đầu tiên, bạn cần nhập và khởi tạo pyttsx3. Tên biến là engine vì vậy nó sẽ được sử dụng trong tồn bộ mã để thiết lập tất cả các loại thuộc tính.
import pyttsx3
engine = pyttsx3.init()
Bây giờ, chúng ta chỉ cần sử dụng hàm và chuyển bất kỳ văn bản nào làm đối số.
engine.say("Hello Master!") engine.runAndWait()
Khi bạn thực thi mã, Bạn sẽ nghe thấy một giọng nói "Xin chào Chủ nhân!".
Thay đổi sang giọng nữ
Bạn có thể nhận thấy rằng giọng nói hiện tại là nam. Điều gì sẽ xảy ra nếu chúng ta muốn thay đổi kiểu giọng nói thành nữ? Đối với điều đó, chúng tơi sẽ sử dụng getPropery phương pháp để tìm nạp danh sách tất cả các giọng nói. Sau đó, chúng tơi sẽ sử dụng setProperty phương pháp để thay đổi giọng nói thành nữ.
voices = engine.getProperty('voices') engine.setProperty('voice', voices[1].id) engine.say("Hi, I am a female!")
engine.runAndWait()
Bây giờ bạn sẽ nghe thấy một giọng nữ thay vì nam.
SVTH: LÊ TRUNG KIÊN 72 Giả sử rằng bạn thích một bài phát biểu có tốc độ nhanh hơn nhiều. Bạn có thể dễ dàng sử dụng thuộc tính tỷ lệ để sửa đổi tốc độ giọng nói.
rate = engine.getProperty('rate') engine.setProperty('rate', rate+50) engine.say("Rate has now increased.") engine.runAndWait()
Bây giờ bạn sẽ nhận thấy rằng bài phát biểu được nói có tốc độ nhanh hơn nhiều.
❖ Google TTS đọc tiếng việt
Đọc được tiếng việt thì ta bắt buộc phải dùng thư viện của Google hỗ trợ vì rất ít thư viện có thể chuyển được đầu ra thành tiếng việt.
Để cài đặt thư viện này, bạn cần nhập lệnh sau pip install gTTS.
pip install gTTS
Bắt đầu sử dụng:
from gtts import gTTS import playsound text = "Xin chào bạn"
output = gTTS(text,lang="vi", slow=False) output.save("output.mp3")
playsound.playsound('output.mp3', True)
4.2.6 Thư viện Pytorch 4.2.6.1 Giới thiệu về Pytorch 4.2.6.1 Giới thiệu về Pytorch
PyTorch là 1 thư viện Python-based hỗ trợ tạo ra các Deep Learning models và sử dụng chúng cho các ứng dụng khác nhau. Trên thực tế, PyTorch không chỉ là 1
SVTH: LÊ TRUNG KIÊN 73 thư viện Deep Learning, mà chính là 1 package về tính tốn khoa học (scientific computing).
PyTorch, tương tự như Python, nó được thiết kế tập trung vào tính dễ sử dụng và thậm chí người dùng có kiến thức lập trình rất cơ bản cũng có thể sử dụng nó trong các dự án có liên quan đến Deep Learning.
Cấu trúc dữ liệu cốt lõi được sử dụng trong PyTorch là Tensor. Tương tự numpy array, Tensor là 1 mảng n-chiều với các phần tử có cùng kiểu dữ liệu.
Để cài đặt thư viện này, bạn cần nhập lệnh sau pip install torch.
Hình 4.5: Logo Pytorch
4.2.6.2 Tổng quan Pytorch
Xem xét pipeline cơ bản của 1 dự án PyTorch. Hình dưới đây mơ tả một quy trình cơng việc điển hình cùng với các modules quan trọng được liên kết với mỗi bước.
SVTH: LÊ TRUNG KIÊN 74 Các modules cơ bản mà chúng ta sẽ đề cập là torch.nn, torch.optim, torch.utils và torch.autograd.
4.2.6.3 Load và xử lý data
Đây luôn là một trong những bước đầu tiên trong bất kì một project về Deep Learning nào. Vì thế PyTorch đã hỗ trợ các tiện ích để thực hiện bước này với module torch.utils.data.
Hai class quan trọng trong module này là Dataset và DataLoader:
• Dataset được xây dựng trên nền kiểu dữ liệu Tensor và được sử dụng chủ yếu cho các bộ dữ liệu tùy chỉnh.
• DataLoader được sử dụng khi bạn có một tập dữ liệu lớn và bạn muốn tải dữ liệu từ Dataset ở chế độ nền để nó sẵn sàng và chờ sử dụng cho q trình training loop.
Chúng ta cũng có thể sử dụng torch.nn.DataParallel và torch.distribution trong trường hợp có thể sử dụng song song nhiều máy tính hoặc nhiều GPUs.
4.2.6.4 Xây dựng Neural Network
Module torch.nn được sử dụng để tạo Neural Network. Nó cung cấp tất cả các Neural Network layers phổ biến như các fully connected layers, convolutional layers, các hàm activation và hàm loss, v.v.
Một khi kiến trúc mạng đã được tạo ra và dữ liệu đã sẵn sàng để được feed cho mạng, chúng ta sẽ cần các kỹ thuật để cập nhật các trọng số (weights) và độ lệch (biases) để mạng tiến hành quá trình learning. Các tiện ích này được cung cấp trong module torch.optim. Cịn để tính gradient tự động, chúng ta sử dụng module torch.autograd.
SVTH: LÊ TRUNG KIÊN 75
4.2.6.5 Model Inference & Compability
Sau khi model đã được train, nó có thể được sử dụng để dự đốn output cho các test cases hoặc thậm chí các datasets mới. Quá trình này được gọi là model inference.
PyTorch cũng cung cấp TorchScript có thể được sử dụng để chạy các model độc lập với Python runtime. Đây có thể được coi là một Máy ảo được thiết kế chủ yếu dành riêng cho việc thao tác với Tensors.
Chúng ta cũng có thể convert model được train bằng PyTorch sang các định dạng như ONNX, cho phép bạn sử dụng các model này trong các Deep Learning framework khác như MXNet, CNTK, Caffe2. Bạn cũng có thể chuyển đổi các model ONNX sang TensorFlow.
4.2.7 Thư viện tkinter
Các Widget của Tkinter trong Python: Có nhiều widget khác nhau như button, canvas, checkbutton, entry, ... chúng được sử dụng để xây dụng các ứng dụng GUI trong Python.