Funcția de generare a textului

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

David Cecchini

Data Scientist

Generarea propozițiilor

  • Propoziția este determinată de punctuație. De exemplu, . (punct), ! (exclamare) sau ? (întrebare).

    • Semnele de punctuație trebuie să fie în vocabular.
  • Există un token de propoziție, ex. <SENT> și </SENT>, care determină începutul și sfârșitul propoziției.

    • Datele trebuie preprocesate pentru a insera etichetele.
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Generarea propozițiilor

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
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Scalarea probabilității

Scalarea distribuției de probabilitate.

  • Temperatură: denumire din fizică
    • Valori mici: cresc încrederea predicției
    • Valoare egală cu unu: fără scalare
    • Valori mari: cresc creativitatea predicției
    • Hiperparametru: încercați diferite valori pentru a adapta predicțiile nevoilor dvs.
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Scalarea probabilității

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)
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Să exersăm!

Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras

Preparing Video For Download...