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