Функція генерації тексту

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

David Cecchini

Data Scientist

Генерування речень

  • Речення визначається розділовими знаками: наприклад, . (крапка), ! (знак оклику) чи ? (знак питання).

    • Ці розділові знаки мають бути у словнику.
  • Є токени речення, напр., <SENT> і </SENT>, що позначають початок і кінець речення.

    • Потрібно попередньо обробити дані й вставити ці мітки.
Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Генерування речень

sentence = ''

# Loop until end of sentence while next_char != '.':
# Predict next char: Get pred array in position 0 pred = model.predict(X)[0]
char_index = np.argmax(pred)
next_char = index_to_char(char_index)
# Concatenate to sentence sentence = sentence + next_char
Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Масштабування імовірностей

Масштабуйте розподіл імовірностей.

  • Температура: термін з фізики
    • Малі значення: роблять прогноз упевненішим
    • Значення, рівне 1: без масштабування
    • Вищі значення: роблять прогноз творчішим
    • Гіперпараметр: спробуйте різні значення, щоб підігнати прогнози під вашу потребу
Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Масштабування імовірностей

def scale_softmax(softmax_pred, temperature=1.0):
    # Take the logarithm
    scaled_pred = np.log(softmax_pred) / temperature

# Re-apply the exponential scaled_pred = np.exp(scaled_pred)
# Build probability distribution scaled_pred = scaled_pred / np.sum(scaled_pred)
# Simulate multinomial scaled_pred = np.random.multinomial(1, scaled_pred, 1)
# Return simulated class return np.argmax(scaled_pred)
Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Давайте потренуємось!

Recurrent Neural Networks (RNNs) для моделювання мови з Keras

Preparing Video For Download...