Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 12 additions & 4 deletions mini_coil/data_pipeline/combine_models.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@
from mini_coil.data_pipeline.vocab_resolver import VocabResolver
from mini_coil.model.encoder import Encoder
from mini_coil.model.word_encoder import WordEncoder

from py_rust_stemmers import SnowballStemmer

def load_vocab(vocab_path):
vocab = []
Expand All @@ -27,17 +27,25 @@ def main():
parser.add_argument("--output-path", type=str)
parser.add_argument("--input-dim", type=int, default=512)
parser.add_argument("--output-dim", type=int, default=4)

stemmer = SnowballStemmer("english")
args = parser.parse_args()

vocab = load_vocab(args.vocab_path)
filtered_vocab = []
stemmed_words_vocab = set()

for word in vocab:
if word in english_stopwords:
continue
model_path = os.path.join(args.models_dir, f"model-{word}.ptch")
if os.path.exists(model_path):
filtered_vocab.append(word)
stemmed_word = stemmer.stem_word(word)
if stemmed_word in stemmed_words_vocab:
continue
else:
stemmed_words_vocab.add(stemmed_word)
model_path = os.path.join(args.models_dir, f"model-{word}.ptch")
if os.path.exists(model_path):
filtered_vocab.append(word)

params = [torch.zeros(args.input_dim, args.output_dim)] # Extra zero tensor, as first word is vocab starts from 1

Expand Down