Recurrent Neural Networks (RNN's) voor taalmodellen met Keras
David Cecchini
Data Scientist
Zinnen worden bepaald door interpunctie, bv. . (punt), ! (uitroep) of ? (vraag).
Er is een zinstoken, bv. <SENT> en </SENT>, dat begin en eind markeert.
sentence = ''# Loop tot het einde van de zin while next_char != '.':# Voorspel volgend teken: haal pred-array op op positie 0 pred = model.predict(X)[0]char_index = np.argmax(pred)next_char = index_to_char(char_index)# Voeg toe aan zin sentence = sentence + next_char
Schaal de waarschijnlijkheidsverdeling.
def scale_softmax(softmax_pred, temperature=1.0): # Neem de logaritme scaled_pred = np.log(softmax_pred) / temperature# Exponent opnieuw toepassen scaled_pred = np.exp(scaled_pred)# Bouw kansverdeling scaled_pred = scaled_pred / np.sum(scaled_pred)# Simuleer multinomiaal scaled_pred = np.random.multinomial(1, scaled_pred, 1)# Geef gesimuleerde klasse terug return np.argmax(scaled_pred)
Recurrent Neural Networks (RNN's) voor taalmodellen met Keras