Skip to content

MeCab との違い

Suzume は MeCab とは根本的に異なるアプローチで日本語トークン化を行います。このページでは、意図的な設計上の違いと既知の制約を説明します。

設計思想

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

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

MeCabSuzume
アプローチ辞書駆動型特徴量駆動型
辞書50MB以上(必須)最小限(WASM含め約400KB)
未知語文字種にフォールバックパターンベースの候補生成
複合語辞書に基づき分割文字種パターンに基づき結合
対象サーバーサイド、学術用途ブラウザ、リアルタイム、クライアントサイド

基本的なトレードオフ

MeCab は辞書に登録された全単語を知っており、正確に分割できます。Suzume は網羅的な辞書の代わりに文字種パターンを使用するため、確実に分割できない配列は結合します。

意図的な違い

以下の挙動は設計上の判断です。Suzume はこれらのケースで意図的に MeCab と異なる動作をします。

1. 漢字複合語の結合

連続する漢字列は単一の名詞トークンに結合されます。

入力: 経済成長
MeCab:  経済 / 成長     (2トークン)
Suzume: 経済成長         (1トークン)
入力: 開始予定
MeCab:  開始 / 予定     (2トークン)
Suzume: 開始予定         (1トークン)

理由: 完全な辞書がなければ、漢字複合語のどこで分割すべきか判断できません。結合するほうが安全な選択です — 過剰に結合されたトークンでも、テキスト範囲は正確に捕捉されます。特定の分割が必要な場合はユーザー辞書で定義できます。

2. カタカナ複合語の結合

連続するカタカナ列は単一の名詞トークンに結合されます。

入力: データベース
MeCab:  データ / ベース  (2トークン)
Suzume: データベース      (1トークン)
入力: セットリスト
MeCab:  セット / リスト  (2トークン)
Suzume: セットリスト      (1トークン)

理由: 漢字と同様、各外来語の辞書エントリがなければ分割は不正確になります。カタカナ語はほぼすべて外来語名詞のため、単一名詞としての結合は正しい判断です。

3. 数字+助数詞の結合

数字の後に続く助数詞・単位は単一トークンに結合されます。大きな数値単位(万、億、兆)、小数、パーセント、アルファベット単位にも対応。

入力: 3人
MeCab:  3 / 人          (2トークン)
Suzume: 3人              (1トークン)
入力: 100円
MeCab:  100 / 円        (2トークン)
Suzume: 100円            (1トークン)
入力: 3.14
MeCab:  3 / . / 14      (3トークン)
Suzume: 3.14             (1トークン)

理由: 多くのアプリケーション(検索、タグ付け、表示)では、「3人」を1つの単位として扱う方が有用です。

4. 日付の結合

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

入力: 2024年12月23日
MeCab:  2024 / 年 / 12 / 月 / 23 / 日  (6トークン)
Suzume: 2024年12月23日                    (1トークン)

理由: 日付は意味の原子単位です。分割しても実用的なメリットはありません。

5. ナイ形容詞の一体処理

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

入力: だらしない
MeCab:  だらし / ない    (名詞 + 形容詞)
Suzume: だらしない        (単一の形容詞)
入力: もったいない
MeCab:  もったい / ない  (名詞 + 形容詞)
Suzume: もったいない      (単一の形容詞)

対象語: だらしない、つまらない、しょうがない、もったいない、くだらない、せわしない、やるせない、いたたまれない、あどけない、おぼつかない、はしたない、みっともない、ろくでもない、どうしようもない、ものたりない、こころもとない

理由: これらの語は現代日本語で不可分の形容詞として機能します。「語幹+ない」の分割は語源的には正しいですが、NLP アプリケーションでは有用ではありません。

6. スラング・現代語対応

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

入力: エモい
MeCab:  (未知語または分割)
Suzume: エモい  (ADJ)

対応する形容詞: エモい、キモい、ウザい、ダサい、イタい、エロい

対応する動詞: バズる、ググる、パクる

理由: MeCab の辞書には現代スラングが含まれていません。Suzume は一般的なスラングの形容詞・動詞パターンを認識し、活用形(エモかった、バズった等)も正しく処理します。

7. 複合動詞の結合

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

入力: 走り込む
MeCab:  走り / 込む      (2トークン)
Suzume: 走り込む          (1トークン)
入力: 食べ続ける
MeCab:  食べ / 続ける    (2トークン)
Suzume: 食べ続ける        (1トークン)

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

理由: 複合動詞は日本語で単一の語彙単位として機能します。分割すると複合的な意味が失われます。

8. タリ活用副詞の結合

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

入力: 堂々と
MeCab:  堂々 / と        (2トークン)
Suzume: 堂々と            (1トークン、ADV)

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

理由: これらの語幹+と の組み合わせは慣用的に副詞として使われ、単一トークンの方が有用です。

9. お/ご接頭辞の処理

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

入力: お茶
Suzume: お(PREFIX) / 茶(NOUN)    (分割 — 分離可能な接頭辞)

入力: お金
Suzume: お金(NOUN)                (維持 — 不可分な語彙)

入力: お母さん
Suzume: お母さん(NOUN)            (維持 — 家族語)

不可分な例外語: お金、お前、おかず、おでん、おもちゃ、おすすめ、おいら、おっぱい、おしっこ、おもらし、おっさん、お疲れ様、お出で/おいで、および家族語(お母さん、お父さん、お兄ちゃん、お姉さん、おじさん、おばさん、おじいさん、おばあさん等)

理由: 多くの文脈では、お/ごは分離すべき文法的接頭辞です。しかし一部の語は接頭辞と語彙化しており、分割すると不正確になります。

10. 敬称の分割

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

入力: 田中さん
MeCab:  田中さん          (1トークン)
Suzume: 田中 / さん       (2トークン)

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

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

理由: 検索や表示の用途では、名前と敬称を分離する方が有用です。

11. URL・メンション・ハッシュタグの処理

URL、@メンション、#ハッシュタグは単一トークンに結合されます。

入力: https://example.com にアクセス
Suzume: https://example.com / に / アクセス

入力: @user_name に送信
Suzume: @user_name / に / 送信

入力: #推し活 について
Suzume: #推し活 / について

理由: これらは現代テキストにおける不可分な識別子です。分割するメリットはありません。

12. 長音記号の処理

長音記号(ー)は前のトークンに結合され、連続する長音記号は1つに正規化されます。

入力: あのー
MeCab:  あの / ー          (2トークン)
Suzume: あのー              (1トークン)

入力: すごーーい
Suzume: すごーい            (正規化)

理由: 長音は修飾する語の一部です。

13. 口語代名詞の結合

MeCab が分割する口語代名詞を結合します。

入力: こいつは
MeCab:  こ / いつ / は    (3トークン)
Suzume: こいつ / は        (2トークン)

対象: どいつ、こいつ、そいつ、あいつ

14. 分割ルール

Suzume は MeCab が1つのトークンとして出力するが、別々の単位であるべきものを分割します。

ったら題目助詞:

入力: あなたったら
MeCab:  あなたったら      (1トークン)
Suzume: あなた / ったら    (代名詞 + 助詞)

ってば強調助詞:

入力: もうってば
MeCab:  もうってば        (1トークン)
Suzume: もう / ってば      (副詞 + 助詞)

複数接尾辞ら:

入力: 彼ら
MeCab:  彼ら              (1トークン)
Suzume: 彼 / ら            (代名詞 + 接尾辞)

漢字副詞+に:

入力: 次に
MeCab:  次に(副詞)        (1トークン)
Suzume: 次(NOUN) / に(PARTICLE)  (2トークン)

漢字+カタカナ複合名詞:

入力: 量子コンピュータ(ユーザー辞書未登録の場合)
Suzume: 量子 / コンピュータ  (2トークン)

15. 使役受身の分割

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

入力: 飲まされた
MeCab:  飲まさ / れ / た    (使役が結合)
Suzume: 飲ま / さ / れ / た  (動詞 + 使役 + 受身 + 過去)

理由: MeCab は一部の使役受身形を分割し(読ま + さ + れた)、他を結合します(飲まさ + れた)。Suzume はすべてのケースを正規化します。

16. 漢語+として副詞の分割

MeCab は漢語+としてを単一の副詞として扱います。Suzume は副詞形+する活用に分割します。

入力: 依然として
MeCab:  依然として          (1トークン、副詞)
Suzume: 依然と / し / て     (副詞 + 動詞 + 助動詞)

理由: これらはタル形容詞の副詞形(漢語+と)に続くする活用です。分割することでより正確な文法構造を提供します。

17. 県+市の分割

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

入力: 神奈川県横浜市(MeCab が1トークンで出力する場合)
Suzume: 神奈川県 / 横浜市     (県/市の境界で分割)

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

理由: 県と市は異なる行政レベルであり、境界の分割は検索やジオコーディングにおいて有用です。

18. コピュラ否定の分割

MeCab は「じゃない」を単一の助動詞として扱う場合があります。Suzume は分割します。

入力: じゃない
MeCab:  じゃない            (1トークン、助動詞)
Suzume: じゃ / ない          (助動詞 + 助動詞)

理由: コピュラと否定を分割することで、より細かい文法分析が可能になります。

19. テクニカルテキストの結合

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

snake_case識別子:

入力: user_name
Suzume: user_name            (1トークン)

バージョン番号:

入力: v1.2.3
Suzume: v1.2.3               (1トークン)

ブランド+番号:

入力: iPhone15
Suzume: iPhone15              (1トークン)

ASCIIドット記法:

入力: console.log
Suzume: console.log           (1トークン)

理由: これらは技術テキストにおける不可分な識別子です。分割するメリットはありません。

20. 名詞+接尾辞の結合

名詞の後に続く一字の接尾辞は結合されます。

入力: 報告書
Suzume: 報告書               (1トークン)

入力: 成功率
Suzume: 成功率               (1トークン)

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

理由: これらの名詞+接尾辞の組み合わせは単一の語彙として機能します。

21. 助詞の結合

特定の複数助詞の連接は結合されます。

か+も → かも:

入力: 行くかもしれない
Suzume: 行く / かも / しれ / ない

の+に → のに(過去形の後):

入力: 行ったのに
Suzume: 行っ / た / のに

ず+に → ずに:

入力: 食べずに
Suzume: 食べ / ずに

理由: これらの助詞の組み合わせは複合助詞として機能し、単一単位の方が有用です。

22. 固有名詞+地域の結合

連続する固有名詞と地域接尾辞は結合されます。

入力: 東京都新宿区
Suzume: 東京都新宿区         (1トークン — 地名)

理由: 複数の地理的要素からなる地名は、検索や表示において単一のエンティティとして扱うべきです。

品詞分類の違い

MeCab と Suzume では品詞分類の方針が異なり、同じ語に対して異なる品詞を付与するケースがあります。Suzume は 150 以上のルールに基づき、独自の品詞体系で分類します。

形容詞連用形(〜く)

MeCab は形容詞の連用形(〜く形)を副詞として分類します。Suzume はこれらを形容詞として扱います:

入力: よくある質問
MeCab:  よく(副詞) / ある / 質問
Suzume: よく(ADJ) / ある / 質問
入力: 美しく咲く花
MeCab:  美しく(副詞) / 咲く / 花
Suzume: 美しく(ADJ) / 咲く / 花

「く」で終わり、原形が「い」で終わる語、または漢字を含む表層形はすべて形容詞連用形として認識されます。

代名詞の認識

MeCab は多くの代名詞を普通名詞として分類します。Suzume はこれらを代名詞として扱います:

入力: みんなで行こう
MeCab:  みんな(名詞) / で / 行こう
Suzume: みんな(PRONOUN) / で / 行こう

対象語: あなた、あんた、みんな、みな、皆、某、拙者、我輩、彼女、彼氏、奴、我、わし、いくら(疑問代名詞)

ナ形容詞の認識

MeCab はナ形容詞語幹を名詞(形容動詞語幹)として分類します。Suzume はこれらを形容詞として認識します:

入力: きれいな花
MeCab:  きれい(名詞) / な / 花
Suzume: きれい(ADJ) / な / 花

対象語: きれい、しずか、おだやか、げんき、しんちょう、ありきたり、無限、滅多

注: 一部の形容動詞語幹は意図的に名詞のまま維持: マジ、不安、不要、乙、不便、公式、可能、容易、積極、健康、傍若無人

じゃ活用の扱い

MeCab は「じゃ」(口語コピュラ)の分類が文脈により変動します。Suzume は一貫して助動詞として扱い、後続の「ない」「なかっ」「な」も統一的に分類します:

入力: そうじゃない
MeCab:  そう / じゃ(助詞) / ない(形容詞)
Suzume: そう / じゃ(AUX) / ない(AUX)

て形後の補助動詞

て/で の後の補助動詞「いる」を Auxiliary として分類します:

入力: 食べている
MeCab:  食べ / て / いる(動詞)
Suzume: 食べ / て(AUX) / いる(AUX)

また、動詞・形容詞の後の て/で は助詞ではなく Auxiliary として分類します。

文脈依存の品詞判定

Suzume は曖昧な語に対して文脈を考慮した品詞判定を行います:

そう: コピュラの前では形容詞(そうだ=伝聞)、Auxiliary の後では Auxiliary(しまいそう=様態)、それ以外では副詞。

でも: 疑問詞の後では助詞(何でも)、文・節の境界では接続詞(でも、...)。

いかが: コピュラの前でなければ副詞、コピュラの前では代名詞(いかがですか)。

大変: な の前では形容詞(大変な)、それ以外では副詞(大変良い)。

スラング・現代語

MeCab の辞書には現代スラングが含まれておらず、不正確なトークン化が発生します:

入力: エモい曲
MeCab:  エモ(名詞) / い(不明) / 曲
Suzume: エモい(ADJ) / 曲(NOUN)

Suzume は現代的な形容詞パターン(エモい、キモい、ウザい、ダサい、イタい、エロい)を認識し、活用形(エモかった、エモくない等)も正しく処理します。現代的な動詞パターン(バズる、ググる、パクる)にも対応しています。

助詞の誤分類

MeCab は特定の文脈で助詞を名詞として分類します。Suzume は 30 以上の助詞に対して文脈を考慮した品詞判定を行います:

入力: 行くのは大変
MeCab:  行く / の(名詞,非自立) / は / 大変
Suzume: 行く / の(PARTICLE) / は / 大変

準体助詞の「の」はここでは名詞ではなく助詞として機能しています。Suzume はこのようなケースで助詞として分類します。

カタカナオノマトペ

MeCab はカタカナのオノマトペ(畳語パターン)を名詞として分類します。Suzume は副詞として認識します:

入力: ワクワクする
MeCab:  ワクワク(名詞) / する
Suzume: ワクワク(ADV) / する

オノマトペ+っとパターンも結合されます:

入力: どきっとする
MeCab:  どき / っと / する
Suzume: どきっと(ADV) / する

いいの品詞判定

MeCab は「いい」を動詞(原形: いう)として分類する場合があります。Suzume は後続が動詞でない場合、形容詞として扱います:

入力: いい天気
MeCab:  いい(動詞,いう) / 天気
Suzume: いい(ADJ) / 天気

で+あるコピュラの処理

Suzume はコピュラ「である」パターンに文脈を考慮した品詞判定を行います:

入力: 重要である
Suzume: 重要 / で(AUX,だ) / ある(VERB)

入力: 問題であった
Suzume: 問題 / で(PARTICLE) / あっ(VERB) / た

ないの文脈依存判定

Suzume は「ない/なく/なかっ」が存在形容詞として機能する場合、Auxiliary ではなく Adjective として分類します:

入力: 時間がない
Suzume: 時間 / が / ない(ADJ)    ← 存在の否定

入力: 食べない
Suzume: 食べ / ない(AUX)         ← 否定の助動詞

なら+ないの判定

「なら」の後に「ない/なく/なかっ」が続く場合、Suzume は動詞(なる)として分類します:

入力: ならない
Suzume: なら(VERB,なる) / ない(AUX)

個別単語の品詞の違い

以下の語は MeCab と Suzume で品詞分類が異なります:

MeCabSuzume理由
なら助動詞PARTICLE条件の助詞
違い名詞VERB「違う」の名詞形
推し動詞NOUN現代的な名詞用法
嫌い動詞ADJナ形容詞
大変名詞ADV副詞用法
接頭詞NOUN現代的な用法
びっくり名詞ADV副詞
なるほどADV副詞
たくさんADV副詞
いずれADV副詞
お疲れ様INTJ感動詞
よろしくADV副詞
おめでとう感動詞ADV副詞
じゃん助動詞PARTICLE文末助詞
助動詞PARTICLE関西コピュラ → 助詞
よう助動詞AUX助動詞(様)
時々副詞NOUN名詞用法
遥か副詞ADJナ形容詞
どう副詞ADJナ形容詞
まじ助動詞ADJ形容詞(※カタカナ「マジ」は NOUN)
なんて副詞PARTICLE助詞
っていう助詞DET連体詞
という助詞DET連体詞
まして副詞CONJ接続詞
いわば副詞CONJ接続詞(言わば)
寒し形容詞NOUN古語名詞形
付け接尾NOUN名詞
得(するの前)名詞VERB一段動詞 得る
むしろ副詞OTHERその他
その後ADV副詞
しどろもどろADV副詞
無い/無く助動詞ADJ漢字「ない」形容詞

制約

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

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

Suzume は複合語の境界判定に辞書ではなく文字種特徴量を使用するため、漢字列やカタカナ列として結合された語を個別の単語に分割できません

入力: 東京都庁前
Suzume: 東京都庁前  (1トークン — 内部境界を判定不可)
MeCab:  東京 / 都庁 / 前  (3トークン — 辞書駆動)

回避策: ユーザー辞書を使って、分割が必要な特定の単語を登録できます。

typescript
suzume.loadUserDictionary('東京都庁,NOUN')

文脈依存の品詞分類

Suzume の特徴量ベースモデルは、辞書知識や深い文脈を必要とする品詞を区別できない場合があります。主なパターン:

補助動詞 vs 本動詞

て形の後に続く補助動詞を、本動詞として分類することがあります:

入力: 確認してあります
MeCab:  確認 / し / て / あり(AUX) / ます
Suzume: 確認 / し / て / あり(VERB) / ます

影響範囲: て形の後の ある、おく、みる、いく、くる。Suzume はこれらが補助動詞(AUX)として機能しているか本動詞(VERB)かを常に判定できるわけではありません。

で: コピュラ vs 助詞

助詞「で」には複数の文法的役割があり、Suzume は常に区別できません:

入力: マジで驚いた
MeCab:  マジ / で(AUX=断定) / 驚い / た
Suzume: マジ / で(PARTICLE) / 驚い / た

「マジ」のようなナ形容詞語幹の後の「で」は断定の助動詞です。Suzume はナ形容詞語幹の辞書レベルの知識がないため、助詞として誤分類する場合があります。

ない: 形容詞 vs 助動詞

「ない」は独立した形容詞にも否定の助動詞にもなります:

入力: 仕方ない
MeCab:  仕方 / ない(ADJ)     ← 語彙的形容詞
Suzume: 仕方 / ない(AUX)     ← 否定として誤分類

動詞連用形 vs 名詞

名詞として使われる動詞語幹(名詞化)は曖昧になりえます:

入力: 東京行きは何番線ですか
MeCab:  東京 / 行き(NOUN) / は / ...
Suzume: 東京 / 行き(VERB) / は / ...

なければ条件形

条件形「なければ」の分類が異なります:

入力: 行かなければ
MeCab:  行か / なけれ(AUX) / ば
Suzume: 行か / なけれ(VERB) / ば

品詞の粒度

Suzume の基本品詞(pos)は MeCab よりもシンプルなタグセットです。

MeCabSuzume pos
名詞,一般NOUN
名詞,固有名詞,地域NOUN
名詞,サ変接続NOUN
名詞,副詞可能NOUN
動詞,自立VERB
動詞,非自立VERB

ただし、extendedPos フィールドにより、より細かい品詞サブカテゴリを取得できます:

MeCab サブカテゴリSuzume extendedPos
名詞,固有名詞NounProper
名詞,固有名詞,人名NounProperGiven / NounProperFamily
名詞,数NounNumber
名詞,サ変接続NounVerbal
名詞,形式名詞NounFormal
動詞,連用形VerbRenyokei
動詞,未然形VerbMizenkei
形容詞,連用形AdjRenyokei
形容動詞語幹NaAdjectiveStem
助詞,格助詞ParticleCase
助詞,係助詞ParticleBinding

MeCab の詳細なサブカテゴリが必要な場合は、extendedPos を活用することで多くのケースに対応できます。詳細は API リファレンス の ExtendedPOS セクションを参照してください。

使い分けの指針

ユースケース推奨
ブラウザ / クライアントサイドアプリSuzume — サーバー不要
検索インデックス / タグ抽出Suzume — 複合語結合がむしろ有利
学術研究 / コーパス分析MeCab — 最大精度と品詞の詳細
リアルタイム UI(入力中の処理)Suzume — 高速、ネットワーク遅延なし
正確な複合語の分割MeCab — 辞書駆動の境界判定
未知語・現代語の処理Suzume — 未登録語にも頑健