読みやすさの統計
文章の読みやすさを示します。Flesch Reading Ease スコア、Flesch–Kincaid の学年レベル、推定読了時間と、その計算に使う単語数、文数、音節数を表示します。すべてブラウザー内で計算し、サービスやキーは不要です。

有効にする
この機能は readabilitystats.js プラグインで提供されます(plugins/all_plugins.js にも含まれます)。読み込むと有効になります。ダイアログはコマンド readability で開きます。ツールバーボタンはないため、独自のボタンから呼び出すか、スラッシュコマンドのプラグインを読み込み、「/」メニューで「/readability」と入力します。
<link rel="stylesheet" href="/richtexteditor/rte_theme_default.css">
<script src="/richtexteditor/rte.js"></script>
<script src="/richtexteditor/plugins/readabilitystats.js"></script>
<div id="editor"><p>The station opened in 1911 and served the valley for sixty years.</p></div>
<button type="button" onclick="editor.execCommand('readability')">Readability</button>
<script>
var editor = new RichTextEditor("#editor", {
readabilityWordsPerMinute: 200
});
</script>
オプション
| オプション | 既定値 | 動作 |
|---|---|---|
readabilityStats | true | false にすると無効になり、コマンドもメソッドもなくなります。 |
readabilityWordsPerMinute | 200 | 読了時間の推定に使う読書速度です。 |
スクリプトから使う
editor.getReadabilityStats() は現在の文書を計測します。文字列を渡すと、その文字列を計測します。画像の記事では次の値を返しました。
{
words: 130, sentences: 10, syllables: 174, characters: 605,
avgWordsPerSentence: 13, avgSyllablesPerWord: 1.34,
fleschReadingEase: 80.4, fleschKincaidGrade: 5.3,
readingTimeMinutes: 0.7, readingTimeText: "39 sec",
easeLabel: "Easy (6th grade)"
}
エディターの隣にスコアを表示したり、公開前に注意を促したりできます。文書は変更しません。editor.countSyllables(word) は、1 単語の推定音節数を返します。
数値の計算方法
- 単語は空白で分割します。文は
.、!、?で終わるまとまりです。これらの記号がないテキストは 1 文として数えます。文字数には空白を含めません。 - Reading Ease = 206.835 − 1.015 ×(1 文あたりの単語数)− 84.6 ×(1 単語あたりの音節数)です。Grade = 0.39 ×(1 文あたりの単語数)+ 11.8 ×(1 単語あたりの音節数)− 15.59 で、下限は 0 です。
- ラベルは通常の Flesch の区分に従います。90 以上は「Very easy (5th grade)」、80 は「Easy (6th grade)」、70 は「Fairly easy (7th grade)」、60 は「Standard (8–9th grade)」、50 は「Fairly difficult (10–12th grade)」、30 は「Difficult (college)」、30 未満は「Very difficult (college graduate)」です。
注意点
- 計算式と音節カウンターは英語用です。カウンターは a–z の文字しか調べないため、ほかの言語やアクセント付きの単語では、スコアはほとんど意味を持ちません。
- 音節は母音のまとまりから推定するため、一部の単語では 1 つずれます(「timetables」は 4 と数えます)。
- 終止符のない見出しやリスト項目は、次の文の一部として数えます。画像の記事には見出しと 10 文があり、結果は 10 です。
- ダイアログは分単位の時間を小数第 1 位に丸めてから秒に変換するため、
readingTimeTextと異なる場合があります。同じ文章でも、ダイアログでは 42 秒、メソッドでは「39 sec」になります。 - ダイアログのラベルは言語キー(
text_readabilitytitle、text_rd_ease、text_rd_grade、その他のtext_rd_*)から取得します。メソッドが返すeaseLabelとreadingTimeTextは常に英語です。
関連情報:単語数のデモ、文章作成支援のデモ、execCommand。