Reti Neurali Ricorrenti (RNN) per il Language Modeling con Keras
David Cecchini
Data Scientist
La frase è determinata dalla punteggiatura, ad es. . (punto), ! (esclamativo) o ? (interrogativo).
C’è un token di frase, ad es. <SENT> e </SENT>, che indica inizio e fine.
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
Scala la distribuzione di 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