RAG・検索基盤

Sudachiとは|表記のゆれ8組が、正規化形では8組ともそろった

Sudachiとは何か分割の単位を選べると何が変わるのか表記のゆれはどこまでそろうのか

「出張旅費精算書」を1語として扱いたいのか、「出張」「旅費」「精算」「書」に割りたいのか。Sudachiはこれを選べます

実際に入れて測りました。単位を粗くすると1語になります。加えて書き方の違う8組が、正規化形では8組ともそろいました

この記事の要点

  • 「出張旅費精算書」は4語・3語・1語に分かれる
  • 書き方の違う8組が正規化形で8組ともそろう
  • 索引と問いで単位が違うと17語中8語しか一致しない
  • 語の総数は単位で245個から218個

「出張旅費精算書」は4語・3語・1語に分かれた

同じ文を3つの単位で切りました。長い名前をまとめるか割るかを、こちらで選べます。

Sudachiで分割の単位を変えると何が変わるのかを、実際に走らせて測りました。使ったのは社内規程を模した文書12件です。

READMEも単位の違いをA:選挙/管理/委員/会 B:選挙/管理/委員会 C:選挙管理委員会という例で示しています。同じ文字列が、単位によって4語にも1語にもなります。

python
MODES = [('A(細かい)', SplitMode.A), ('B(中間)', SplitMode.B), ('C(粗い)', SplitMode.C)]

def surfaces(text, mode):
    return [m.surface() for m in tok.tokenize(text, mode)]
text
  宿泊費の上限は1泊12000円とする。
    A(細かい)     12個  宿泊|費|の|上限|は|1|泊|12000|円|と|する|。
    B(中間)      11個  宿泊費|の|上限|は|1|泊|12000|円|と|する|。
    C(粗い)      11個  宿泊費|の|上限|は|1|泊|12000|円|と|する|。

  出張旅費精算書の提出は必要とする。
    A(細かい)     11個  出張|旅費|精算|書|の|提出|は|必要|と|する|。
    B(中間)      10個  出張|旅費|精算書|の|提出|は|必要|と|する|。
    C(粗い)       8個  出張旅費精算書|の|提出|は|必要|と|する|。

単位              語の総数  語の種類
A(細かい)               245個     109種
B(中間)                227個     105種
C(粗い)                218個     104種

上の出力を見てください。「出張旅費精算書」は細かい単位で出張・旅費・精算・書の4語に割れ、粗い単位では1語のままになりました。

選べることの意味

1語のままなら、帳票名として正確に絞り込めます。「出張」だけを含む別の条文には当たりません。

割れていれば逆になります。「旅費の精算」と書かれた文書にも当たります。広く当てたいときはこちらです。

一般語も単位で変わる

「宿泊費」も同じです。細かい単位では宿泊と費に割れ、中間から上では1語のままでした。

語の総数は245個から218個までしか変わりません。差が出るのは長い名前のところだけで、文全体としては大きく変わらないという結果でした。

差が出るのは長い名前のところ。

単位: 語A(細かい)11語B(中間)10語C(粗い)8語文書12件全体では245個・227個・218個。単位による差は長い名前のところに集中する。
図1 ── 「出張旅費精算書の提出は必要とする。」の語数
出典Sudachi README2026-08-18 確認
A:選挙/管理/委員/会 B:選挙/管理/委員会 C:選挙管理委員会
原文Sudachi README この内容の有効期限2027-02-18

表記のゆれ8組が、正規化形では8組ともそろった

書き方の違う語を同じ形に直す機能が入っています。送り仮名や長音の違いは、それだけでそろいます。

Sudachiには書き方の違いを1つの形にそろえる機能があります。どこまでそろうのかを実際に測りました。

READMEは、そろえる対象として送り仮名(打込む→打ち込む)や表記(かつ丼→カツ丼)を挙げています。誤記や縮約形も対象だとしています。

text
書き方1          書き方2          表層形が同じ  正規化形が同じ
打ち合わせ           打合せ                    いいえ            はい
引っ越し            引越                     いいえ            はい
サーバ             サーバー                   いいえ            はい
コンピュータ          コンピューター                いいえ            はい
問い合わせ           問合せ                    いいえ            はい
受け付け            受付                     いいえ            はい
申し込み            申込                     いいえ            はい
取り扱い            取扱                     いいえ            はい

8組のうち、表層形で同じ: 0組 / 正規化形で同じ: 8組

上の表を見てください。書いてある文字としては8組すべてが違います。正規化形にすると8組ともそろいました。

どちらの形にそろうか

そろう先は決まっています。「打合せ」は打ち合わせに、「サーバ」はサーバーになりました。

短いほうにそろうわけでも、長いほうにそろうわけでもありません。辞書が定めた形に寄ります。

使いどころ

  1. 索引を正規化形で作る。書き方の違いが吸収される
  2. 問いも正規化形にする。片方だけでは意味がない
  3. 元の文字は別に持つ。表示に使うのは元の形
  4. そろわない語を数える。自社固有の略語は対象外

4番目は忘れがちです。辞書に載っていない書き方は、そろえようがありません。表記のゆれ全般の話は表記ゆれの記事で扱っています。

余談 この計測での注意

使ったのは中間の大きさの辞書です。READMEによれば辞書は3種類あり、小・中・全で収録される語彙が違います。固有名詞を多く含むものに替えると、割れ方もそろい方も変わります。この記事の数字は中間の辞書での結果です。

出典Sudachi README2026-08-18 確認
Sudachi normalize the following variations. Okurigana e.g. 打込む → 打ち込む Script e.g. かつ丼 → カツ丼
原文Sudachi README この内容の有効期限2027-02-18

索引と問いで単位が違うと当たらない

単位を選べることの裏返しです。索引を作った単位と問いを切る単位がずれると、語が一致しなくなります。

Sudachiで単位を選べるということは、選び間違えることもできるということです。索引と問いで単位を変えたらどうなるかを測りました。

text
索引の単位    問いの単位    一致した語の数(問い4件の合計)
A(細かい)        A(細かい)            17 / 17
A(細かい)        B(中間)             11 / 14
A(細かい)        C(粗い)              8 / 12
B(中間)         A(細かい)            14 / 17
B(中間)         B(中間)             14 / 14
B(中間)         C(粗い)             10 / 12
C(粗い)         A(細かい)            12 / 17
C(粗い)         B(中間)             11 / 14
C(粗い)         C(粗い)             12 / 12

上の表で、索引と問いが同じ単位の行はすべて全部一致しています。17/17、14/14、12/12です。

ずらすと落ちる

単位がずれた行では一致が減ります。いちばん落ちたのは細かい索引に粗い問いを当てた場合で、12語中8語でした。

理由は単純です。索引には「出張」「旅費」「精算」「書」が入っているのに、問いは「出張旅費精算書」という1語で来ます。文字は同じでも、語としては一致しません

粗い単位が何をしているか

READMEは、Aの単位では最も短い単位に分けられ、Cの単位では固有表現を取り出すとしています。粗い単位は名前をまとめる働きです。

だから固有名詞を正確に扱いたいなら粗い単位が向きます。ただし問いの側も同じ単位で切る必要があります

運用で気をつけること

単位を変えたら索引を作り直します。片方だけ変えると、上の表の非対角の行と同じことが起きます。

単位をそろえれば全部一致。ずらすと落ちる。

充足 2 / 4索引と問いで同じ単位を使っている同じ単位の行はすべて全部一致した。ずらすと12語中8語まで落ちる帳票名や部署名の切れ方を目で見た出張旅費精算書は単位によって4語にも1語にもなる単位を変えたが索引はそのまま作り直さないと、索引と問いで語がそろわない正規化形を索引だけに使っている問いも正規化形にしないと、そろえた意味がなくなる文書12件・問い4件での実測にもとづく。辞書は中間の大きさのものを使った。
図2 ── 単位を決めるときの点検項目
出典Sudachi README2026-08-18 確認
In A mode, texts are divided into the shortest units equivalent to the UniDic short unit. In C mode, it extracts named entities.
原文Sudachi README この内容の有効期限2027-02-18

よくある質問

どの単位を選べばよいですか
固有名詞をまとめて扱いたいなら粗い単位です。広く当てたいなら細かい単位になります。索引と問いで同じ単位を使うことが前提です。
表記のゆれはどこまでそろいますか
この計測では送り仮名や長音の違い8組がすべてそろいました。正規化形という別の形が付いてくるからです。
索引と問いで単位を変えたらどうなりますか
一致する語が減ります。この計測では17語中8語まで落ちました。
辞書は選べますか
3種類あります。この計測では中間の大きさのものを使いました。

まとめ

  • 分割の単位を3段階から選べる形態素解析器
  • 「出張旅費精算書」は4語・3語・1語に分かれる
  • 表記のゆれ8組が正規化形で8組ともそろう
  • 索引と問いで同じ単位を使う必要がある

今日から始められること

  1. 自社の帳票名や部署名を5個書き出す
  2. 3つの単位で切って、どれが望む形か見る
  3. 選んだ単位を索引と問いの両方に使う
  4. 表記のゆれが多い語は正規化形で索引に入れる

実務で組んだSudachiのワークフローには、値段が付きます

同じ課題を持つ会社にとって、動いている設定は「作る時間」を買えるということです。ServiceDockは自作のワークフローやテンプレートを出品できるマーケットプレイスです。手数料や出品の流れは出品者向けページにまとまっています。

出品の仕組みを見る