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. 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)