import joblib | |
import numpy as np | |
from sentence_transformers import SentenceTransformer | |
# Load the models | |
model1 = joblib.load('model1.joblib') | |
model2 = joblib.load('model2.joblib') | |
# Load the embedder | |
embedder = SentenceTransformer('BAAI/bge-large-en-v1.5') | |
def predict_sentiment(text): | |
# Generate embedding | |
embedding = embedder.encode([text]) | |
# Make predictions | |
pred1 = model1.predict(embedding)[0] | |
pred2 = model2.predict(embedding)[0] | |
# Average and round | |
final_prediction = np.round((pred1 + pred2) / 2).astype(int) | |
return final_prediction, pred1, pred2 | |
# Example usage | |
if __name__ == "__main__": | |
test_text = "I really enjoyed this product!" | |
final_score, score1, score2 = predict_sentiment(test_text) | |
print(f"Text: {test_text}") | |
print(f"Final sentiment score: {final_score}") | |
print(f"Model 1 score: {score1}") | |
print(f"Model 2 score: {score2}") | |