Test del modello CNN per l’analisi del sentiment
Ora che il modello è addestrato, PyBooks vuole verificarne le prestazioni su alcune nuove recensioni di libri.
Devi controllare se il sentiment in una recensione è positivo o negativo.
Sono già stati importati i seguenti pacchetti:
torch, torch.nn come nn, torch.nn.functional come F, torch.optim come optim.
È stata anche caricata un’istanza di TextClassificationCNN() con argomenti vocab_size ed embed_dim, salvata come model.
Questo esercizio fa parte del corso
Deep Learning per il testo con PyTorch
Istruzioni dell'esercizio
- Itera sulla lista
book_reviews, convertendo le parole di ogni recensione in un tensore. - Ottieni l’output del modello per ciascun
input_tensor. - Trova l’indice della categoria di sentiment più probabile da
outputs.data. - Estrai e converti l’elemento
predicted_labelin una stringa di sentiment, dove1corrisponde all’etichetta "Positive".
Esercizio pratico interattivo
Prova a risolvere questo esercizio completando il codice di esempio.
book_reviews = [
"I love this book".split(),
"I do not like this book".split()
]
for review in book_reviews:
# Convert the review words into tensor form
input_tensor = ____.____([word_to_ix[w] for w in review], dtype=torch.long).unsqueeze(0)
# Get the model's output
outputs = model(____)
# Find the index of the most likely sentiment category
_, predicted_label = ____.____(outputs.data, 1)
# Convert the predicted label into a sentiment string
sentiment = "Positive" if ____ else "Negative"
print(f"Book Review: {' '.join(review)}")
print(f"Sentiment: {sentiment}\n")