Dự đoán ký tự tiếp theo
Trong bài tập này, bạn sẽ viết hàm để dự đoán ký tự tiếp theo dựa trên một mô hình đã được huấn luyện. Bạn sẽ dùng 20 ký tự trước đó để dự đoán ký tự kế tiếp. Bạn sẽ học cách huấn luyện mô hình ở bài học tiếp theo, vì đây là bước cần có trước khi huấn luyện mô hình.
Đây là bước khởi đầu để tạo ra các quy tắc sinh câu, đoạn văn, văn bản ngắn hoặc các khối văn bản khác theo nhu cầu.
Các biến n_vocab, chars_window và từ điển index_to_char đã được nạp sẵn trong môi trường. Ngoài ra, các hàm dưới đây đã được tạo sẵn cho bạn:
initialize_X(): Chuyển đổi văn bản đầu vào thành một chuỗi các chỉ số với hình dạng phù hợp.predict_next_char(): Lấy ký tự tiếp theo bằng phương thức.predict()của lớp mô hình và từ điểnindex_to_char.
Bài tập này là một phần của khóa học
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras
Hướng dẫn bài tập
- Định nghĩa hàm
get_next_char()và thêm các tham sốinitial_textvàchars_window(không có giá trị mặc định). - Dùng hàm
initialize_X()và truyền biếnchar_to_indexđể thu được một vectơ toàn số 0 dùng cho bước dự đoán. - Dùng hàm
predict_next_char()để lấy dự đoán và lưu vào biếnnext_char. - In ra ký tự được dự đoán bằng cách áp dụng hàm đã định nghĩa lên
initial_textđã cho.
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
def ____(model, ____, ____, char_to_index, index_to_char):
# Initialize the X vector with zeros
X = ____(initial_text, chars_window, ____)
# Get next character using the model
____ = predict_next_char(model, X, ____)
return next_char
# Define context sentence and print the generated text
initial_text = "I am not insane, "
print("Next character: {0}".format(____(model, ____, 20, char_to_index, index_to_char)))