Funkce pro generování textu

Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

David Cecchini

Data Scientist

Generování vět

  • Věta je určena interpunkcí, např. . (tečka), ! (vykřičník) nebo ? (otazník).

    • Interpunkční znaménka musí být součástí slovníku.
  • Existuje token věty, např. <SENT> a </SENT>, který určuje začátek a konec věty.

    • Data je nutné předem zpracovat a vložit do nich štítky.
Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Generování vět

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
Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Škálování pravděpodobnosti

Škálování rozdělení pravděpodobnosti.

  • Teplota: název z fyziky
    • Malé hodnoty: zvyšují jistotu předpovědi
    • Hodnota rovna jedné: bez škálování
    • Vyšší hodnoty: zvyšují kreativitu předpovědi
    • Hyperparametr: vyzkoušejte různé hodnoty podle potřeby
Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Škálování pravděpodobnosti

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)
Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Pojďme cvičit!

Rekurentní neuronové sítě (RNN) pro jazykové modelování s Keras

Preparing Video For Download...