Dự đoán văn bản với LSTM
Trong các bài tập sau, bạn sẽ xây dựng một mô hình LSTM nhỏ có thể dự đoán từ tiếp theo bằng một tập dữ liệu văn bản nhỏ.
Tập dữ liệu này gồm các câu thoại đã được làm sạch từ phim The Lord of the Ring. Bạn có thể tìm thấy chúng trong biến text.
Bạn sẽ chuyển text thành các sequences có độ dài 4 và sử dụng Tokenizer của Keras để chuẩn bị đặc trưng (features) và nhãn (labels) cho mô hình!
Tokenizer của Keras đã được import sẵn để bạn dùng. Nó gán một số duy nhất cho mỗi từ duy nhất và lưu ánh xạ trong một dictionary. Điều này quan trọng vì mô hình làm việc với các con số, nhưng sau đó chúng ta sẽ muốn giải mã các số đầu ra trở lại thành từ.
Bài tập này là một phần của khóa học
Nhập môn Deep Learning với Keras
Hướng dẫn bài tập
- Tách văn bản thành một mảng các từ bằng
.split(). - Tạo các câu gồm 4 từ, trượt từng lần 1 từ.
- Khởi tạo một
Tokenizer(), rồi fit nó trên các câu với.fit_on_texts(). - Chuyển
sentencesthành dãy số bằng cách gọi.texts_to_sequences().
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.
# Split text into an array of words
words = ____.____
# Make sentences of 4 words each, moving one word at a time
sentences = []
for i in range(4, len(words)):
sentences.append(' '.join(words[i-____:i]))
# Instantiate a Tokenizer, then fit it on the sentences
tokenizer = ____
tokenizer.____(____)
# Turn sentences into a sequence of numbers
sequences = tokenizer.____(____)
print("Sentences: \n {} \n Sequences: \n {}".format(sentences[:5],sequences[:5]))