Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras
David Cecchini
Data Scientist
Une phrase est délimitée par la ponctuation : par exemple . (point), ! (exclamation) ou ? (interrogation).
Il existe un jeton de phrase, p. ex. <SENT> et </SENT>, qui indique le début et la fin d'une phrase.
sentence = ''# Boucler jusqu'à la fin de la phrase while next_char != '.':# Prédire le prochain caractère : récupérer le tableau de prédiction en position 0 pred = model.predict(X)[0]char_index = np.argmax(pred)next_char = index_to_char(char_index)# Concaténer à la phrase sentence = sentence + next_char
Redimensionner la distribution de probabilités.
def scale_softmax(softmax_pred, temperature=1.0): # Prendre le logarithme scaled_pred = np.log(softmax_pred) / temperature# Réappliquer l'exponentielle scaled_pred = np.exp(scaled_pred)# Construire la distribution de probabilités scaled_pred = scaled_pred / np.sum(scaled_pred)# Simuler une multinomiale scaled_pred = np.random.multinomial(1, scaled_pred, 1)# Retourner la classe simulée return np.argmax(scaled_pred)
Réseaux de neurones récurrents (RNN) pour la modélisation du langage avec Keras