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