Hàm tạo văn bản

Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

David Cecchini

Data Scientist

Tạo câu

  • Câu được xác định bởi dấu câu, ví dụ: . (chấm), ! (chấm than) hoặc ? (chấm hỏi).

    • Dấu câu phải có trong từ vựng.
  • Có token câu, ví dụ <SENT></SENT>, để đánh dấu bắt đầu và kết thúc câu.

    • Cần tiền xử lý dữ liệu để chèn nhãn.
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Tạo câu

sentence = ''

# Lặp cho đến khi hết câu while next_char != '.':
# Dự đoán ký tự tiếp theo: lấy mảng dự đoán ở vị trí 0 pred = model.predict(X)[0]
char_index = np.argmax(pred)
next_char = index_to_char(char_index)
# Nối vào câu sentence = sentence + next_char
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Điều chỉnh xác suất

Điều chỉnh phân phối xác suất.

  • Temperature: thuật ngữ từ vật lý
    • Giá trị nhỏ: dự đoán tự tin hơn
    • Bằng một: không điều chỉnh
    • Giá trị lớn hơn: dự đoán sáng tạo hơn
    • Siêu tham số: thử nhiều giá trị để hợp nhu cầu
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Điều chỉnh xác suất

def scale_softmax(softmax_pred, temperature=1.0):
    # Lấy log
    scaled_pred = np.log(softmax_pred) / temperature

# Áp dụng lại hàm mũ scaled_pred = np.exp(scaled_pred)
# Tạo phân phối xác suất scaled_pred = scaled_pred / np.sum(scaled_pred)
# Mô phỏng đa thức scaled_pred = np.random.multinomial(1, scaled_pred, 1)
# Trả về lớp đã mô phỏng return np.argmax(scaled_pred)
Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Ayo berlatih!

Mạng nơ-ron hồi quy (RNN) cho Mô hình ngôn ngữ với Keras

Preparing Video For Download...