Руководство по статистике и анализу текста: подсчёт слов, время чтения и плотность ключевых слов
Текст
Зачем нужна статистика текста?
| Сценарий | Необходимые метрики |
|---|---|
| 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: '学术' };
}
Использование инструмента статистики текста
- Откройте Инструмент подсчёта слов
- Вставьте или введите текст
- Автоматическое отображение: количество символов, количество слов, количество строк, количество абзацев, время чтения
- Поддержка смешанной статистики на китайском и английском
Практическая оптимизация 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 позволяет получить все метрики одним нажатием, чтобы вы могли сосредоточиться на создании контента.
#文本统计#字数统计#阅读时间#文本分析#教程