ifonso/zig-tokenizer
just messing with tokenizers for the sake of learning
Um projeto de teste para criação de um tokenizer para LLMs, atualmente implementa dois modos: quebra conservadora, e quebra agressiva.
Não é uma lib. (até o momento)
Inicialize o tokenizer informando as opções desejadas:
const Tokenizer = @import("tokenizer.zig").Tokenizer;
const tokenizer = Tokenizer.init(true, .Agressive);
const input = "Olá, Mundo!";
const tokens = try tokenizer.tokenize(allocator, input);
Tokenização de palavras, pontuação e símbolos intermediários.
Suporte a modos Conservative e Aggressive.
Offsets para reconstrução reversível.
Lowercasing opcional.
BPE (Byte-Pair Encoding) após tokenização.
Suporte completo a Unicode (caracteres acentuados, scripts orientais, etc).
Tratamento especial para emojis e símbolos complexos.