UNPKG

word-frequency-counter

Version:
42 lines (41 loc) 1.7 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.allFrequencyCount = exports.singleFrequencyCount = void 0; const config_1 = require("../../config"); const sentenceComponents_1 = require("../../sentenceComponents/sentenceComponents"); const wordCount_1 = require("../wordCount/wordCount"); /** * Find frequency of a given word in a block of text. * * @param {string} text - The text to parse. * @param {string} word - The word to check the frequency of. * @param {Config} config - Configuration for the word counter */ const singleFrequencyCount = (text, word, config = config_1.defaultConfig) => { const wordMap = (0, wordCount_1.allWordCount)(text, config); let total = 0; wordMap.forEach((wordCount) => (total += wordCount)); const wordCount = wordMap.get(word); if (wordCount) { const frequency = wordCount / total; return Number(frequency.toFixed(4)); } return 0; }; exports.singleFrequencyCount = singleFrequencyCount; /** * Count frequency of all words in a block of text. * * @param {string} text - The text to parse. * @param {Config} config - Configuration for the word counter */ const allFrequencyCount = (text, config = config_1.defaultConfig) => { const uniqueSentenceComponents = (0, sentenceComponents_1.getUniqueSentenceComponents)(text, config); const frequencyMap = new Map(); uniqueSentenceComponents.forEach((uniqueSentenceComponent) => { const single = (0, exports.singleFrequencyCount)(text, uniqueSentenceComponent, config); frequencyMap.set(uniqueSentenceComponent, single); }); return frequencyMap; }; exports.allFrequencyCount = allFrequencyCount;