File size: 1,312 Bytes
d7e78eb |
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 36 |
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
|