Del 1: Modell för textomvändning – encoder
Att skapa en enkel modell för textomvändning är ett bra sätt att förstå hur encoder-decoder-modeller fungerar och hur de hänger ihop. Nu ska du implementera encoder-delen av en sådan modell.
Implementationen av encodern är uppdelad i två övningar. I den här övningen definierar du hjälpfunktionen words2onehot(). Funktionen words2onehot() ska ta emot en lista med ord och ett lexikon word2index, och konvertera ordlistan till en array av one-hot-vektorer. Lexikonet word2index finns tillgängligt i arbetsytan.
Den här övningen är en del av kursen
Maskinöversättning med Keras
Övningsinstruktioner
- Konvertera ord till id:n med hjälp av lexikonet
word2indexi funktionenwords2onehot(). - Konvertera ord-id:n till one-hot-vektorer med längden
3(använd argumentetnum_classes) och returnera den resulterande arrayen. - Anropa funktionen
words2onehot()med ordenI,likeochcatsoch tilldela resultatet tillonehot. - Skriv ut orden och deras motsvarande one-hot-vektorer med funktionerna
print()ochzip(). Funktionenzip()gör det möjligt att iterera över flera listor samtidigt.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
import numpy as np
def words2onehot(word_list, word2index):
# Convert words to word IDs
word_ids = [____[w] for w in ____]
# Convert word IDs to onehot vectors and return the onehot array
onehot = ____(____, num_classes=3)
return ____
words = ["I", "like", "cats"]
# Convert words to onehot vectors using words2onehot
onehot = ____(____, ____)
# Print the result as (, ) tuples
print([(w,ohe.tolist()) for ____,____ in zip(words, ____)])