计算输入的每个单词组合的百分比



我正在尝试用Javascript创建一些东西,它可以计算每个单词或短语在某些输入中出现的次数的密度百分比。然而,所有可能的组合都需要在整个输入中进行计算,并为每个组合显示一个百分比。

例如,考虑以下内容:

input:
green apple pie recipe

output:
"green apple pie recipe" = 100%
"green apple pie" = 75%
"apple pie recipe" = 75%
"green apple" = 50%
"pie recipe" = 50%
"apple pie" = 50%
"green" = 25%
"apple" = 25%
"pie" = 25%
"recipe" = 25%

上面只是一个简单的例子,但脚本需要计算几百到几千个单词。有什么想法吗?

好吧,这样的东西怎么样:

https://jsfiddle.net/8uf8o7zj/

var input = "green apple pie recipe";
var sentances = [
    "green apple pie recipe",
    "green apple pie",
    "apple pie recipe",
    "green apple",
    "pie recipe",
    "apple pie",
    "green",
    "apple",
    "pie",
    "recipe"];
var count = input.split(' ').length;
var pattern = input.split(' ').join('|');
var r = new RegExp(pattern,'g');
var output = [];
sentances.forEach(function (sentance) {
    var matches = sentance.match(r);
    output.push({
        'sentance' : sentance,
        'percentage' : (matches) ? (matches.length / count) * 100 : 0,
        toString: function () { return this.sentance + ' - '+ this.percentage + '%' }
    });
});
output.forEach(function (result) {
    alert(result.toString());
});

最新更新