【发布时间】:2019-05-08 13:38:18
【问题描述】:
我编写了一个代码,它获取项目列表并输出一个带有唯一项目作为键和频率作为值的 json。
下面的代码在我测试时运行良好
const tokenFrequency = tokens =>{
const setTokens=[...new Set(tokens)]
return setTokens.reduce((obj, tok) => {
const frequency = tokens.reduce((count, word) =>word===tok?count+1:count, 0);
const containsDigit = /\d+/;
if (!containsDigit.test(tok)) {
obj[tok.toLocaleLowerCase()] = frequency;
}
return obj;
}, new Object());
}
喜欢
const x=["hello","hi","hi","whatsup","hey"]
console.log(tokenFrequency(x))
产生输出
{ hello: 1, hi: 2, whatsup: 1, hey: 1 }
但是当我尝试使用大量数据语料库的单词列表时,它似乎会产生错误的结果。
如果我输入一个列表长度为 14000+ 的单词,它会产生错误的结果。
示例: https://github.com/Nahdus/word2vecDataParsing/blob/master/corpous/listOfWords.txt当这个页面中的这个列表(上面链接)起作用时,单词“is”的频率是4,但实际频率是907。
为什么它对于大数据会这样? 如何解决这个问题?
【问题讨论】:
标签: node.js json list data-processing