10 5 12 4 5 h u g p u g p u n b u n h u g s h ug p p u n b u n h s ug ug “ug”をボキャブラリーに追加 • 単語をさらに文字単位まで分割し 出現する文字系列の出現頻度にしたがってマージしていく • ボキャブラリーのサイズが規定値に達するまで何回も繰り返す
hug pug pun bun hugs 単語 頻度 10 5 12 4 5 h u g p u g p u n b u n h u g s u g = 20/(36×20) = 1/36 ”u”と”g”が共に頻度が高いため スコアが低めになっている g s = 5/(20×5) = 1/20 ”s”の頻度が少ないためスコアが高い
hug hugs 単語 頻度 10 5 ボキャブラリー (可能なすべての部分文字列) ["h", "u", "g", "hu", "ug", "s", "hug", "gs", "ugs"] h u g = h u g × × = 15/95×15/95×15/95 hu g = hu g × = 15/95×15/95 可能な分割について確率を計算 分割の確率=トークン出現確率の掛け算 Unigramでトークナイズする場合は 可能な分割の中で最も確率の高い分割が採択されます
tokenizer and detokenizer for Neural Text Processing (Kudo et al., 2018) • 言語に依存する処理をなくし 完全にコーパスのみからトークナイザーを学習することができます • BPEとUnigramの2手法に対応しています • サブワードの分布を確率分布として学習したモデルを使って サブワード分割を確率的にサンプリングします