word-frequency-counter
Version:
42 lines (41 loc) • 1.7 kB
JavaScript
;
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;