| 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
|
|
|