Руководство по статистике и анализу текста: подсчёт слов, время чтения и плотность ключевых слов

Текст

Зачем нужна статистика текста?

Сценарий Необходимые метрики
SEO-оптимизация Количество слов, плотность ключевых слов, читаемость
Ценообразование контента Количество слов, время чтения
Академические работы Количество слов (китайский и английский отдельно)
Социальные сети Количество символов (лимит 280/2000)
Расчёт стоимости перевода Количество символов/слов

Различия в подсчёте слов между китайским и английским

Главная проблема: в китайском нет пробелов для разделения слов

Английский: Hello World → 2 слова (разделены пробелами)
Китайский: 你好世界 → 4 символа (посимвольный подсчёт) или 2 слова (你好/世界)?

Три метода подсчёта

Метод Алгоритм Результат для "你好World" Применимый сценарий
Количество символов Все символы 7 Лимиты социальных сетей
Количество символов/слов Китайский посимвольно, английский по словам 6 (4 символа + 2 слова) Ценообразование контента, SEO
Количество байт Длина в кодировке UTF-8 10 (4×3+2×1) Место хранения

Реализация на JavaScript

function countText(text: string) {
  // 移除零宽字符
  const clean = text.replace(/[\u200B-\u200D\uFEFF]/g, '');

  // 字符数
  const charCount = clean.replace(/\s/g, '').length;

  // 中文字数
  const chineseChars = (clean.match(/[\u4e00-\u9fff]/g) || []).length;

  // 英文词数
  const englishWords = (clean.match(/[a-zA-Z]+/g) || []).length;

  // 数字组数
  const numbers = (clean.match(/\d+/g) || []).length;

  // 总字/词数
  const wordCount = chineseChars + englishWords + numbers;

  // 字节数(UTF-8)
  const byteCount = new TextEncoder().encode(clean).length;

  // 行数
  const!lineCount = clean.split(/\n/).filter(l => l.trim()).length;

  // 段落数
  const paragraphCount = clean.split(/\n\s*\n/).filter(p => p.trim()).length;

  return {
    charCount,
    wordCount,
    chineseChars,
    englishWords,
    numbers,
    byteCount,
    lineCount,
    paragraphCount,
  };
}

Оценка времени чтения

Формула расчёта

Скорость чтения на китайском: ~500 символов/минуту
Скорость чтения на английском: ~200-250 слов/минуту

Время чтения = Китайские символы / 500 + Английские слова / 225

Реализация

function estimateReadingTime(text: string) {
  const chineseChars = (text.match(/[\u4e00-\u9fff]/g) || []).length;
  const englishWords = (text.match(/[a-zA-Z]+/g) || []).length;

  const minutes = chineseChars / 500 + englishWords / 225;

  if (minutes < 1) return '不到 1 分钟';
  if (minutes < 60) return `约 ${Math.ceil(minutes)} 分钟`;
  const hours = Math.floor(minutes / 60);
  const mins = Math.ceil(minutes % 60);
  return `约 ${hours} 小时 ${mins} 分钟`;
}

Скорость чтения по типу контента

Тип контента Скорость на китайском Скорость на английском
Романы/эссе 500-700 символов/мин 250-300 слов/мин
Техническая документация 300-400 символов/мин 150-200 слов/мин
Юридические документы 200-300 символов/мин 100-150 слов/мин
Социальные сети 600-800 символов/мин 300+ слов/мин

Анализ плотности ключевых слов

Что такое плотность ключевых слов?

Плотность ключевых слов = Количество вхождений ключевого слова / Общее количество слов × 100%

Пример:
Общее количество слов: 500
"前端" встречается 15 раз
Плотность = 15 / 500 × 100% = 3%

Рекомендуемая плотность для SEO

Плотность Оценка
< 1% Слишком низкая, поисковые системы могут не учитывать
1-3% ✅ Оптимальный диапазон
3-5% Несколько высокая, следите за естественностью
> 5% ❌ Переспам, возможны штрафы

Реализация

function analyzeKeywordDensity(text: string, keyword: string) {
  const regex = new RegExp(keyword, 'gi');
  const occurrences = (text.match(regex) || []).length;

  const chineseChars = (text.match(/[\u4e00-\u9fff]/g) || []).length;
  const englishWords = (text.match(/[a-zA-Z]+/g) || []).length;
  const totalWords = chineseChars + englishWords;

  const density = (occurrences / totalWords) * 100;

  return {
    keyword,
    occurrences,
    totalWords,
    density: density.toFixed(2) + '%',
    evaluation: density < 1 ? '过低' : density <= 3 ? '最佳' : density <= 5 ? '偏高' : '堆砌',
  };
}

Оценка читаемости текста

Flesch Reading Ease (английский)

Балл = 206.835 - 1.015 × (Общее количество слов/Общее количество предложений) - 84.6 × (Общее количество слогов/Общее количество слов)

Шкала оценок:
90-100  Очень легко (5-й класс)
60-70   Стандартно (8-9-й класс)
30-50   Довольно сложно (студенты)
0-30    Очень сложно (профессиональный/академический)

Читаемость на китайском

В китайском языке нет понятия слогов, поэтому обычно используется средняя длина предложения:

function chineseReadability(text: string) {
  const sentences = text.split(/[。!?;\n]/).filter(s => s.trim());
  const chineseChars = (text.match(/[\u4e00-\u9fff]/g) || []).length;

  const avgSentenceLength = chineseChars / sentences.length;

  if (avgSentenceLength <= 15) return { score: '易读', level: '大众' };
  if (avgSentenceLength <= 25) return { score: '适中', level: '标准' };
  if (avgSentenceLength <= 40) return { score: '较难', level: '专业' };
  return { score: '难读', level: '学术' };
}

Использование инструмента статистики текста

  1. Откройте Инструмент подсчёта слов
  2. Вставьте или введите текст
  3. Автоматическое отображение: количество символов, количество слов, количество строк, количество абзацев, время чтения
  4. Поддержка смешанной статистики на китайском и английском

Практическая оптимизация SEO-текстов

1. Длина заголовка

// Google отображает около 60 символов (30 китайских символов)
function checkTitle(title: string) {
  const length = title.length;
  return {
    length,
    status: length <= 60 ? '✅' : '❌ 超过 60 字符',
  };
}

2. Длина описания

// Google отображает около 160 символов (80 китайских символов)
function checkDescription(desc: string) {
  const length = desc.length;
  return {
    length,
    status: length <= 160 ? '✅' : '❌ 超过 160 字符',
  };
}

3. Длина основного текста

Тип страницы Рекомендуемое количество слов
Статьи в блоге 1500-3000 слов
Страницы продуктов 300-800 слов
Главная страница 300-500 слов
Руководства 2000+ слов

4. Распределение ключевых слов

✅ Хорошее распределение:
  Заголовок содержит ключевое слово
  Первый абзац содержит ключевое слово
  В тексте естественно встречается 3-5 раз
  Подзаголовки H2/H3 содержат варианты

❌ Плохое распределение:
  Ключевое слово повторяется в каждом абзаце
  Ключевое слово не связано с контекстом
  Используется скрытый текст для переспама

Часто задаваемые вопросы

Почему статистика Word и онлайн-инструментов не совпадает?

Правила «подсчёта слов» в Word могут отличаться от онлайн-инструментов:

  • Word 2019+ считает китайский по «символам»
  • Некоторые инструменты считают китайский по «символам»
  • Рекомендуется использовать один инструмент последовательно, чтобы избежать споров о ценах

Как рассчитать долю комментариев в коде?

function commentRate(code: string, language: string) {
  const totalLines = code.split('\n').length;
  let commentLines = 0;

  if (language === 'javascript') {
    const singleLineComments = (code.match(/\/\/.*/g) || []).length;
    const multiLineComments = (code.match(/\/\*[\s\S]*?\*\//g) || []).length;
    commentLines = singleLineComments + multiLineComments;
  }

  return (commentLines / totalLines * 100).toFixed(1) + '%';
}

Итоги

Статистика текста кажется простой, но таит в себе сложности: смешанный подсчёт китайского и английского, оценка времени чтения и анализ плотности ключевых слов — каждый аспект имеет свои особенности. Освоив эти метрики, вы будете уверены в себе при SEO-оптимизации, ценообразовании контента и расчёте стоимости перевода. Инструмент подсчёта слов от Tools Ku позволяет получить все метрики одним нажатием, чтобы вы могли сосредоточиться на создании контента.

#文本统计#字数统计#阅读时间#文本分析#教程