Skip to the content.

screen shot

ダウンロード・インストール


概要

選択テキストの単語数・文字数を数えるウェブ拡張機能です。

対象のテキストを範囲選択して右クリックし、コンテキストメニューから〈単語を数える〉〈文字を数える〉を選ぶと、テキストに含まれる単語数・文字数が表示されます。

特長1:単語数に関する多くの情報を表示

特長2:文字数に関する多くの情報を表示

※〈文字を数える〉機能を使うにはオプション画面で有効にするか、ショートカットキーを割り当てる必要があります。

特長3:豊富かつ柔軟な機能

やや専門的な特長

ご注意


詳細

共通

ショートカットキーに対応していますか?

対応しています。ただし、初期状態ではキーを割り当てていません。ブラウザーの「拡張機能 → キーボードショートカット」画面(chrome://extensions/shortcuts または edge://extensions/shortcuts)を開き、お好みのキーを設定してください。

なお、ウェブページによってはキー操作が効かない場合があります。

自動計数モードとは何ですか?

テキストの範囲選択操作中、またはフォームへのテキスト入力中(要設定)に、単語数/文字数を自動的に数えて即時表示する機能です。

コンテキストメニューからカウント処理を一度実行するか、メニューバー上の〈字数〉アイコンをクリックすると有効になります。アイコンを再度クリックすると無効に戻ります。ショートカットキーを割り当てることもできます。

ただし、ウェブページによっては機能しない場合があります。

音声読み上げ(スピーチ)とは何ですか?

単語数/文字数を音声で知らせる機能です。音量にご注意ください。

# 選択肢 読み上げるタイミング
1 ショートカットキー 「選択テキストの単語数/文字数を読み上げる」に割り当てたショートカットキーが押されたとき
2 結果表示が妨げられたとき #1に加え、当拡張機能が正常に作動しないPDFビューワーなどの非HTMLページにおいて、コンテキストメニューから「単語/文字を数える」が実行されたとき(ただし可能とは限らない)
3 フォーム入力を除き常に #1,#2に加え、詳細結果を表示するとき。ただし、フォーム入力の自動計数を除く
4 常に #1,#2に加え、詳細結果を表示するとき

空白とは何を指しますか?

半角スペース、全角スペース、タブのほか、ノーブレークスペース( )、N幅スペース( )、M幅スペース( )、狭幅スペース( )といったHTMLによく使われる空白文字、自動改行や合字の制御に用いられる特殊なゼロ幅文字など、合わせて数十種類の空白を認識します。

制御コードは数えますか?

数えません。改行や空白の一種と見なせるものを除く、特殊な制御コードは人間にとって無意味なため、あらかじめ除外します。いずれにしても、ウェブページにそうした制御コードが含まれることは一般的ではありません。

サロゲートペアとは何ですか?

ブラウザー上のユーザープログラム環境であるJavaScriptは、文字をUTF-16として扱います。UTF-16においては、文字は基本的に16ビットで表されますが、一部の文字は32ビット、つまり16ビットの組で表されます。これをサロゲートペアと呼び、適切な扱いが求められます。

下に示す漢字・絵文字はサロゲートペアの例です。当拡張機能はそれぞれ正しく1字と数えますが、一部の拡張機能やウェブアプリケーションでは誤って2字と数えられてしまいます。

𡈽𦨞𩸽😂🙏🌎

結合文字列とは何ですか?

UTF-16を含むUnicodeにおいて一部の文字、日本語なら濁点・半濁点を伴う字は、たとえば「」と1字で表せるほか、「」と「」の合成としても表すことができます。前者を合成済み文字、後者を結合文字列と呼びます。見た目には区別がつかず、現れることが(macOS以外では)まれなため、サロゲートペアと同じく見過ごされやすい要素です。

濁点付きのカナを2字などと数えるのは人間にとって不自然なため、当拡張機能は数える前に結合文字列を合成済み文字にまとめます(NFC正規化)。ただし、合成済み文字の存在しない組み合わせなど、まとめられない結合文字列もあります。

ちなみに、こうした結合は異字体や絵文字の表現にも使われることがあり、合わせて「書記素クラスター」と呼ばれます。

情報収集などに悪用される恐れは?

ありません。悪用の意図のないことはもちろん、当拡張機能には外部と通信するための特別な権限がありません。

当拡張機能はマニフェスト(拡張機能が利用する機能や権限の宣言)適合・作動審査を経て、各ブラウザー公式ウェブストアでのみ提供しています。インストールした拡張機能の権限は、ブラウザーの「拡張機能 →〈字数〉詳細」画面で確認できます。

単語数に関する詳細

文の数え方は?

終止符(半角ピリオド)および終止符に準ずる約物(半角クエスチョンマーク等)+空白、改行コード、テキスト末尾のいずれかに続く、一連の可読文字列を1文と数えます。これらの約物や改行の扱いは、オプション画面で変更することができます。

読了時間の計算方法は?

数えた単語数を「読む速さ」(1分間に読める単語数)で割ります。表示は原則1分単位、1時間以上なら0.1時間単位で四捨五入して表示します(ただし1分未満は常に1分とする)。「読む速さ」は200がデフォルトですが、オプション画面で変更することができます。

可読性とは何ですか?

可読性(リーダビリティー)は、テキストの読みやすさを表す定量的な値です。主に英語を対象とし、単語・文・文字・音節などの数から求めます。可読性の値は通算就学年数(学年)に対応づけられ、読者層への適合性の指標として古くから用いられています。

可読性の測定方法は?

代表的な下記の測定方法を備えており、オプション画面で選ぶことができます。

名称 主用途 作成 計算式 音節
Flesch Reading Ease 全般 1948 得点 206.835 - 1.015 * (単語数 / 文数) - 84.6 * (音節数 ÷ 単語数)
Flesch–Kincaid Grade level 全般 1975 学年 0.39 * (単語数 / 文数) + 11.8 * (音節数 ÷ 単語数) - 15.59
Gunning Fog Index 業務 1952 学年 0.4 * (単語数 / 文数) + 100 * (難読語数 / 単語数)
Automated Readability Index 技術 1967 学年 4.71 * (文字数 / 単語数) + 0.5 * (単語数 / 文数) - 21.43  
Coleman–Liau Index 教育 1975 学年 0.0588 * (文字数 / 単語数 * 100) - 0.296 * (文数 / 単語数 * 100) - 15.8  
SMOG 健康 1969 学年 1.043 * √(難読語数 * 30 / 文数) + 3.1291
Lensear Write 行政 1966 学年 (難読語数 * 3 + 非難読語数) / 文数 / 2 ※答えが10以下なら1を引く
FORCAST 実用 1973 学年 20 - (単音節単語数 * 150 / 単語数 / 10)

文字数に関する詳細

文の数え方は?

句点・句点に準ずる約物の並び・改行コード・テキスト末尾のいずれかに続く、一連の可読文字列を1文と数えます。たとえば“? ”のように、疑問符や感嘆符の後に空白がつく場合も句点と見なします(句点に準ずる約物の並び)。これらの約物や改行の扱いは、オプション画面で変更することができます。

文中に挿入される台詞や注釈のような、カギ括弧や括弧を用いた文の入れ子構造は無視されることにご注意ください。たとえば、“彼は「ノー(いいえ)」と答えた”という文は、まとめて15文字の1文と解釈されます。括弧類は特別扱いされず、他の記号や文字と同様に処理されます。

この規則は、入れ子構造における子に句点がある場合に、直感的な文の数と齟齬を生じやすくなります。たとえば、“彼は「いいえ。違います」と答えた”という文は、“彼は「いいえ。”と“違います」と答えた”の2文と解釈されます。

括弧類を特別扱いする例外もあります。行がまるごとカギ括弧や括弧で囲まれている場合(典型的には会話文)は、その中身だけを取り出して文を数えます。

難読漢字とは何ですか?

オプション画面で選択した下記の水準を超える漢字を「難読漢字」として報告します。たとえば常用漢字を選んだら、常用漢字に含まれない漢字が報告されます。文章に難しい漢字が不必要に使われ過ぎていないかの判断にお役立てください。

おすすめは常用漢字です。常用漢字とは、社会生活一般で多用が認められる日本語の漢字です。義務教育(前期中等教育)で習い、公文書や報道における漢字使用の基準とされますが、目安であって制限ではありません。その他の選択肢は教育用・技術用です。

可読性の測定方法は?

日本語の定量的可読性研究の先駆的論文『日本文の読みやすさの評価式』(1988 Tateisi, Ono, Yamada)に基づきます。辞書や品詞解析が不要で軽量・高速なアルゴリズムです。ただし、ごく限られたコーパスを平均とする偏差値を返すため、精度は相応で、学年に対応づけることもできません。結果は相対的な目安としてご利用ください。

計算式: -0.12 * ls - 1.37 * la + 7.4 * lh - 23.18 * lc - 5.4 * lk - 4.67 * cp + 115.79

ls:文の平均文字数
la:アルファベット連の平均文字数
lh:ひらがな連の平均文字数
lc:漢字連の平均文字数
lk:カタカナ連の平均文字数
cp:句点あたり読点の数
※「連」は同一文字種の連続ブロック

原稿用紙の枚数の計算方法は?

デフォルトは、数えた文字数を400で割る「概算」です。端数は切り上げます。

計算方法はオプション画面で変更できます。用紙の字数×行数を任意に設定できるほか、「マス埋め」計算法を選ぶことができます。n字×m行のマス埋め計算の手順は次のとおり。

  1. n個のマスを用意。そのマスに、選択テキストの文字を1字ずつ、空白も含めて書き込んでいく。
  2. マスがすべて埋まったら、もしくは改行が出現したら、1行分の処理が完了。次の行に移る。
  3. 以上を繰り返し、処理した総行数をmで割る。端数を切り上げ、原稿用紙の枚数とする。

空白や改行の役割が処理に反映されるため、「概算」よりも実際的な枚数になります。ただし、半角文字やゼロ幅空白にも1マスを使い、禁則処理も省くなど、完全ではありません。

ちなみに、日本人が日本語の文章を読む平均速度は、1分間に500字前後といわれています。計算方法を「概算:可読文字数」にし、用紙の字数を500などに設定すれば、1枚=1分として文章を読み終える時間の目安ともなるでしょう。


既知の問題

結果が表示されません・結果の表示が崩れます

次の理由により、当拡張機能が正常に作動しないことがあります。

なお、ネットワーク上のウェブページではなく、お使いのPC上のHTMLファイル(「file://」で示されるローカルファイル)を対象に作動させるには、ブラウザーの「拡張機能 → 〈字数〉詳細」画面 で「ファイルのURLへのアクセスを許可する」を有効にしてください。

フォームの入力単語数/文字数が表示されません

フォームの入力文字数表示機能はHTMLのtextarea要素、またはtype属性がtextのinput要素にのみ対応しています。これらはテキスト入力ボックスを構成する最も一般的なHTML要素ですが、ウェブページによっては別の要素が使われていることがあり、その場合は作動しません。また、ウェブページが読み込まれたあと動的に生成されたフォームに対しても作動しません。

報告された単語数/文字数が不正確です

ウェブページの原理に由来する、やむを得ない仕様です。報告はあくまでも目安と捉え、著しく誤った結果の出る場所でのご利用は諦めてください。

当拡張機能はブラウザーのAPIから返された選択文字列を素直に数えます。一方、ブラウザー上での文字の表示のされ方はHTML・CSS・フォント等に左右され、たとえ存在していてもユーザーにすべて見えているとは限りません。そのほか絵文字が画像として表示されていたりなど、さまざまな理由により、見かけの文字数と数えた文字数とが異なる場合があります。

また単語は、単語の境界を示す伝統的な正規表現「\b」を用いて切り分けています。単語の数え方はこの正規表現の仕様・実装次第であり、一般的な欧文規則や人間の感覚とは必ずしも一致しない場合があります。なおURLとメールアドレスは、分割文字の指定によらず常に1語とみなされます。

さらに、選択範囲が「親と子のフレームをまたぐ」あるいは「フレーム内の本文と入力フォームとをまたぐ」場合には、APIが完全な文字列を返してくれず、これもやむを得ず不正確な結果となることがあります。しかし、こうしたまれな場合に対応するための追加処理で全体のリソース消費を増やしてしまうのはバランスを欠くと判断し、割り切り仕様としています。今日ではフレームは動画・地図・SNSボタン・広告などの第三者リソースの埋め込みに使われることが専らで、問題となることは少ないはずですが、あらかじめご了承ください。

文の数や長さが不正確です

テキスト中のどこからどこまでを一文と見なすかの判定が困難なためです。また、同じテキストでも選択範囲によって文の区切りの解釈が変わることがあります。

単語カウントにおいては、先述のとおり極めて単純なアルゴリズムで文を判定しています。見出しや段落といったHTMLの論理構造を知らず(APIから渡される選択文字列はプレーンテキスト)、高度な構文解析をしているわけでもないため、書き手の意図や誤りをくみ取ることができません。たとえば文の途中に整形のための改行が入っていたり、終止符の後に空白を入れ忘れられていたりすることは、人間にとっては理解の妨げにならなくても、単純なアルゴリズムにとってはそうではありません。

文字カウントにおいては、対象のひとつである日本語の書き方はとりわけ多様であり、約物の使用規則も厳密には統一されておらず、さらに外国語を交ぜて書くことすら可能です。また、文学的・詩的表現においては文とそうでないものとの境界が曖昧です。

文の判定は左様に難しい問題で、高い解析能力を持つ専門のソフトウェアでさえ完全ではないことから、当拡張機能ではいっそ処理効率のほうを優先し、“概算”を示すことにしています。よって、報告される文の数は目安程度とご理解ください。

可読性の値がおかしい・よそでの測定結果と異なります

下記の理由により、当拡張機能の可読性測定の精度には限りがあります。

文字種の比率が不正確です

文字種の比率はそれぞれ四捨五入して表示しています。そのため、合計が100パーセントちょうどにならない場合があります。

音声読み上げされません

「テキストを数える」において、和文のページなのに単語を数えたり、欧文のページなのに文字を数えたりすることがあります

「テキストを数える」において文字を数えるのは、単語単位での分かち書きを原則しない言語、すなわちチベット語・日本語・クメール語・韓国語・ラーオ語・ビルマ語・パーリ語・サンスクリット・タイ語・中国語が対象です(バージョン3.5時点)。これら以外の言語では単語を数えます。

この規則から挙動がそれるとすれば、原因は言語の誤認識です。

ウェブページの言語はブラウザーが認識しますが、HTMLに使用言語が明記されている場合、それを最も重視するようです。その記述がない、あるいは不適切(ウェブサイトを制作・配信している主体の母国語が一律設定されていることが多い)だと誤認識が起こりやすくなります。また、複数の言語がそれぞれ相当量混在するページでは、必然的に誤認識が起こりやすくなります。

Firefox版には「テキストを数える」機能はありません。

オプション設定が反映されません

「単語を分ける文字」や「終止符/句点とみなす文字」に設定した特定の文字が無視されます

当拡張機能は、カウント処理の前に対象文字列をNFCおよび独自の規則で正規化します。その結果、一部の文字が内部的に変化することがあります。「単語を分ける文字」だったはずの文字がこうして変化すると、それを認識して単語を分けることができなくなります。これが特定の文字が無視される理由です。

ただし、このような変化を起こすのは各言語のいわゆる「文字」(語を構成するアルファベット・漢字・かな等)の、それも限られた並びだけです。約物・記号類は変化しません。一般的には約物・記号類以外を終止符として設定する必要はないはずなので、この問題は割り切り仕様としています。

CPUに負荷がかかります

小説がまるごと掲載されているウェブページで使用するなど、対象のテキスト量によってはCPUに負荷がかかることがあります。今日の標準的なPCにおいては微々たる程度ですが、性能が著しく限られた環境下や、電力消費をわずかでも減らしたい場合は、オプション画面で次の設定をお試しください。

これでもまだ負荷が重い、不可視コード判定や正規化すら不要、精度や機能性を犠牲にしてとことん軽い処理を求める、という向きには残念ながら当拡張機能は適していません。よりシンプルな他の文字数カウント拡張機能をご利用ください。

Google Docs で作動しません

技術的な理由です。

Google Docs は、テキスト編集領域をCanvas要素とし、文字列やUI操作を独自に処理・描画している高度なウェブアプリケーションです。当拡張機能が利用しているDOM上のテキストノードおよびその選択処理とは、テキストの扱いがまるで異なります(2022年現在)。これが Google Docs で当拡張機能が作動しない理由です。

他の同様のウェブアプリケーションや、より小規模であってもJavaScriptで制御された独自のテキスト領域(SNSの投稿画面や、Wikiなどのリッチテキスト編集画面に多い)に対しても、当拡張機能は正常に作動しないことがあります。

愛用のブラウザーに対応していません

開発作業に割くことのできる時間や資源が限られていることから、当拡張機能は原則として次の条件を満たすウェブ拡張機能プラットフォームのみを対象としています。

  1. 普及率の高いPC用モダンブラウザー最新版
  2. Manifest V3と最新のAPIに対応しており、コード互換性が高い
  3. 特殊な開発環境を要さず、ほぼ無料で配布できる

Safari は3に当てはまらないため、今のところ対応する予定はありません。


改版履歴

不具合修正・UI改善などの軽微な改版では、バージョンの3つめの位が上がります(例:「1.0.0」→「1.0.1」)。