La funzione di generazione del testo

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

David Cecchini

Data Scientist

Generare frasi

  • La frase è determinata dalla punteggiatura, ad es. . (punto), ! (esclamativo) o ? (interrogativo).

    • I segni di punteggiatura devono essere nel vocabolario.
  • C’è un token di frase, ad es. <SENT> e </SENT>, che indica inizio e fine.

    • Serve pre-processare i dati per inserire le etichette.
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Generare frasi

sentence = ''

# Loop fino a fine frase while next_char != '.':
# Predici il prossimo char: ottieni l'array pred in posizione 0 pred = model.predict(X)[0]
char_index = np.argmax(pred)
next_char = index_to_char(char_index)
# Concatena alla frase sentence = sentence + next_char
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Scalatura delle probabilità

Scala la distribuzione di probabilità.

  • Temperatura: termine dalla fisica
    • Valori piccoli: rendono la previsione più sicura
    • Valore uguale a 1: nessuna scalatura
    • Valori più alti: rendono la previsione più creativa
    • Iperparametro: prova valori diversi in base alle tue esigenze
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Scalatura delle probabilità

def scale_softmax(softmax_pred, temperature=1.0):
    # Prendi il logaritmo
    scaled_pred = np.log(softmax_pred) / temperature

# Riapplica l'esponenziale scaled_pred = np.exp(scaled_pred)
# Costruisci la distribuzione di probabilità scaled_pred = scaled_pred / np.sum(scaled_pred)
# Simula multinomiale scaled_pred = np.random.multinomial(1, scaled_pred, 1)
# Restituisci la classe simulata return np.argmax(scaled_pred)
Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Passons à la pratique !

Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras

Preparing Video For Download...