Förbereda utdatatexten
I den här övningen förbereder du utdatatexterna som ska användas i översättningsmodellen. Förutom att omvandla texten till sekvenser av index behöver du också one-hot-koda varje index.
De engelska texterna är inlästa i variabeln en_sentences, den tränade tokenizern i variabeln output_tokenizer och storleken på det engelska ordförrådet i en_vocab_size.
Dessutom finns det redan en funktion för att utföra de första stegen i omvandlingen av utdataspråket (omvandling av texter till sekvenser av index). Funktionen är tillgänglig i miljön som transform_text_to_sequences() och har två parametrar: sentences, som förväntar sig en lista med meningar på engelska, och tokenizer, som förväntar sig ett tränat Tokenizer-objekt från modulen keras.preprocessing.text.
numpy är inläst som np.
Den här övningen är en del av kursen
Återkommande neurala nätverk (RNN) för språkmodellering med Keras
Övningsinstruktioner
- Skicka variablerna
en_sentencesochoutput_tokenizertill funktionentransform_text_to_sequences()för att initiera variabelnY. - Använd funktionen
to_categorical()för att one-hot-koda meningarna. Använd variabelnen_vocab_sizesom antal klasser. - Omvandla den tillfälliga listan till en numpy-array och ändra formen så att den blir
(num_sentences, sentences_len, en_vocab_size). - Skriv ut den råa texten och den omvandlade texten.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# Initialize the variable
Y = transform_text_to_sequences(____, ____)
# Temporary list
ylist = list()
for sequence in Y:
# One-hot encode sentence and append to list
ylist.append(____(sequence, num_classes=____))
# Update the variable
Y = np.array(ylist).reshape(____, Y.shape[1], en_vocab_size)
# Print the raw sentence and its transformed version
print("Raw sentence: {0}\nTransformed: {1}".format(____, Y[0]))