Unigram-tokenisering
Unigram-tokenisering er en subword-tokeniseringsteknik, der træner et unigram-sprogmodel over et korpus og vælger det mest sandsynlige segmenteringsmønster for hvert ord.
Kort fortalt
En metode til at opdele ord i mindre dele (subwords) baseret på sandsynligheder fra en simpel sprogmodel, der ser på enkeltdele uafhængigt.
- Kategori
- teknik
- Niveau
- øvet
Betydninger
1- 1
En teknik inden for naturlig sprogbehandling, hvor et korpus tokeniseres ved at finde den mest sandsynlige sekvens af subwords (unigrammer) ifølge et trænet unigram-sprogmodel.
- Unigram-tokenisering er implementeret i SentencePiece og bruges ofte i sprogmodeller som T5 og XLNet. — Kudo & Richardson, 2018
- Ved unigram-tokenisering starter man med et stort ordforråd og fjerner gradvist de mindst sandsynlige tokens baseret på tab af log-sandsynlighed. — Kudo, 2018
Hvornår bruges det
Unigram-tokenisering bruges ofte som en del af SentencePiece-biblioteket til at generere et ordforråd af subwords. Det er især nyttigt til sprog med mange sammensatte ord eller til at håndtere ukendte ord ved at nedbryde dem i kendte delstykker.
Kodeeksempel
import sentencepiece as spm
spm.SentencePieceTrainer.train('--input=data.txt --model_prefix=m --vocab_size=8000 --model_type=unigram')
sp = spm.SentencePieceProcessor()
sp.Load('m.model')
print(sp.EncodeAsPieces('Tokenisering er vigtig.'))Træning af en unigram-tokeniseringsmodel med SentencePiece og efterfølgende anvendelse til at tokenisere en sætning.
Oprindelse
Termen er sammensat af 'unigram' (et enkelt element) og 'tokenisering' (opdeling i tokens). 'Unigram' kommer fra 'uni-' (en) og '-gram' (noget skrevet), i sprogmodellering brugt om en model der ser på hvert element uafhængigt.
Kilder
2- Subword Regularization: Improving Neural Network Translation Models with Multiple Subword Candidates (Kudo, 2018)
- SentencePiece: A simple and language independent subword tokenizer and detokenizer for Neural Text Processing (Kudo & Richardson, 2018)