这是如何进行关键字查找/密度检查?

时间:2013-01-27 23:00:07

标签: jquery

嗨我有一个相对较大的文本块,我想找到其中最常见的关键字并计算这些关键字的密度。我想到的方式看起来似乎很慢或性能要求和困难:

迭代文本块中的每个单词 找到每个单词的所有相同匹配项 计算每个单词的总匹配数 比如前五个最匹配,然后计算它们相对于总块数的密度。 输出结果

使用jquery有没有简单快捷的方法呢?

2 个答案:

答案 0 :(得分:5)

var text = "Lorem ipsum ...";

var word_list = text.split(/\W+/); // Split the text into words.

var counts = {};#
Allocate a dictionary

for (var i = 0; i < word_list.length; ++i) {
    var word = word_list[i];
    counts[word] = (counts[word] || 0) + 1; // Increment count by one.
}

var densities = {};

for (word in counts) {
    densities[word] = parseFloat((counts[word] / word_list.length) * 100).toFixed(2); // Calculates all the densities percentage.
}

剩下的就是获得最频繁的那些。

您可能希望更改文本拆分为关键字的方式,或过滤非常常见/简短的字词。现在“它的”最终被分成'它','s'。这可能不是你想要的。

答案 1 :(得分:1)

我会用不同的滑动窗口来解决这个问题。每次遇到空格" "时,递增一个单词计数器,并将当前单词添加到存储桶中。如果存储桶包含该字,请向存储桶添加计数器。解析整个文本后,获取具有最大计数的存储桶。输出桶字,将桶数除以最大计数。