ホーム › Blog › 単語数カウントの仕組み
テキスト・文書

Wordとオンライン文字数カウントで単語数が異なる原因と計算ロジック

公開日:2026年10月17日 • 更新日:2026年10月17日 • 執筆:GoToolstack エンジニアリングチーム • GoToolstack 文字数カウントエンジンにて実機検証済み
単語数・文字数を瞬時にカウント: 単語数、文字数、文数、段落数、推定読了時間をブラウザ完結でリアルタイム分析。
文字数カウントを開く
目次
  1. 直接診断:なぜツールによって文字数や単語数が異なるのか
  2. 4つの基本指標:単語数、文字数(空白込み/空白なし)、段落数
  3. GoToolstack 文字数カウントエンジンの実コード構造
  4. Microsoft Word とオンラインツールの仕様比較
  5. 読了時間とスピーチ時間の算出基準
  6. スペースのない言語:日本語・中国語(CJK)利用時の重要注意点
  7. GoToolstack テキスト便利ツール
  8. 技術リファレンスおよび公式標準規格

1. 直接診断:なぜツールによって文字数や単語数が異なるのか

同じテキストを Microsoft Word、Google ドキュメント、オンライン文字数カウントツールに貼り付けると、結果が一致しないことが頻繁にあります。これはソフトウェアの不具合ではなく、各テキストエンジンが採用しているトークン分割アルゴリズムや文字境界ルールの違いによるものです。

カウントの差異は主に以下の5つの技術的要因から生じます:

  • ハイフン連語の扱い: state-of-the-art を1単語とみなすか、4単語とみなすか。
  • アポストロフィと短縮形: don't や it's を1語とするか分割するか。
  • ダッシュとハイフン: 通常のハイフン(-)とエムダッシュ(— / –)の認識差異。
  • 絵文字とUTF-16長: 1つの絵文字を1文字と数えるか、2つのUTF-16コード単位と数えるか。
  • 分かち書きのない言語(CJK): 単語間にスペースを入れない日本語や中国語における境界認識。

2. 4つの基本指標:単語数、文字数(空白込み/空白なし)、段落数

ツールを比較する際は、以下の4つの指標を正確に区別してください:

指標 計測対象 技術的定義
単語数 (Words) 語彙トークン 空白や記号で区切られたUnicode文字・数値の連続列。
文字数 (空白込み) 総バッファサイズ スペース、タブ、改行、記号を含むすべてのコード単位総数。
文字数 (空白なし) 可視文字の密度 あらゆる空白文字を除外した実質文字長(原稿用紙換算などに適合)。
段落数 構造ブロック 改行文字(\n+)で区切られた空でない文章ブロックの数。

3. GoToolstack 文字数カウントエンジンの実コード構造

GoToolstack のクライアント側エンジンは以下のJavaScript正規表現で解析を行います:

const rawWords = v.match(/[\p{L}\p{N}]+(?:['’\-][\p{L}\p{N}]+)*/gu) || [];
const words = rawWords.length;
const chars = v.length;
const charsns = v.replace(/\s/g, '').length;
const sentences = (v.match(/[.!?]+(\s|$)/g) || []).length;
const paras = v.trim() === '' ? 0 : v.split(/\n+/).filter(p => p.trim().length > 0).length;

このエンジンの具体的な挙動:

  • ハイフン連語: (?:['’\-][\p{L}\p{N}]+)* により、state-of-the-art は 1単語 として正確に認識されます。
  • アポストロフィ: 直アポストロフィ(')および記号アポストロフィ(’)を含む英単語は 1単語 として維持されます。
  • 長ダッシュ(Em-dash): ダッシュ(—)は文字グループに含まれないため、decision—making は 2単語 に分割されます。
  • 絵文字とUTF-16長: v.length はサロゲートペアを数えるため、絵文字 🚀 は 2文字、複合家族絵文字は 11コード単位 として計算されます。

4. Microsoft Word とオンラインツールの仕様比較

Microsoft Word(Microsoft Word 공식 문서 기준)::

Microsoft Wordとオンライン文字数カウントにおける単語分割アルゴリズムの比較
図1:ハイフン複合語、記号付き数値、スペースのない東アジア言語(CJK)の単語分割の違い
  • Word はハイフンで繋がれた語句を標準で 1単語 として扱います。
  • 脚注やテキストボックスを含めるかどうかは、「文字カウント」ダイアログのテキストボックス、脚注、文末脚注を含める設定に連動します。
  • スラッシュを含む語句(yes/no)は言語辞書設定により分割判定が変わります。

5. 読了時間とスピーチ時間の算出基準

表示される所要時間は絶対値ではなく、一般的な読書速度に基づく推計値です:

  • 黙読時間: GoToolstack では 毎分200単語(WPM) を基準に算出(Math.round(words / 200))。学術調査(Brysbaert, 2019)では一般文書で約238 WPM、専門書では150〜180 WPM程度に低下します。
  • スピーチ発話時間: 毎分 130単語(Math.round(words / 130))を想定しており、プレゼンテーションの標準速度に適合します。

6. スペースのない言語:日本語・中国語(CJK)利用時の重要注意点

日本語や中国語では単語間にスペースを挿入しないため(例:日本語の文章を計測する)、西欧言語向け分詞エンジンでは文全体が 1つの単語 として認識されてしまいます。

したがって、日本語テキストをカウントする際は「単語数」ではなく、文字数(空白なし)(charsns)を正式な基準としてご利用ください。

7. GoToolstack テキスト便利ツール

サーバーへのテキスト送信ゼロ、ブラウザ完結で安全に作業できます:

技術リファレンスおよび公式標準規格

  • Microsoft Support: Microsoft Word での文字数・単語数のカウント公式サポート(デスクトップ、Web、Macおよび脚注オプション)。
  • Brysbaert, M. (2019): 私たちは1分間に何単語読んでいるか?読書速度のメタ分析と体系的レビュー(Journal of Memory and Language)。
  • Unicode Standard Annex #29: Unicode テキストセグメンテーション(単語境界、書記素クラスタ、文境界仕様)。