8.3. Mô Hình Ngôn Ngữ Và Tập Dữ Liệu - Đắm Mình Vào Học Sâu
Có thể bạn quan tâm
8.3.4.2. Phân tách Tuần tự¶
Ngoài phép lấy mẫu ngẫu nhiên từ chuỗi gốc, chúng ta cũng có thể làm hai minibatch ngẫu nhiên liên tiếp có vị trí liền kề nhau trong chuỗi gốc.
# Saved in the d2l package for later use def seq_data_iter_consecutive(corpus, batch_size, num_steps): # Offset for the iterator over the data for uniform starts offset = random.randint(0, num_steps) # Slice out data - ignore num_steps and just wrap around num_indices = ((len(corpus) - offset - 1) // batch_size) * batch_size Xs = np.array(corpus[offset:offset+num_indices]) Ys = np.array(corpus[offset+1:offset+1+num_indices]) Xs, Ys = Xs.reshape(batch_size, -1), Ys.reshape(batch_size, -1) num_batches = Xs.shape[1] // num_steps for i in range(0, num_batches * num_steps, num_steps): X = Xs[:, i:(i+num_steps)] Y = Ys[:, i:(i+num_steps)] yield X, YSử dụng các đối số như ở trên, ta sẽ in đầu vào X và nhãn Y cho mỗi minibatch sau khi phân tách tuần tự. Hai minibatch liên tiếp sẽ có vị trí trên chuỗi ban đầu liền kề nhau.
for X, Y in seq_data_iter_consecutive(my_seq, batch_size=2, num_steps=6): print('X: ', X, '\nY:', Y) X: [[ 1. 2. 3. 4. 5. 6.] [15. 16. 17. 18. 19. 20.]] Y: [[ 2. 3. 4. 5. 6. 7.] [16. 17. 18. 19. 20. 21.]] X: [[ 7. 8. 9. 10. 11. 12.] [21. 22. 23. 24. 25. 26.]] Y: [[ 8. 9. 10. 11. 12. 13.] [22. 23. 24. 25. 26. 27.]]Hãy gộp hai hàm lấy mẫu theo hai cách trên vào một lớp để duyệt dữ liệu trong Gluon ở các phần sau.
# Saved in the d2l package for later use class SeqDataLoader: """A iterator to load sequence data.""" def __init__(self, batch_size, num_steps, use_random_iter, max_tokens): if use_random_iter: self.data_iter_fn = d2l.seq_data_iter_random else: self.data_iter_fn = d2l.seq_data_iter_consecutive self.corpus, self.vocab = d2l.load_corpus_time_machine(max_tokens) self.batch_size, self.num_steps = batch_size, num_steps def __iter__(self): return self.data_iter_fn(self.corpus, self.batch_size, self.num_steps)Cuối cùng, ta sẽ viết hàm load_data_time_machine trả về cả iterator dữ liệu và bộ từ vựng để sử dụng như các hàm load_data khác.
# Saved in the d2l package for later use def load_data_time_machine(batch_size, num_steps, use_random_iter=False, max_tokens=10000): data_iter = SeqDataLoader( batch_size, num_steps, use_random_iter, max_tokens) return data_iter, data_iter.vocabTừ khóa » Tách Từ N-gram
-
Cho Mình Hỏi Về N-gram Và Tách Từ Trong Văn Bản Tiếng Việt
-
N-gram | Xử Lý Tiếng Việt Wiki
-
Mô Hình Tách Từ, Gán Nhãn Từ Loại Và Hướng Tiếp Cận Tích Hợp Cho ...
-
[PDF] Xử Lí Bài Toán Thêm Dấu Cho Tiếng Việt Không Dấu Dựa
-
Mô Hình Ngôn Ngữ Và Bài Toán Thêm Dấu Câu Trong Tiếng Việt - Viblo
-
Full Text Search, Từ Khái Niệm đến Thực Tiễn (Phần 2)
-
Nghiên Cứu Mô Hình Ngôn Ngữ N-gram Và ứng Dụng Trong Bài Toán ...
-
N-gram – Wikipedia Tiếng Việt
-
[PDF] Sự ảnh Hưởng Của Phương Pháp Tách Từ Trong Bài Toán
-
Đề Tài Nghiên Cứu Mô Hình Ngôn Ngữ N-Gram Và ứng Dụng Trong Bài ...
-
Mô Hình Ngôn Ngữ
-
Ứng Dụng Phương Pháp Pointwise Vào Bài Toán Tách Từ Cho Tiếng Việt
-
Language Models N-gram - SlideShare
-
[PDF] Nghiên Cứu Phương Pháp So Sánh độ Tương đồng Văn Bản Bằng độ ...
-
[PDF] Giải Pháp Tách Từ Sử Dụng Mạng Nơ Ron Nhằm Nâng Cao Chất Lượng ...
-
Khóa Luận Kiểm Lỗi Chính Tả Tiếng Việt - Thư Viện Tài Liệu
-
[DOC] Nghiên Cứu Một Số Kỹ Thuật Tách Từ Trong Xử Lý Ngôn Ngữ Tự Nhiên
-
[PDF] Nghiên Cứu Mô Hình Ngôn Ngữ N-gram Và ứng Dụng Trong - TaiLieu.VN
-
TIN TỨC VÀ SỰ KIỆN - ĐẠI HỌC QUỐC GIA HÀ NỘI