詞語化為數字(分詞與嵌入)
Unigram 分詞器(Unigram tokenizer)
Unigram 模型走的是與位元組對編碼相反的路。它不是從字元由下往上堆出詞彙表,而是先從一大堆候選片段出發,再逐步刪減。它把分詞當成機率問題:每個詞元都有一個機率,而某種切詞方式的分數,就是其中所有詞元機率的乘積。接著模型保留那個「最能解釋訓練文字」的較小詞彙表。
訓練過程在「估計每個詞元的機率」與「刪掉貢獻最小的候選」之間反覆交替,直到達到目標詞彙表大小為止。由於同一個單字有很多種切法,Unigram 在訓練時還能取樣不同的切分方式,這個技巧叫子詞正則化(subword regularization),能讓最終模型對雜亂的輸入更穩健。它是 SentencePiece 內建的預設模型,而以機率為框架正是它有別於合併式方法之處。
P(\mathbf{x}) = \prod_{i} P(x_i)
一種切分的分數是其各詞元機率的乘積;分數最高的切法勝出。
又称
另见