Spaces:
Sleeping
Sleeping
File size: 1,443 Bytes
334b424 c369fec 334b424 c369fec 334b424 c369fec 334b424 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
import joblib
import os
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.decomposition import TruncatedSVD
# Define relative file paths (assuming 'models/' is in the same directory as this script)
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
MODEL_PATH = os.path.join(BASE_DIR, "models", "random_forest_model.pkl")
VECTORIZER_PATH = os.path.join(BASE_DIR, "models", "vectorizer.pkl")
SVD_PATH = os.path.join(BASE_DIR, "models", "svd.pkl")
try:
# Load the trained model, vectorizer, and SVD transformer
model = joblib.load(MODEL_PATH)
vectorizer = joblib.load(VECTORIZER_PATH)
svd = joblib.load(SVD_PATH)
print(" Model, vectorizer, and SVD loaded successfully!")
except Exception as e:
print(f" Error loading model files: {e}")
exit(1)
def predict_text(text: str) -> dict:
"""Preprocess input text and predict using trained model."""
try:
X_tfidf = vectorizer.transform([text]) # Convert to TF-IDF
X_reduced = svd.transform(X_tfidf) # Apply dimensionality reduction
prediction = model.predict(X_reduced)[0] # Predict label (0 or 1)
probability = float(model.predict_proba(X_reduced)[0][1])
print(probability) # Printing probability
return {"generated": int(prediction), "probability": probability}
except Exception as e:
print(f" Prediction error: {e}")
return {"generated": -1, "probability": 0.0} |