任意のテキストの読了時間を推定
任意のテキストを読むのにかかる時間を推定します。読了時間計算の背後にあるアルゴリズム、異なるコンテキストでの平均読書速度、単語数から分数への変換方法を学びます。
Content Analysis
詳細な説明
読了時間の推定
読了時間の推定は、単語数をおおよその所要時間に変換します。ブログ(Mediumが「X min read」ラベルを普及させました)やコンテンツプラットフォームでよく使われる機能です。
標準的な計算式
基本的な計算は総単語数を平均読書速度で割ります:
function estimateReadingTime(text) {
const words = text.trim().split(/\s+/).length;
const wordsPerMinute = 238; // 平均的な成人の読書速度
const minutes = words / wordsPerMinute;
return Math.ceil(minutes);
}
成人の平均読書速度として一般的に引用されるのは200-250 WPM(words per minute)です。ほとんどの実装では238 WPM(Brysbaert, 2019の研究に基づく)を使用するか、簡潔さのために200 WPMに丸めます。
読書速度に影響する要因
読書速度はいくつかの要因によって大きく異なります:
| 要因 | WPM範囲 | 備考 |
|---|---|---|
| 平均的な成人(英語) | 200-250 | 非技術的テキストの黙読 |
| 技術的コンテンツ | 150-200 | コードドキュメント、学術論文 |
| 軽い小説 | 250-300 | 馴染みのある語彙、シンプルな構造 |
| スキミング | 400-700 | 重要情報のスキャン |
| 速読 | 600-1000+ | 訓練されたテクニック、理解度は低下 |
| 子供(10-12歳) | 100-150 | まだ読書の流暢さを発達中 |
コンテンツタイプに応じた調整
より賢い読了時間推定器はコンテンツの複雑さを考慮します:
function smartReadingTime(text, options = {}) {
const words = text.trim().split(/\s+/).length;
const codeBlocks = (text.match(/```[\s\S]*?```/g) || []).length;
const images = options.imageCount || 0;
let baseMinutes = words / 238;
baseMinutes += codeBlocks * 0.5; // コードブロックごとに30秒
baseMinutes += images * 0.2; // 画像ごとに12秒
return Math.ceil(baseMinutes);
}
コードブロック(読者はコードを解析するために遅くなる)と画像(研究によると読者は画像ごとに約12秒費やす)の追加時間を加算します。
表示フォーマット
一般的な表示パターン:
- 「5 min read」 — 切り上げ、Mediumで使用
- 「4-6 min read」 — 範囲形式、不確実性を表示
- 「Less than 1 min read」 — 非常に短いコンテンツ向け
読了時間が重要な理由
読了時間ラベルを追加するとエンゲージメントが向上します。ユーザーは時間的なコミットメントを事前に知ることで、読み始める可能性が高くなります。Mediumは、7分の読了時間の記事が最もエンゲージメントが高かったと報告しています。
ユースケース
ブログプラットフォームは読者の期待を設定しエンゲージメントを高めるために読了時間を表示します。コンテンツチームは記事の長さを計画し(7-10分がエンゲージメントに最適)、メールニュースレターのライターは購読者の注意を尊重するために読了時間を推定し、ドキュメントチームは開発者がチュートリアルの時間投資を見積もるのを助けます。