Skip to content

MeCab との違い

Suzume は MeCab とは根本的に異なるアプローチで日本語トークン化を行います。このページでは、2 つのツールがどこで結合・分割するかというトークン境界の意図的な違いと、既知の制約、使い分けの指針を説明します。

意図的な差異の正本は、テスト期待値の生成に使う Python の MeCab 正規化パイプラインです。以下では、その規則群を利用目的ごとにまとめて説明します。

比較条件

このページの MeCab の境界と表示する素性は、すべて MeCab 0.996 と mecab-ipadic 2.7.0-20070801(UTF-8 版 IPA 辞書)の出力から記録しています。ラベルは読みやすいように MeCab のカンマ区切り素性を略記していますが、トークン境界は書き換えていません。mecab を既定の設定で実行し、ユーザー辞書は読み込んでいません。使用中の設定は次のコマンドで確認できます。

bash
mecab --version
mecab -D

MeCab の出力は、選択した辞書、そのコスト、ユーザー辞書によって変わります。UniDic、NEologd、カスタマイズした IPA 辞書では、このページと異なる境界や品詞になることがあります。上記の正規化パイプラインは、この IPA 辞書の出力を起点に、Suzume の一般化した比較規則を適用してテスト期待値を生成します。

品詞ラベルの違いを探していますか?

このページはトークンの区切り位置を扱います。同じトークンに対する品詞の付け方の違い — 代名詞、ナ形容詞、助動詞などの分類 — は POS 分類の違いを参照してください。

比較の読み方

各比較では、MeCab 行に MeCab の日本語品詞名、Suzume 行に公開 API のタグ(NOUNVERBADJ など)を、コードごとに日本語の品詞名を併記して示します。各トークンには品詞色のアンダーラインが付くので、2つのトークナイザーがどこで分割・結合するかが一目で分かります。

設計思想

Suzume はトークナイザーであり、形態素解析器ではありません

MeCab は形態素解析器です — テキストを形態素に分解し、詳細な文法情報を付与することを目的としています。Suzume はトークナイザーです — 検索、表示、テキスト処理などの実用的なアプリケーションのために、テキストを意味のある単位に分割することを目的としています。形態素解析は Suzume の目標ではありません。この目的の根本的な違いが、以下に述べる多くの動作の違いを説明しています。

MeCabSuzume
アプローチ辞書駆動型特徴量駆動型
辞書外部辞書が必要。サイズと出力は選択した辞書に依存コンパクトな辞書を同梱(WASM 込みで gzip 約 227KiB
未知語文字種にフォールバックパターンベースの候補生成
複合語選択した辞書に基づく境界辞書と構造規則。未知の連続列は結合する場合あり
対象辞書に基づく詳細な解析ブラウザ・エッジ・ネイティブでのコンパクトな検索・表示用トークン化

基本的なトレードオフ

MeCab は選択した辞書のエントリとコストに従うため、辞書を変えると境界や品詞も変わり得ます。Suzume はコンパクトな辞書と、文字種・文法・接続の共通規則を組み合わせます。内部境界の根拠がない未知の同一文字種列は、結合したままになる場合があります。

結合ルール

辞書駆動の解析では分割される並び、あるいは断片化しても検索単位として役に立たない並びを、1つのトークンとして保持する規則です。

漢字複合語

辞書や文法規則から内部境界を判断できない未登録の漢字列は、通常1つの名詞候補として保持します。一方で 神奈川県 / 横浜市会議 / 中 のような構造上の境界は分割します。

入力経済成長
MeCab
経済名詞成長名詞
2トークン
Suzume
経済成長名詞NOUN
1トークン
入力開始予定
MeCab
開始名詞予定名詞
2トークン
Suzume
開始予定名詞NOUN
1トークン

カタカナ複合語

未知の一般的なカタカナ列は、通常1つの名詞候補として保持します。辞書や形状規則に根拠があれば、「ドキドキ(ADV)」のように別の品詞を付与します。

入力サンプルデータ
MeCab
サンプル名詞データ名詞
2トークン
Suzume
サンプルデータ名詞NOUN
1トークン
入力セットリスト
MeCab
セット名詞リスト名詞
2トークン
Suzume
セットリスト名詞NOUN
1トークン

文字種をまたぐ複合語

英字語に続くカタカナ語は1つの複合名詞になります。

入力AIブーム
MeCab
AIブーム
2トークン
Suzume
AIブーム名詞NOUN
1トークン

数字と単位

基数に助数詞・単位が続く場合は、通常1つの数量トークンに結合します。大きな数値単位(万、億、兆)、小数、パーセント、アルファベット単位にも対応します。ただし序数や構造接尾辞の規則により、第三 / 回 のように分割する場合があります。

入力3人
MeCab
3
2トークン
Suzume
3人名詞NOUN
1トークン
入力100円
MeCab
100
2トークン
Suzume
100円名詞NOUN
1トークン
入力3.14
MeCab
3.14
3トークン
Suzume
3.14名詞NOUN
1トークン

数量の前後には検索単位としての境界を維持します。

入力徒歩五分
MeCab
徒歩
3トークン
Suzume
徒歩五分名詞NOUN
2トークン
入力三ヶ月間入院
MeCab
ヶ月入院
4トークン
Suzume
三ヶ月間名詞NOUN入院
2トークン

カンマで桁を区切った数値は、数値全体を一語として扱います。後続する助数詞は独立した SUFFIX にし、金額は一つの検索単位にまとめます。

入力1,000人
MeCab
1,000
4トークン
Suzume
1,000名詞NOUN接尾辞SUFFIX
2トークン
入力1,000円
MeCab
1,000
4トークン
Suzume
1,000円名詞NOUN
1トークン

同じ結合はアラビア数字以外にも適用されます。

かな表記の数量:

入力よんにん
MeCab
形容詞名詞助詞助詞
4トークン
Suzume
よんにん名詞NOUN
1トークン

配分表現の数量:

入力一語一語
MeCab
一語名詞名詞名詞
3トークン
Suzume
一語一語名詞NOUN
1トークン

番地・地番:

入力1-2-3
MeCab
1-2-3
5トークン
Suzume
1-2-3名詞NOUN
1トークン

序数の「第」と概数の「約」: 序数接頭辞の「第」は数字と結合し、後続の助数詞は独立した SUFFIX トークンになります。概数接頭辞の「約」は逆に独立した PREFIX のまま、数字が助数詞と結合します。

入力第三回
MeCab
3トークン
Suzume
第三名詞NOUN接尾辞SUFFIX
2トークン
入力約三人
MeCab
3トークン
Suzume
接頭辞PREFIX三人名詞NOUN
2トークン

日付

完全な日付表現は単一トークンに結合されます。

入力2024年12月23日
MeCab
20241223
6トークン
Suzume
2024年12月23日名詞NOUN
1トークン

固有名詞と地名

地名構成要素と地域接尾辞の多くは結合します。ただし 県+市 は構造規則による例外で、都道府県と市を分割します。

入力東京都新宿区
MeCab
東京新宿
4トークン
Suzume
東京都新宿区名詞NOUN
1トークン

地名

複合動詞

連用形の動詞語幹に続く補助動詞は、複合動詞として結合されます。

入力食べ続ける
MeCab
食べ続ける
2トークン
Suzume
食べ続ける動詞VERB
1トークン

対応するV2要素: 込む、出す、続く、返す、合う、直す、切る、上がる、抜く、こもる、続ける、つける、替える、合わせる、上げる、下げる、掛ける、入れる 等(40以上のパターン)

「過ぎる」「かねる」のような文法化した補助要素は意図的に結合しません補助動詞の分割を参照してください。

閉じた複合助詞

1つの助詞として機能する閉じた表現は、全体を1トークンに保ちます。

入力や否や
MeCab
助詞否や名詞
2トークン
Suzume
や否や助詞PARTICLE
1トークン

採用した IPA 辞書では「と共に」や、文脈によっては「につれて」も最初から 1 トークンになるため、この比較条件では境界差として掲載しません。別の辞書では分割される場合があります。

否定の「ずに」

否定の助動詞「ず」と後続する助詞「に」は、複合的な文法単位として結合します。

入力食べずに
MeCab
食べ
3トークン
Suzume
食べずに助動詞AUX→ず
2トークン

希望の「たがる」

希望を外から観察して述べる助動詞「たがる」は、活用形を含めて単一の助動詞トークンとして扱います。

入力食べたがる
MeCab
食べがる
3トークン
Suzume
食べ動詞VERBたがる助動詞AUX→たがる
2トークン

一語扱いの機能語

固定的な機能語は、辞書駆動の解析で断片化される場合でも一語として保持します。

入力散歩がてら
MeCab
散歩てら
3トークン
Suzume
散歩名詞NOUNがてら助詞PARTICLE
2トークン
入力そんなら
MeCab
そんなら
2トークン
Suzume
そんなら接続詞CONJ
1トークン

「〜のついでに」を表す「がてら」は1つの助詞、口語の「そんなら」は1つの接続詞です。

動詞連用形からの複合名詞

動詞の連用形+「会」、および行き先を表す「行き」は、1つの名詞になります。

入力飲み会
MeCab
飲み
2トークン
Suzume
飲み会名詞NOUN
1トークン
入力東京行き
MeCab
東京行き
2トークン
Suzume
東京行き名詞NOUN
1トークン

ナイ形容詞

「ない」で終わる特定の形容詞は、分割せず単一の語彙として扱います。

入力だらしない
MeCab
だらし名詞・ナイ形容詞語幹ない助動詞
2トークン
Suzume
だらしない形容詞ADJ
1トークン

単一語として処理する主な例: だらしない、つまらない、もったいない、くだらない、いたたまれない、ものたりない、こころもとない

これは閉じた語彙リストです。生産的な「語幹+ない」の組み合わせは分割します — 生産的な否定の分割を参照してください。

スラング・現代語

現代の口語的な形容詞・動詞をネイティブに認識します。

入力エモい
MeCab
エモ名詞動詞
2トークン
Suzume
エモい形容詞ADJ
1トークン

認識例: エモい、キモい、ウザい、ダサい、イタい、ヤバい、これらのひらがな表記、複合イ形容詞

動詞の認識例: バズる、ググる、パクる

タリ活用副詞

タリ活用の副詞語幹に「と」が続く場合、単一の副詞に結合されます。

入力堂々と
MeCab
堂々
2トークン
Suzume
堂々と副詞ADV
1トークン

対象語幹: 泰然、堂々、悠々、淡々、粛々、颯爽、毅然、漫然、茫然、呆然、唖然、愕然、断然、俄然、歴然、整然、雑然、騒然、憮然、黙然、昂然、凛然、厳然

名詞+一字接尾辞

次の限定された名詞+一字接尾辞の組み合わせを結合します。

入力報告書
MeCab
報告
2トークン
Suzume
報告書名詞NOUN
1トークン
入力成功率
MeCab
成功
2トークン
Suzume
成功率名詞NOUN
1トークン

対象接尾辞: 書、誌、時、率、性

動詞連用形+「方」

短い動詞連用形に形式名詞「方」が続く場合、方法を表す単一の検索単位に結合します。

入力走り方
MeCab
走り
2トークン
Suzume
走り方名詞NOUN
1トークン

結合するのは短い語幹だけです。連用形が2文字以内の場合に限られます(走り方、やり方)。長い連用形は境界を維持し、「打ち合わせ方」は「打ち合わせ / 方」のままです。

ひらがなの日常語

ひらがな表記が一般的な日常語は、パターン規則と小さな L2 辞書を組み合わせて一語のまま扱います。パターン規則は「おととい」「ひこうき」「みっつ」や「翌営業日」のような暦の複合語を処理します。「みず」「てがみ」「ひらがな」「にわ」「いりぐち」「はにわ」「あけぼの」「くだもの」のように、助詞や活用語尾と同じ文字を含む曖昧な名詞には辞書の語彙情報を使います。

長音記号

長音記号(ー)は前のトークンに結合されます。

入力そうー
MeCab
そう副詞名詞
2トークン
Suzume
そうー副詞ADV
1トークン
入力すごーーい
MeCab
すご形容詞ーー名詞名詞
3トークン
Suzume
すごーーい形容詞ADJ→すごーーい
1トークン

テクニカルテキスト

技術的な識別子は単一トークンに結合されます。

snake_case識別子:

入力user_name
MeCab
user_name
3トークン
Suzume
user_name
1トークン

バージョン番号:

入力v1.2.3
MeCab
v1.2.3
6トークン
Suzume
v1.2.3
1トークン

ASCII名+番号:

入力Model15
MeCab
Model15
2トークン
Suzume
Model15
1トークン

ASCIIドット記法:

入力console.log
MeCab
console.log
3トークン
Suzume
console.log
1トークン

ASCII 語中の区切り記号:

入力data-driven
MeCab
data-driven
3トークン
Suzume
data-driven
1トークン

ASCII の単語文字に挟まれたアポストロフィ、アンパサンド、スラッシュも同じ規則で 1 トークンに保ちます。

URL・メンション・ハッシュタグ

URL、@メンション、#ハッシュタグは単一トークンに結合されます。日本語を含むハッシュタグも一語として保持されます。

入力https://example.com にアクセス
MeCab
https://example.comアクセス
7トークン
Suzume
https://example.comアクセス
3トークン
入力@user_name に送信
MeCab
@user_name送信
6トークン
Suzume
@user_name送信
3トークン
入力#topicについて
MeCab
#topicについて
3トークン
Suzume
#topicについて
2トークン
入力#日本語タグ
MeCab
#日本語タグ
3トークン
Suzume
#日本語タグ名詞NOUN
1トークン

分割ルール

Suzume は辞書駆動の解析にはない境界も引きます。また、境界が意味を持つ場所では、自身の結合ルールを意図的に止めます。

お・ご接頭辞

Suzume はお/ごの敬語接頭辞を名詞から分割しますが、不可分な語彙の場合は結合を維持します。

入力お茶
MeCab
お茶名詞
1トークン
Suzume
接頭辞PREFIX名詞NOUN
2トークン

分割 — 分離可能な接頭辞

不可分な例外語(MeCab と Suzume で同じく一語のため、差異例には掲載しません): お金、お前、おかず、おでん、おもちゃ、おすすめ、おいら、おっさん、お疲れ様、お出で/おいで、および家族語(お母さん、お父さん、お兄ちゃん、お姉さん、おじさん、おばさん、おじいさん、おばあさん等)

敬称とひらがな愛称

敬称は名前から分割されます。

対象敬称: さん、ちゃん、様、君、殿、さま

例外: お兄ちゃん、お母さんなどの家族語と、「皆様」「皆さん」は単一トークンとして維持されます。

2〜3文字のひらがな語幹に「ちゃん」「くん」が続く短い愛称や、辞書化された家族語は検索単位として結合する場合があります。通常の「さん」は独立した接尾辞のままで、漢字語幹の名前でも敬称を分離します。

入力わんちゃん
MeCab
わんちゃん
2トークン
Suzume
わんちゃん名詞NOUN
1トークン

補助動詞の分割

文法化した補助要素 — 過ぎる(過度)、かねる(不可能)、そびれる(機会逸失)、尽くす(完遂) — は本動詞から分割し AUX を付与します。結合される語彙的な複合動詞とは対照的です。MeCab 自身の扱いも辞書によって揺れがあり、結合される組み合わせ(飲み過ぎ)と、非自立サブカテゴリで分割される組み合わせがあります。

入力飲み過ぎた
MeCab
飲み動詞過ぎ動詞・非自立助動詞
3トークン
Suzume
飲み動詞VERB過ぎ助動詞AUX→過ぎる助動詞AUX
3トークン
入力わかりかねる
MeCab
わかり動詞かねる動詞・非自立
2トークン
Suzume
わかり動詞VERB→わかるかねる助動詞AUX
2トークン
入力言いそびれた
MeCab
言いそびれ動詞助動詞
2トークン
Suzume
言い動詞VERB→言うそびれ助動詞AUX→そびれる助動詞AUX
3トークン
入力食べ尽くす
MeCab
食べ動詞尽くす動詞・非自立
2トークン
Suzume
食べ動詞VERB尽くす助動詞AUX
2トークン

口語の強調助詞

口語の強調助詞は、断片化させずに1つの単位として分割します。

ったら題目助詞:

入力あなたったら
MeCab
あな名詞たっ動詞たら助動詞
3トークン
Suzume
あなた代名詞PRONったら助詞PARTICLE
2トークン

ってば強調助詞:

入力もうってば
MeCab
助詞うっ動詞助詞助詞
4トークン
Suzume
もう副詞ADVってば助詞PARTICLE
2トークン

生産的な機能語の連鎖

生産的な構文は、綴り全体を固定した機能語とせず、内部の動詞・助詞境界を保ちます。

入力とすれば
MeCab
とすれば接続詞
1トークン
Suzume
助詞PARTICLEすれ動詞VERB→する助詞PARTICLE
3トークン

「をもって」も同じ規則で「を / もっ / て」になります。生産的な動詞境界を含まない閉じた表現は、上の「や否や」のように全体を保ちます。

副詞的名詞+助詞

比較辞書が1つの機能語として語彙化する一部の並びを、名詞+助詞のまま保持します。

入力次に
MeCab
次に接続詞
1トークン
Suzume
名詞NOUN助詞PARTICLE
2トークン
入力後で行く
MeCab
後で副詞行く
2トークン
Suzume
名詞NOUN助詞PARTICLE行く動詞VERB
3トークン

先頭の固定単位

連体詞「わが」は後続の名詞から分割します。「以下」「程度」のような固定単位も、隣接する名詞から独立したトークンを維持します。

入力わが国
MeCab
わが国名詞
1トークン
Suzume
わが連体詞DET名詞NOUN
2トークン

動詞連用形+生産的接尾辞

動詞語幹に付く生産的な接尾辞 — がち(傾向)、たて(直後)、っぱなし(放置) — は境界を維持して SUFFIX を付与するため、動詞語幹は原形付きで検索可能なままです。

入力忘れがち
MeCab
忘れ動詞がち名詞・接尾
2トークン
Suzume
忘れ動詞VERB→忘れるがち接尾辞SUFFIX
2トークン
入力できたて
MeCab
でき動詞助動詞助詞
3トークン
Suzume
でき動詞VERB→できるたて接尾辞SUFFIX
2トークン
入力開けっぱなし
MeCab
開けっぱなし名詞
1トークン
Suzume
開け動詞VERB→開けるっぱなし接尾辞SUFFIX
2トークン

否定構文の「読みっこない」も同じ方針で、読み(VERB)/ っこ(SUFFIX)/ ない(ADJ)に分かれます。

数量・状態の接尾辞

Suzume は漢字複合語を積極的に結合しますが、生産的な数量・状態の接尾辞は境界を維持して SUFFIX を付与します。

入力二階建て
MeCab
建て
3トークン
Suzume
二階名詞NOUN建て接尾辞SUFFIX
2トークン
入力砂糖抜き
MeCab
砂糖名詞抜き名詞
2トークン
Suzume
砂糖名詞NOUN抜き接尾辞SUFFIX
2トークン
入力会議中に
MeCab
会議名詞名詞助詞
3トークン
Suzume
会議名詞NOUN接尾辞SUFFIX助詞PARTICLE
3トークン

名詞化の「さ」のように境界を変えずにラベルだけ変わる接尾辞は、POS 分類の違いで扱います。

生産的な否定の分割

閉じた語彙リストのナイ形容詞とは異なり、生産的な「語幹+ない」の組み合わせは分割し、語幹を検索可能に保ちます。

入力揺るぎない
MeCab
揺るぎない形容詞
1トークン
Suzume
揺るぎ名詞NOUNない形容詞ADJ
2トークン
入力やりきれない
MeCab
やりきれない形容詞
1トークン
Suzume
やりきれ動詞VERB→やりきれるない助動詞AUX
2トークン
入力やむを得ない
MeCab
やむを得ない形容詞
1トークン
Suzume
やむ動詞VERB助詞PARTICLE動詞VERB→得るない助動詞AUX
4トークン

漢語+「として」

「依然として」のような固定したタリ副詞構文は、MeCab では1つの副詞です。Suzume は副詞形と「する」の活用を分割します。「名詞として」のような生産的な表現は、どちらの解析器でも文法境界を持ちます。

入力依然として
MeCab
依然として副詞
1トークン
Suzume
依然と副詞ADV動詞VERB助詞PARTICLE
3トークン

県+市

県+市の複合名詞は行政区画の境界で分割されます。

入力神奈川県横浜市
MeCab
神奈川横浜
4トークン
Suzume
神奈川県横浜市
2トークン

県/市の境界で分割

注: この分割ルールは 県+市 パターンにのみ適用されます。都+区(東京都新宿区)や 府+市(大阪府大阪市)などの組み合わせは、固有名詞と地名の結合ルールにより単一トークンに結合されます。

文語・古風な語尾

文語の活用も現代語と同じ方針で文法境界を保ちます。否定、推量・当為、過去・完了、禁止、命令の各系列を扱います。例を挙げます。

  • 文語否定の「ぬ」は未然形から分割: 知らぬ → 知ら+ぬ(AUX
  • 文語的な「ん」も同様に分割: 乗り越えん → 乗り越え+ん(AUX
  • 文語過去の「き」も独立した助動詞境界を保つ: 行かざりき → 行か+ざり+き

正規化

辞書出力が同等の形の間で揺れる場合でも、Suzume は文法構文を一貫した1つの形に正規化します。

内容を持つ記号と句読点

通貨・単位記号、矢印、数学・技術記号、絵文字は、既定の出力でも OTHER として残ります。これらはテキストの内容を持つため、対応する文字範囲もトークンのオフセットに含まれます。句読点などは SYMBOL として扱い、既定では省略します。出力に残すには preserveSymbols を有効にします。

オプション価格は€50🎉。
既定価格(NOUN) / は(PARTICLE) / €(OTHER) / 50(NOUN) / 🎉(OTHER)
preserveSymbols: true価格(NOUN) / は(PARTICLE) / €(OTHER) / 50(NOUN) / 🎉(OTHER) / 。(SYMBOL)

コピュラ否定

名詞述語の後では、「じゃ」をコピュラ、「ない」を否定の助動詞として扱います。単独の「じゃない」は曖昧で、1 つの形容詞トークンになる場合があるため、比較には名詞側も含めます。

入力本じゃない
MeCab
名詞じゃ助詞ない助動詞
3トークン
Suzume
名詞NOUNじゃ助動詞AUX→だない助動詞AUX
3トークン

使役受身

MeCab は五段動詞の未然形+使役「さ」を1トークンに結合する場合があります。Suzume はこの不整合を正規化します。

入力飲まされた
MeCab
飲まさ動詞動詞・接尾助動詞
3トークン
Suzume
飲ま動詞VERB→飲む助動詞AUX→す助動詞AUX助動詞AUX
4トークン

定型あいづちの分解

フィラーとして語彙化された定型の会話フレーズは、文法要素に分解します。

入力そうですね
MeCab
そうですねフィラー
1トークン
Suzume
そう形容詞ADJです助動詞AUX助詞PARTICLE
3トークン

形式名詞「ふう」

指示連体詞に続く「ふうに」は、連体詞・形式名詞・助詞という文法単位に分割します。

入力そんなふうに
MeCab
そんなふうに副詞
1トークン
Suzume
そんな連体詞DETふう名詞NOUN助詞PARTICLE
3トークン

不定の「か」

疑問代名詞に付く不定の「か」は代名詞から分割し、その後の存在動詞「いる」は本動詞として扱います。

入力なにかいる
MeCab
なにかいる
2トークン
Suzume
なに代名詞PRON助詞PARTICLEいる動詞VERB
3トークン

制約

Suzume の特徴量ベースアーキテクチャに起因する既知の制限事項です。

結合された複合語の分割不可

Suzume は、未知の同一文字種複合語の内部にある任意の語彙境界を推測できません。ただし、文法規則やコンパクトな辞書で根拠のある境界は分割できます。

入力東京都庁前
MeCab
東京都庁
3トークン
Suzume
東京都庁前名詞NOUN
1トークン

Suzume は内部境界を判定できず、MeCab は辞書に基づいて分割します

回避策: アプリケーションで必要な境界は、ユーザー辞書ガイドの実行時読み込み例を使って登録します。JavaScript、Python、Go、C++、C、ネイティブ CLI の例を掲載しています。

使い分けの指針

ユースケース推奨
ブラウザ / クライアントサイドアプリSuzume — サーバー不要
検索インデックス / タグ抽出Suzume — 複合語結合がむしろ有利
特定の MeCab 辞書/コーパスとの互換性MeCab — その辞書の境界と品詞体系を維持
リアルタイム UI(入力中の処理)Suzume — 高速、ネットワーク遅延なし
辞書で定義された複合語分割MeCab — 選択した辞書に基づく境界判定
辞書にない語へのパターン候補Suzume — 語彙エントリがない文字列も解析可能