Download scripts/tokenizer_setup.py from moorebrett0/microformer: direct link, hf CLI and curl.
- Browser
- Download file 1.01 kB
-
https://huggingface.co/moorebrett0/microformer/resolve/main/scripts/tokenizer_setup.py
- Command line
-
hf download hf://moorebrett0/microformer/scripts/tokenizer_setup.py
-
curl -L -o tokenizer_setup.py https://huggingface.co/moorebrett0/microformer/resolve/main/scripts/tokenizer_setup.py
1.01 kB
| from tokenizers import Tokenizer, models, trainers, pre_tokenizers | |
| from pathlib import Path | |
| import json | |
| # Paths | |
| corpus_path = Path("data/corpus.txt") | |
| tokenizer_path = Path("data/tokenizer.json") | |
| # Read corpus | |
| with corpus_path.open("r", encoding="utf-8") as f: | |
| lines = [line.strip() for line in f if line.strip()] | |
| # Initialize tokenizer with BPE model | |
| tokenizer = Tokenizer(models.BPE()) | |
| tokenizer.pre_tokenizer = pre_tokenizers.Sequence([ | |
| pre_tokenizers.Whitespace(), | |
| pre_tokenizers.Punctuation() | |
| ]) | |
| # Train tokenizer | |
| trainer = trainers.BpeTrainer(vocab_size=5000, special_tokens=["<PAD>", "<UNK>", "<EOS>"]) | |
| tokenizer.train_from_iterator(lines, trainer) | |
| # Save tokenizer | |
| tokenizer.save(str(tokenizer_path)) | |
| # Create vocab.json for compatibility | |
| vocab = tokenizer.get_vocab() | |
| stoi = vocab | |
| itos = {v: k for k, v in vocab.items()} | |
| with open("data/vocab.json", "w") as f: | |
| json.dump({"stoi": stoi, "itos": itos}, f) | |