scribe-tok-5k / README.md
coderian's picture
Update README.md
00b18a3 verified
|
Raw History Blame Contribute Delete
2.83 kB
---
language:
- en
library_name: tokenizers
license: mit
tags:
- tokenizer
- bpe
---
# scribe-tok-5k
[![GitHub](https://img.shields.io/badge/GitHub-coderianx%2Fscribe--tok--5k-181717?logo=github&logoColor=white)](https://github.com/coderianx/scribe-tok-5k)
[![Hugging Face](https://img.shields.io/badge/%F0%9F%A4%97%20Hugging%20Face-coderian%2Fscribe--tok--5k-FFD21E)](https://huggingface.co/coderian/scribe-tok-5k)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
A small byte-pair encoding (BPE) tokenizer with a 5,000-token vocabulary, trained on clean English book text. It is intended for experimentation, learning, and small language models where a compact vocabulary is preferred over a large production tokenizer.
## Details
| | |
|---|---|
| Model type | BPE |
| Vocab size | 5,000 |
| Pre-tokenizer | Whitespace |
| Min frequency | 2 |
| Corpus | [kd13/bookcorpus-clean](https://huggingface.co/datasets/kd13/bookcorpus-clean) (100,000 lines) |
| Trained with | `tokenizers` 0.23.2 / `transformers` 5.17.0 |
### Special tokens
| Token | ID |
|---|---|
| `[PAD]` | 0 |
| `[UNK]` | 1 |
| `[CLS]` | 2 |
| `[SEP]` | 3 |
| `[MASK]` | 4 |
The whitespace pre-tokenizer means tokens never include leading spaces, and no lowercasing is applied (the corpus is already lowercase).
## Usage
```python
from transformers import AutoTokenizer
tokenizer = AutoTokenizer.from_pretrained("coderian/scribe-tok-5k")
text = "the mysterious creature suddenly disappeared into the shadows"
encoded = tokenizer(text)
print(encoded["input_ids"])
print(tokenizer.convert_ids_to_tokens(encoded["input_ids"]))
```
Or directly with `tokenizers`:
```python
from tokenizers import Tokenizer
tokenizer = Tokenizer.from_file("tokenizer.json")
output = tokenizer.encode("the mysterious creature suddenly disappeared into the shadows")
print(output.tokens)
print(output.ids)
```
## Training
The tokenizer was trained from scratch:
```python
from tokenizers import Tokenizer
from tokenizers.models import BPE
from tokenizers.trainers import BpeTrainer
from tokenizers.pre_tokenizers import Whitespace
tokenizer = Tokenizer(BPE(unk_token="[UNK]"))
tokenizer.pre_tokenizer = Whitespace()
trainer = BpeTrainer(
vocab_size=5000,
min_frequency=2,
special_tokens=["[PAD]", "[UNK]", "[CLS]", "[SEP]", "[MASK]"],
)
tokenizer.train(["corpus.txt"], trainer=trainer)
tokenizer.save("tokenizer.json")
```
## Limitations
- Trained only on English book text; performance on other languages, code, or social/web text will be poor.
- No normalization or lowercasing is applied, so casing variations are treated as distinct tokens.
- Vocabulary is intentionally small (5k), so rare words are split into many subword pieces.
## License
Released under the [MIT License](LICENSE).