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