SentencePiece
SentencePiece er en subord-tokeniseringsalgoritme, der behandler input som en ubrudt strøm og lærer et ordforråd af delord uden forudgående tokenisering.
Kort fortalt
SentencePiece er et værktøj til at opdele tekst i mindre enheder (subwords) uden at skulle tokenisere først, hvilket gør det sproguafhængigt.
- Kategori
- teknik
- Niveau
- øvet
- Udtale
- /ˈsɛntəns piːs/
Betydninger
1- 1
En subord-tokeniseringsmetode, der lærer et ordforråd af delord direkte fra rå tekst uden forudgående tokenisering, ofte baseret på unigram-sprogmodel eller BPE.
- Vi brugte SentencePiece til at træne en sprogmodel på dansk, hvilket reducerede antallet af ukendte ord markant. — Praksis
- SentencePiece understøtter både BPE og unigram-tilgangen til subord-segmentering. — Original artikel, 2018
Hvornår bruges det
Bruges i moderne NLP-modeller som BERT, T5 og XLNet til at håndtere ordforråd på tværs af sprog og reducere antallet af ukendte ord. Det er især nyttigt til sprog med mange sammensatte ord eller morfologisk kompleksitet.
Kodeeksempel
import sentencepiece as spm
spm.SentencePieceTrainer.train('--input=data.txt --model_prefix=m --vocab_size=8000')
sp = spm.SentencePieceProcessor(model_file='m.model')
print(sp.encode('Hej verden', out_type=str))Træning og brug af en SentencePiece-model i Python.
Oprindelse
Navnet kommer af 'sentence' (sætning) og 'piece' (stykke), da algoritmen opdeler sætninger i stykker (subwords).
Kilder
2- SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing
- Google SentencePiece GitHub repository