SentencePieceとは
SentencePiece(センテンスピース)とは、Googleが開発したオープンソースのテキストトークナイザーおよびデトークナイザーです。言語に依存しない設計が特徴で、前処理(空白分割や正規化など)なしに生のテキストから直接サブワード分割を行えます。
| ひとことで言うと | 事前の単語分割なしで、生の文からそのままサブワードを学習できるツール。 |
|---|---|
| 何がうれしいか | 日本語のように単語の区切りがない言語でも、形態素解析なしで扱える。 |
| 注意点 | 分割結果は人間の感覚とずれる。可読性より処理効率を優先した仕組み。 |
言語非依存の設計
従来のトークナイザーは空白で単語を分割することを前提としていたため、日本語や中国語のように単語間にスペースがない言語では前処理が必要でした。SentencePieceはテキスト全体を一つの文字列として扱い、空白文字も特殊文字(▁)として語彙に含めることで、言語を問わず統一的に処理できます。
1生の文を入力分かち書き不要
▶
2空白も1文字扱い「▁」として保持
▶
3サブワードを学習BPEやUnigramで
▶
4完全に元へ戻せる復元が正確
サポートするアルゴリズム
SentencePieceはBPE(Byte Pair Encoding)とUnigram言語モデルの2つのサブワード分割アルゴリズムをサポートしています。Unigramモデルは候補語彙から不要なサブワードを確率的に除去していく方式で、より柔軟な分割が可能です。
SentencePieceの採用例
SentencePieceはT5、ALBERT、XLNet、mBERTなどの多言語モデルで広く採用されています。日本語のような言語でも特別な前処理なしに使用でき、学習・推論の再現性も高いことから、多くの研究・実用プロジェクトで利用されています。