Уникальное количество слов, количество предложений, количество абзацев, время чтения и т. д.

В этой статье мы узнаем, как рассчитать различные строковые метрики с помощью Javascript. Например, techwritingtools.com показывает разные показатели слов, символов и предложений в строке состояния.

Эти показатели легко рассчитать, и в этой статье мы узнаем, как их рассчитать, используя простые функции Javascript.

Считать метрики

Расчет количества строк

Мы можем точно рассчитать количество строк, подсчитав количество \n в тексте.

const lineCount = (text) => {
    var nLines = 0;
    for (var i = 0, n = text.length; i < n; ++i) {
        if (text[i] === '\n') {
            ++nLines;
        }
    }
    return nLines;
}

Подсчет количества слов

Мы можем подсчитать количество слов, разделив текст с помощью регулярного выражения /\s+/.

const wordCount = (text) => {
    const words = text.trim().split(/\s+/).length;
    return words
}

Подсчет количества уникальных слов

Мы можем вычислить уникальные слова в тексте, используя следующий метод.

const uniqueWordCount = (text) => {
    let wordSet = new Set(text.split(' '));
    return wordSet.size;
}

Подсчет количества символов

Мы можем подсчитать количество слов, просто получив длину текста.

const characterCount = (text) => {
    return text.length
}

Подсчет количества абзацев

Мы можем рассчитать количество абзацев в тексте, используя следующий метод.

const paragraphCount = (text) => {
    return text.replace(/\n$/gm, '').split(/\n/).length;
}

Показатели предложения

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

var sentences = text.match(/\(?[^\.\?\!]+[\.!\?]\)?/g)

Максимальная/минимальная/средняя длина предложения

Этот метод возвращает количество предложений вместе с максимальной, минимальной и средней длиной предложения.

const sentenceMetrics = (text) => {
    var sentences = text.match(/\(?[^\.\?\!]+[\.!\?]\)?/g)
    if (!sentences) {
        return {
            "count": 0,
            "avg": 0,
            "min": 0,
            "max": 0
        };
    }

    var sentenceCount = 0;
    var avgSentenceLength = 0;
    var minSentenceLength = Number.MAX_SAFE_INTEGER;
    var maxSentenceLength = 0;

    sentenceCount = sentences.length;

    for (var i = 0; i < sentenceCount; i++) {
        var wcount = wordCount(sentences[i]);
        avgSentenceLength += wcount;
        minSentenceLength = Math.min(minSentenceLength, wcount);
        maxSentenceLength = Math.max(maxSentenceLength, wcount);
    }

    avgSentenceLength = avgSentenceLength / sentenceCount;

    return {
        "count": sentenceCount,
        "avg": avgSentenceLength.toFixed(1),
        "min": minSentenceLength,
        "max": maxSentenceLength
    };
}

Обратите внимание, что метод использует метод wordCount, который мы определили ранее.

Расчет времени чтения

Мы можем рассчитать время чтения текста, используя следующий метод. Предполагается, что читатель читает 225 слова в минуту. Многочисленные исследования предложили это число.

const readingTime = (text) => {
    const wpm = 225;
    const words = text.trim().split(/\s+/).length;
    const time = Math.ceil(words / wpm);
    return time === 1 ? "1 min" : `${time} mins`;
}

Получайте удовольствие, используя методы в своем проекте или на веб-сайте. Кроме того, подумайте о том, чтобы попробовать инструменты технического письма. Он предлагает бесплатный редактор разметки с рядом инструментов, облегчающих написание технических писателей.



Подумайте о том, чтобы оформить членство на Medium, чтобы продолжать читать все мои премиальные статьи вместе с тысячами других историй.



Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord.

Повысьте узнаваемость и признание вашего технического стартапа с помощью Circuit.