This model performs sentiment analysis on movie reviews from the IMDB balanced 10k dataset using BoW/TF-IDF features with a small MLP classifier.
1import torch
2from train import SentimentMLP, TextFeatureExtractor
3
4# Load model
5model = SentimentMLP(20000, 256, 1, 0.2)
6model.load_state_dict(torch.load('best_model.pt'))
7model.eval()
8
9# Fit the same feature extractor used in training
10feature_extractor = TextFeatureExtractor('tfidf', 20000, (1, 2), 2, 0.95)
11# feature_extractor.fit(train_texts)
12
13# Predict
14text = "This movie is amazing!"
15features = feature_extractor.transform([text])
16features = torch.FloatTensor(features)
17
18with torch.no_grad():
19 logits = model(features)
20 probability = torch.sigmoid(logits).item()
21 sentiment = "Positive" if probability > 0.5 else "Negative"
22 confidence = probability