Zacznij terazZacznij za darmo

Generowanie tłumaczeń z angielskiego na francuski

Czy wiesz, że bank HSBC wydał 10 milionów dolarów na rebranding swojego sloganu z powodu błędu w tłumaczeniu?

Wykorzystamy wytrenowany model, aby przewidzieć francuskie tłumaczenie angielskiego zdania za pomocą model.predict(). Otrzymasz wytrenowany model (model), który przeszedł trening przez 50 epok na 100 000 zdaniach i osiągnął około 90% dokładności na zbiorze walidacyjnym zawierającym ponad 35 000 słów. Wczytanie modelu może chwilę potrwać, dlatego ćwiczenie może się ładować nieco dłużej. Dostępny będzie również słownik (fr_id2word), którego możesz użyć do zamiany indeksów słów na słowa. Na koniec skorzystasz z funkcji sents2seqs, którą zaimplementowałeś wcześniej, aby wstępnie przetworzyć dane przed podaniem ich do modelu.

Aby przypomnieć sobie, jakie argumenty przyjmuje funkcja sents2seqs(), użyj help(sents2seqs).

To ćwiczenie jest częścią kursu

Tłumaczenie maszynowe z Keras

Zobacz kurs

Instrukcje do ćwiczenia

  • Wstępnie przetwórz źródłowe zdanie en_st, zamieniając je na tablicę numpy zakodowaną metodą one-hot za pomocą wcześniej zdefiniowanej funkcji sents2seqs.
  • Przewidź wynik dla en_seq przy użyciu dostarczonego wytrenowanego modelu model.
  • Wyodrębnij indeks maksymalnej wartości dla każdej predykcji z fr_pred za pomocą np.argmax i przypisz go do fr_seq.
  • Zamień identyfikatory sekwencji w języku francuskim na zdanie, używając list comprehension (pamiętaj, aby pominąć zera), i przypisz wynik do fr_sent.

Interaktywne ćwiczenie praktyczne

Spróbuj tego ćwiczenia, uzupełniając ten przykładowy kod.

en_st = ['the united states is sometimes chilly during december , but it is sometimes freezing in june .']
print('English: {}'.format(en_st))

# Convert the English sentence to a sequence
en_seq = ____(____, en_st, ____=True, reverse=____)

# Predict probabilities of words using en_seq
fr_pred = ____.____(en_seq)

# Get the sequence indices (max argument) of fr_pred
fr_seq = ____.____(fr_pred, axis=____)[0]

# Convert the sequence of IDs to a sentence and print
fr_sent = [____[i] for i in ____ if i != ____]
print("French (Custom): {}".format(' '.join(fr_sent)))
print("French (Google Translate): les etats-unis sont parfois froids en décembre, mais parfois gelés en juin")
Edytuj i uruchom kod