ツール
ガイド

出現頻度解析

テキスト

テキストの単語と文字 n-gram の出現頻度を集計します。CJK は Intl.Segmenter、ラテン語は Unicode 文字または空白で分割。Top-N 表、構成比、CSV 書き出しに対応。

100% クライアントサイド バックエンドなし

リモート URL の取得は行いません。JSON を直接貼り付けてください。

入力
出力
出現頻度を解析するテキストを入力してください。
このページの内容

出現頻度解析ツールとは?#

出現頻度解析ツールは、テキスト本体を読み込み、各トークンが何回現れるかを数え、ランキングします。これは SEO のキーワード密度チェック、検索インデックスのストップワード発見、語学学習の語彙規模推定、そして本格的なテキストエディタの「最頻語」パネルの背後にあるツールです。手で単語を数えると間違えます。ケース、句読点、CJK のセグメンテーションが絡むと直感は破綻します。

難しいのはトークンを何とみなすかです。本ツールは 4 つのトークン化モードを提供します。正解はテキストに依存するためです。

  • 空白で分割 — あらゆる空白で分割。言語非依存。Hello, と hello はカンマと大文字のため別トークンとして扱います。
  • 単語(文字) — Unicode 文字の最長連続(\p{L}+)。数字と句読点を落とすため、Hello, は Hello になります。ラテン文字散文の正しいデフォルトです。
  • CJK(Intl.Segmenter) — 中国語/日本語テキストの適切な言語セグメンテーションのため、ブラウザの Intl.Segmenter を単語粒度で使います(我爱北京 は文字ごとではなく実際の単語境界で分割)。セグメンタを持たないブラウザでは漢字ごとのカウントにフォールバックし、その旨を警告します。
  • 文字 n-gram — 空白を畳んだストリーム上のサイズ 2〜5 の文字 n-gram。繰り返しパターンやタイプミスクラスタの分析用。

すべてのカウント処理はローカルで走ります。1 メガバイト超の入力ではバックグラウンドワーカーに移るため、ページは応答性を保ちます。

使い方#

  1. ツールバーでモードを選びます。空白で分割、単語(文字)、CJK(Intl.Segmenter)、文字 n-gram のいずれかです。
  2. Top N(デフォルト 20、最大 1000)を設定します。表示されるランキング行はその数だけですが、テーブル下の集計は常にすべてのトークンを反映します。
  3. n-gram を選んだ場合はサイズセレクタ(2、3、4、5)が現れるので、gram 長を選びます。
  4. 大文字・小文字を区別しない(デフォルトオン)にチェックを入れるか外します。オンのとき The と the は 1 つのカウントにマージされます。
  5. 左ペインにテキストを貼り付けるか、サンプルで組み込みの文章を読み込みます。
  6. 右ペインを読みます。集計(総トークン数、ユニーク数)と、トークン/回数/構成比のランキングテーブル。テーブルにはコピーを、token,count,share ファイル(任意の表計算で開ける)には CSV をダウンロードを使います。

CJK モードがブラウザの Intl.Segmenter 欠如でフォールバックした場合、テーブルの下に小さな注記が現れ、セグメンテーションが言語的ではなく文字ごとであることを知らせます。

主な機能#

  • 4 つのトークン化モード。 生のカウントには空白で分割、きれいな単語カウントには単語(文字)、中国語/日本語の適切なセグメンテーションには CJK、パターン発見には n-gram — 4 つのテキストのうち 3 つに間違う単一モードではなく、4 つを提供します。
  • 本物の CJK セグメンテーション。 ブラウザの組み込み言語セグメンタである granularity: "word" の Intl.Segmenter を使うため、我爱北京天安门 は文字ごとに切り刻まれるのではなく、単語境界で分割されます。
  • 正直なフォールバック。 セグメンタが利用不能な場合、ツールは黙って異なる数を出すのではなく、漢字ごとのカウントに縮退し、その旨を告げます。
  • 回数だけでなく構成比。 すべての行に全トークンに対するパーセンテージが示され、全文から計算されます — そのため 1 万語の文書の Top-20 スライスでも意味のあるパーセンテージを報告します。
  • CSV 書き出し。 1 クリックで token,count,share ファイルをダウンロードし、表計算やグラフに渡せます。
  • 決定論的順序。 同順位はアルファベット順(トークン昇順)で解消されるため、同一入力への再実行はブラウザやエンジンをまたいで同一出力になります。
  • 重入力ワーカー。 約 1 MB 超の入力はバックグラウンドワーカーに移るため、メインスレッドとページの残りが応答性を保ちます。
  • ローカルかつ安全。 トークンは textContent のみで描画され — ユーザー制御のテキストがテーブルセルから脱出することはありません。

実例#

この短い行を入力に貼り付け、モード = 空白で分割、大文字・小文字を区別しないオンにします。

the quick brown fox the fox

集計は総トークン 6、ユニーク 4を報告します。ランキングテーブルは次の通り。

トークン回数構成比
fox233.33%
the233.33%
brown116.67%
quick116.67%

2 つ気をつけるべき点があります。第一に、fox は the と同じ回数なのに上位に来ます。同順位をアルファベット順で解消するためです。第二に、構成比は 4 トークンすべてで足して 100% になります — パーセンテージは表示行だけでなく全トークン合計から計算されるため、Top N が長い裾を隠す場合でも意味を保ちます。

次に同じテキスト(空白を畳んだもの)でモードを n-gram、サイズ 2 に切り替えると、解析器は th、he、e 、 q … のようなバイグラムを生成し、どの文字ペアが繰り返すかを見られます。これは重複接頭辞やスタックしたキーボードを探す方法です。

よくある質問#

通常の英語テキストにはどのモードを使うべきですか?#

単語(文字)がラテン文字散文の正しいデフォルトです。句読点と数字を剥がすため、word, word. word はすべて同じトークンとしてカウントされ、きれいな語彙カウントが得られます。句読点自体が意味を持つ場合(例えばログの生の空白区切りフィールドを数える場合)にのみ空白で分割を使います。

CJK モードは中国語を実際にどう分割しますか?#

ブラウザの Intl.Segmenter を granularity: "word" で呼び出します。これは中国語の単語がどこで始まり終わるかを知る本物の言語セグメンタです。そのため 我爱北京天安门 は 5 つの別々の文字ではなく実際の単語に分割されます。ブラウザが Intl.Segmenter をサポートしない場合、ツールは文字ごとのカウントにフォールバックして注記を示します — 数値は密度比較にはまだ使えますが、言語的には精度が落ちます。

n-gram モードは何のためですか?#

n-gram は繰り返す部分文字列を明らかにします。長いテキストの 2-gram パスは、どの文字や文字ペアが支配的かを示します。3-gram や 4-gram パスは、繰り返す接頭辞、一般的な形態素、タイプミスクラスタを表面化させます。これはキーワード詰め込み監査、暗号解析、オートコンプリートランキングの背後にある標準技術です。

なぜパーセンテージは表示された Top N ではなく全トークンから計算されるのですか?#

パーセンテージは実際の合計に対してのみ意味を持つためです。5000 語のエッセイの Top 10 語を尋ねたなら、各語の構成比は表示された 10 語の構成比ではなく、エッセイ全体に対するその語の割合を反映すべきです。全トークン合計で比を計算することで、テーブルが切り詰められても数値が正直に保たれます。

テキストはどこかにアップロードされますか?#

いいえ。トークン化、カウント、CSV 生成はすべてブラウザ内で走ります。大きな入力はバックグラウンドのワーカースレッドに移りますが、そのスレッドもこのページの一部であり — サーバーに送られるものはありません。