Prezentarea Modern Text Tokenizer

Modelele moderne de procesare a limbajului natural (NLP), precum BERT, DistilBERT și alte arhitecturi bazate pe transformatoare, se bazează în mare măsură pe o tokenizare eficientă. Însă dezvoltatorii C++ se confruntă adesea cu opțiuni limitate, cum ar fi dependențe supradimensionate, suport Unicode slab sau lipsa de compatibilitate cu codificatoarele bazate pe vocabular.

De aceea am creat Modern Text Tokenizer - un tokenizer C++ extrem de rapid, doar pentru antet, care este compatibil cu UTF-8, fără dependențe și pregătit pentru ML din cutie.

Ce îl face unic?

  • Zero dependențe – Fără Boost, fără ICU, fără biblioteci externe.
  • UTF-8 Safe – Gestionează corect textul multilingv, emoji-urile și caracterele multi-octeți.
  • Doar pentru antet – Includeți-l în proiectul dvs. și gata.
  • Codare vocabular – Încărcați vocab.txt din HuggingFace și generați ID-uri de tokenuri.
  • Compatibilitate cu Transformer – Acceptă [CLS], [SEP], [PAD] și formatarea secvențelor.

Caracteristici cheie

  • Ramificare rapidă ASCII vs. Unicode folosind std::string_view
  • API Fluent pentru configurare:
    1  TextTokenizer tokenizer;
    2  tokenizer
    3    .set_lowercase(true)
    4    .set_split_on_punctuation(true)
    5    .set_keep_punctuation(true);
  • Încărcați vocabularul:
    1  tokenizer.load_vocab("vocab.txt");
  • Codificare / Decodificare:
    1  auto ids = tokenizer.encode("Hello world!");
    2  std::string decoded = tokenizer.decode(ids);

Performanță

1Test de performanță cu 174000 de caractere
2
3Rezultate:
4Tokenizare: 2159 μs (22000 de tokenuri)
5Codificare: 1900 μs
6Decodare: 430 μs
7Timp total: 4,49 ms
8Debit: 36,97 MB/s

Test testat pe Ryzen 9 5900X @ -O3 în modul de lansare.

Cum se utilizează

Adăugați fișierul antet:

1#include "Modern-Text-Tokenizer.hpp"

Apoi compilați:

1g++ -std=c++17 -O3 -o tokenizer_demo main.cpp

Vrei să îl folosești cu BERT sau DistilBERT? Descarcă fișierul de vocabular:

1curl -O https://huggingface.co/distilbert/distilbert-base-uncased/raw/main/vocab.txt

Construcții CI multi-platformă

OSStatus
Ubuntu
Windows
GitHub ActionsCI

Cazuri de utilizare

  • Preprocesare text pentru modele ML în C++
  • NLP pe dispozitiv (fără costuri suplimentare Python)
  • Instrumente CLI de înaltă performanță
  • Sisteme integrate fără dependențe de execuție

Încercați acum

Modern Text Tokenizer este live și gata pentru proiectele dvs.

Clonați, compilați și tokenizați în câteva secunde: Modern Text Tokenizer