RAG・検索基盤

MeCabとは|1秒あたり1229万字、辞書の読み込みは2.2ミリ秒

MeCabとは何かどれくらい速いのか辞書を変えると何が変わるのか

日本語を語に切る処理を、大量の文書に対して行う場面があります。速さがそのまま取り込みの時間になります

実際に入れて測ったところ、1秒あたり1229万字でした。辞書の読み込みも2.2ミリ秒で終わります。

この記事の要点

  • 1秒あたり1229万字(IPADIC)
  • 辞書の読み込みは2.2ミリ秒
  • 辞書を替えると語の種類が110種と109種
  • 出力の形で文字数が30字と306字

1秒あたり1229万字、辞書の読み込みは2.2ミリ秒

実際に入れて処理の量を測りました。取り込みの時間を見積もれる速さです。

MeCabがどれくらいの量を扱えるのかを、実際に走らせて測りました。使ったのは社内規程を模した文書12件・383文字です。

同じ文書を2000回繰り返し解析して、かかった時間から1秒あたりの文字数を出しました。辞書の読み込みは測る前に済ませています

python
for label, tg in DICTS:
    tg.parse('')  # 初回の読み込みを外に出す
    n = 2000
    t0 = time.perf_counter()
    for _ in range(n):
        tg.parse(text)
    el = time.perf_counter() - t0
text
1回あたり 383文字の文書を、繰り返し解析する

辞書          回数    かかった時間  1秒あたりの文字数
IPADIC         2000回        62.3ミリ秒      12,298,207字
UniDic         2000回        78.9ミリ秒       9,708,811字

辞書の読み込みにかかる時間(1回目の解析まで)
  IPADIC         2.2ミリ秒
  UniDic         2.0ミリ秒

上の表を見てください。1秒あたり1229万字でした。公式ページも、平均的に他の解析器より高速に動作するとしています。

取り込みの時間に直すと

この速さを使うと見積もりが立ちます。1000万字の文書なら、解析そのものは1秒ほどです。

実際の取り込みでは読み込みや索引への書き込みが加わります。解析の部分は、取り込み全体のなかで無視できる大きさになります。

起動のときも速い

辞書の読み込みは2.2ミリ秒で終わりました。処理のたびに起動する構成でも負担になりません。

同じ計測台で測ったKuromojiは176.4ミリ秒でした。起動を繰り返す使い方では、この差が積み上がります

辞書を替えると2割ほど遅くなる。読み込みはどちらも速い。

単位: 万字IPADIC1229.8万字UniDic970.9万字−21%383文字の文書を2000回解析した実測。辞書の読み込みは2.2ミリ秒と2.0ミリ秒。
図1 ── 1秒あたりに解析できる文字数
出典MeCab 公式ページ2026-08-18 確認
平均的にChaSen, Juman, KAKASIより高速に動作します。
原文MeCab 公式ページ この内容の有効期限2027-02-18

MeCabとは何をする解析器なのか

日本語を語に切って品詞を付ける解析器です。辞書を外から差し替えられる作りになっています。

MeCabは、日本語を語に切って品詞を付ける解析器です。公式ページによれば、大学と研究所を通じて開発されたものです。

辞書を外に出している

作りの方針がはっきりしています。公式ページは言語・辞書・コーパスに依存しない汎用的な設計を基本方針としているとしています。

つまり辞書は差し替える前提です。前の節の計測でも、2種類の辞書を切り替えて動かしました。

辞書を替えると何が変わるか

text
辞書              語の総数  語の種類
IPADIC               246個     110種
UniDic               245個     109種

両方の辞書で語の集合を作り、どれだけ重なるか
  IPADIC だけに出る語: 4種  例: 仮・払・超・過分
  UniDic だけに出る語: 3種  例: 仮払・分・超過
  両方に出る語: 106種

違いは小さく見えますが、中身が重要です。「仮払」はIPADICでは仮と払に割れ、UniDicでは1語のままでした。

「超過分」はさらに分かれます。IPADICは超と過分に切りました。UniDicは超過と分です。語として自然なのは後者です。

どちらを選ぶか

この計測では106種が共通でした。大半は同じで、差が出るのは一部です。

選ぶときは、自社でよく使う語を実際に切って比べるのがいちばん確実です。全体の語数を比べても判断できません。

余談 この計測での注意

使ったのはPythonから呼び出す形です。本体の依存には入れていません。辞書はどちらも軽量な配布物を使っており、完全版とは収録語彙が違います。分割の単位そのものを選べる解析器はSudachiの記事で扱っています。

出典MeCab 公式ページ2026-08-18 確認
言語, 辞書,コーパスに依存しない汎用的な設計を基本方針としています。
原文MeCab 公式ページ この内容の有効期限2027-02-18

出力の形で、渡す量が10分の1になる

MeCabは出力の形を切り替えられます。要らない項目を落とすと、後段に渡す量が大きく減ります。

MeCabの出力は用途に応じて形を変えられます。実際に切り替えて、出てくる量を測りました。

text
  【区切るだけ】
    宿泊 費 の 上限 は 1 泊 12000 円 と する 。

  【読みだけ】
    シュクハクヒノジョウゲンハ1ハク12000エントスル。

  【既定の形】
    宿泊	名詞,サ変接続,*,*,*,*,宿泊,シュクハク,シュクハク
    費	名詞,接尾,一般,*,*,*,費,ヒ,ヒ

出力の文字数の違い
  区切るだけ          30字
  読みだけ           27字
  既定の形          306字

同じ一文でも、区切るだけなら30字、すべて出すと306字です。10倍の差があります。

何が要るかで決める

索引を作るだけなら、区切った結果だけで十分です。品詞で絞りたいなら品詞が要ります。読みでの検索を作るなら読みも足してください。

公式ページも、利用者がこれらの出力の形を自由に定義できるとしています。決まった形に合わせる必要はありません。

運用で決めること

  1. どの辞書を使うか。切れ方が変わるので、途中で替えない
  2. どの項目を出すか。要らない項目は落とす
  3. 辞書を替えたら索引を作り直す。切れ方が変わるため
  4. 解析器の版も記録する。版が変われば結果も変わりうる

3番目を忘れると、索引と検索で語がそろわなくなります。作り直しの負荷については増分インデックスの記事を参照してください。

自社の語を足す

辞書には自社の語を足せます。公式ページも、辞書を作り直すための道具を用意しているとしています。

足すかどうかは、その語で実際に検索されるかで決めてください。割れていても困らない語のほうが多いです。

要る項目だけ出せば、後段に渡す量が減る。

単位: 字既定の形306字区切るだけ30字読みだけ27字「宿泊費の上限は1泊12000円とする。」を解析した実測。既定の形は品詞や読みをすべて含む。
図2 ── 同じ一文を解析したときの出力の文字数
出典MeCab 公式ページ2026-08-18 確認
ユーザがこれらのフォーマットを自由に定義することが可能です。
原文MeCab 公式ページ この内容の有効期限2027-02-18

よくある質問

どれくらい速いのですか
この計測では1秒あたり1229万字でした。383文字の文書を2000回解析して62.3ミリ秒です。
辞書を変えると結果は変わりますか
変わります。この計測では語の種類が110種と109種で、7語だけ切れ方が違いました。
出力は選べますか
選べます。区切るだけなら30字、すべての情報を出すと306字でした。
どういうときに向きますか
大量の文書を取り込む場面です。処理そのものが速いので、取り込みの時間を短くできます。

まとめ

  • 日本語の形態素解析器
  • 1秒あたり1229万字
  • 辞書を替えると切れ方が一部変わる
  • 出力の形で渡す量を10分の1にできる

今日から始められること

  1. 取り込む文書の総文字数を数える
  2. 1秒あたりの処理量から、取り込みにかかる時間を見積もる
  3. 自社の語を辞書ごとに切って、切れ方を比べる
  4. 必要な項目だけを出す形に絞る

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

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

出品の仕組みを見る