Views
No views yet
1import os
2import joblib
3import pandas as pd
4from huggingface_hub import hf_hub_download
5
6REPO_ID = "JessicaOjo/meag_lid"
7FILENAME = "model/model.joblib"
8
9# model load logic
10def load_nb_bundle_from_hf(repo_id=REPO_ID):
11 model_path = hf_hub_download(
12 repo_id=repo_id,
13 filename=FILENAME,
14 repo_type="model",
15 )
16 return joblib.load(model_path)
17
18# model prediction logic
19def nb_model_predict(nb_bundle, texts):
20 """Predict language + probabilities using trained NB bundle (clf + vectorizer)."""
21 clf = nb_bundle["model"]
22 vec = nb_bundle["vectorizer"]
23
24 X_vec = vec.transform(texts)
25 pred_lang = clf.predict(X_vec)
26 pred_prob = clf.predict_proba(X_vec)
27 return pred_lang, pred_prob
28
29# generating predictions
30def final_media_cloud_nb_generations(infile, output_dir):
31 os.makedirs(output_dir, exist_ok=True)
32
33 data = pd.read_csv(infile)
34 data = data.drop_duplicates(subset=["text"], keep="first")
35 data = data.dropna(subset=["text"])
36
37 print(f"Data shape: {data.shape}")
38 if "language" in data.columns:
39 print(f"Unique languages: {data.language.nunique()}")
40
41 bundle = load_nb_bundle_from_hf()
42 print("Model loaded from Hugging Face")
43
44 pred, prob = nb_model_predict(bundle, data["text"].tolist())
45 data["pred_lang"] = pred
46
47 out_path = os.path.join(output_dir, "media_cloud_predictions.csv")
48 data.to_csv(out_path, index=False)
49 print(f"Saved predictions → {out_path}")
50
51 return data