Preparando os dados para o treinamento
Neste exercício, você vai continuar a preparar os dados para treinar o modelo. Depois de criar as matrizes de frases e os próximos caracteres, você precisa transformá-los em valores numéricos que possam ser usados no modelo.
Essa etapa é importante porque os modelos RNN só aceitam números, e não strings. Você vai criar matrizes numéricas com zeros ou uns nas posições que representam os caracteres presentes nas frases. Os uns (ou “ True ”) mostram que o caractere está lá, enquanto os zeros (ou “ False ”) mostram que o caractere não está naquela posição da frase.
As variáveis sentences, next_char, n_vocab, chars_window, num_seqs (número de frases nos dados de treinamento) já estão carregadas no ambiente, assim como numpy como np.
Este exercício faz parte do curso
Redes Neurais Recorrentes (RNNs) para Modelagem de Linguagem com Keras
Instruções do exercício
- Crie uma instância de um objeto "
np.array()" com zeros e formato "(number of sentences, characters window, vocabulary size)". - Use o dicionário
char_to_indexpara definir a posição do caractere atual para1. - Defina o próximo caractere atual como
1. - Imprima a primeira posição de cada matriz.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
# 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")