Förbereda data för träning
I den här övningen fortsätter du att förbereda data för att träna modellen. När du väl har skapat arrayerna med meningar och nästa tecken behöver du omvandla dem till numeriska värden som modellen kan använda.
Detta steg är nödvändigt eftersom RNN-modeller enbart hanterar tal, inte strängar. Du skapar numeriska arrayer med nollor eller ettor på de positioner som representerar tecknen i meningarna. En etta (eller True) anger att motsvarande tecken finns på platsen, medan en nolla (eller False) anger att tecknet saknas på den positionen.
Variablerna sentences, next_char, n_vocab, chars_window och num_seqs (antal meningar i träningsdatan) är redan inlästa i miljön, liksom numpy som np.
Den här övningen är en del av kursen
Återkommande neurala nätverk (RNN) för språkmodellering med Keras
Övningsinstruktioner
- Skapa en
np.array()med nollor och formen(antal meningar, teckenfönster, vokabulärstorlek). - Använd ordboken
char_to_indexför att sätta positionen för det aktuella tecknet till1. - Sätt det aktuella nästa tecknet till
1. - Skriv ut den första positionen i varje array.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Instantiate the variables with zeros
numerical_sentences = np.zeros((____, ____, ____), dtype=np.bool)
numerical_next_chars = np.zeros((num_seqs, n_vocab), dtype=np.bool)
# Loop for every sentence
for i, sentence in enumerate(sentences):
# Loop for every character in sentence
for t, char in enumerate(sentence):
# Set position of the character to 1
numerical_sentences[i, t, ____] = ____
# Set next character to 1
____[i, char_to_index[next_chars[i]]] = 1
# Print the first position of each
print(____, ____, sep="\n")