Blessmore's picture
Upload loader.py
d7e78eb verified
from huggingface_hub import hf_hub_download
import gensim
import os
class Blessmore:
def __init__(self, repo_id="Blessmore/Fasttext_embeddings", model_dir="Fast_text_50_dim", subfolder="Fast_text_50_dim"):
self.repo_id = repo_id
self.model_dir = model_dir
self.subfolder = subfolder
self.model_files = [
"shona_fasttext_50d.model",
"shona_fasttext_50d.model.wv.vectors_ngrams.npy",
"shona_fasttext_vectors_50d.kv",
"shona_fasttext_vectors_50d.kv.vectors_ngrams.npy"
]
self.model = None
def download_model_files(self):
os.makedirs(self.model_dir, exist_ok=True)
for file_name in self.model_files:
hf_hub_download(repo_id=self.repo_id, filename=f"{self.subfolder}/{file_name}", cache_dir=self.model_dir)
def load_model(self):
model_path = os.path.join(self.model_dir, "shona_fasttext_50d.model")
self.model = gensim.models.FastText.load(model_path)
@classmethod
def from_pretrained(cls, repo_id="Blessmore/Fasttext_embeddings"):
instance = cls(repo_id=repo_id)
instance.download_model_files()
instance.load_model()
return instance
def get_model(self):
return self.model