Część 1: Polowanie na skarb
Właśnie wygrałeś(-aś) w pełni opłaconą wycieczkę na bujną tropikalną wyspę. Podczas wędrówki natknąłeś(-ęłaś) się na starożytną mapę skarbów wskazującą drogę do wielkiego skarbu – z tajemnymi wiadomościami zapisanymi za pomocą jedynek i zer. Dzięki temu kursowi od razu rozpoznajesz, że to ciąg wektorów zakodowanych metodą onehot. Masz też szczęście – udało ci się znaleźć odwzorowanie słów na indeksy, dzięki któremu wiesz, które słowo odpowiada któremu identyfikatorowi.
Teraz musisz odszyfrować tajną wiadomość i dowiedzieć się, co mówi ta mapa. Do dyspozycji masz macierz treasure_map o wymiarach liczba zdań × liczba słów × długość wektora onehot. Masz też słownik Pythona index2word, który przypisuje identyfikatorowi odpowiadające mu słowo.
To ćwiczenie jest częścią kursu
Tłumaczenie maszynowe z Keras
Instrukcje do ćwiczenia
- Pobierz identyfikatory słów dla wektorów onehot z macierzy
treasure_map(wymiar wektora onehot to ostatni wymiar). - Pobierz długość sekwencji (czyli liczbę kroków czasowych) z
treasure_mapi przypisz ją do zmiennejseq_len. - Pobierz identyfikator słowa w
i-tym zdaniu na pozycjit. - Dodaj do listy
wordssłowo typuString(czyli samo słowo, nie jego identyfikator) odpowiadające wartościwid.
Interaktywne ćwiczenie praktyczne
Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.
# Get the word IDs from the treasure map
word_ids = ____.____(____, axis=____)
# Get the sequence length from the treasure map
seq_len = treasure_map.shape[____]
for i in range(treasure_map.shape[0]):
words = []
for t in range(seq_len):
# Get the word ID for the i-th sentence and t-th position
wid = word_ids[i, ____]
if wid != 0:
# Append the word corresponding to wid
words.append(____[____])
print("Instruction ", i+1, ": ", ' '.join(words))