Pregătirea textului de ieșire
În acest exercițiu, vei pregăti textele de ieșire care vor fi folosite de modelul de traducere. Pe lângă transformarea textului în secvențe de indecși, trebuie să aplici și codificarea one-hot pentru fiecare index.
Textele în engleză sunt încărcate în variabila en_sentences, tokenizatorul antrenat în variabila output_tokenizer, iar dimensiunea vocabularului englez în en_vocab_size.
De asemenea, o funcție care realizează primii pași ai transformării limbajului de ieșire (transformarea textelor în secvențe de indecși) a fost deja creată. Funcția este disponibilă în mediu sub numele transform_text_to_sequences() și are doi parametri: sentences, care așteaptă o listă de propoziții în engleză, și tokenizer, care așteaptă un obiect Tokenizer antrenat din modulul keras.preprocessing.text.
numpy este încărcat ca np.
Acest exercițiu face parte din cursul
Rețele Neuronale Recurente (RNN) pentru Modelare a Limbajului cu Keras
Instrucțiuni pentru exercițiu
- Transmite variabilele
en_sentencesșioutput_tokenizerfuncțieitransform_text_to_sequences()pentru a inițializa variabilaY. - Folosește funcția
to_categorical()pentru a aplica codificarea one-hot propozițiilor. Utilizează variabilaen_vocab_sizeca număr de clase. - Transformă lista temporară într-un array numpy și redimensioneaz-o astfel încât să aibă forma
(num_sentences, sentences_len, en_vocab_size). - Afișează textul brut și varianta transformată.
Exercițiu interactiv practic
Încearcă acest exercițiu completând acest cod de exemplu.
# 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]))