如何计算文本中单词的频率

How to calculate frequency of word in text

本文关键字:单词 频率 文本 何计算 计算      更新时间:2023-09-26

如何实现javascript函数来计算文本中单词的频率

frequencies('foo foo bar foo   bar buz', ['foo', 'bar']);
should return {"bar": 2, "foo": 3}

这样的事情应该这样做

function frequencies(str, opts) {
    var o = {};
    opts.forEach(function(opt) { o[opt] = 0; });
    str.split(/'s+/).forEach(function(x) { if (x in o) o[x]++; });
    return o;
}

小提琴

如果你可以使用下划线/lodash,它就像

function frequencies(str) {
  return _.countBy(str.split(' '));
}

这个怎么样:

function frequencies(str, words){
    var ret = {}, split = str.split(' ');
    for(var i = 0; i < split.length; i++){
        var currentWord = split[i];
        if(!currentWord || !~words.indexOf(currentWord)) continue;
        ret[currentWord] = !ret[currentWord] ? 1 : ret[currentWord]+1;
    }
    return ret;
}
console.log(frequencies('foo foo bar foo   bar buz', ['foo', 'bar']));

http://jsfiddle.net/uqgtqy01/1/