Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/430.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将所有短语一个接一个地对齐,从重复次数最多的短语到重复次数最少的短语?_Javascript_Arrays_String - Fatal编程技术网

Javascript 如何将所有短语一个接一个地对齐,从重复次数最多的短语到重复次数最少的短语?

Javascript 如何将所有短语一个接一个地对齐,从重复次数最多的短语到重复次数最少的短语?,javascript,arrays,string,Javascript,Arrays,String,如何将所有短语一个接一个地对齐,从重复次数最多的短语到重复次数最少的短语 我有这样一句话:“要做,2,你能,5,你能,4” 我想要这个:做2, 你能告诉我吗, 你知道吗 function toPhrases(text, wordCount) { const words = text.match(/[\w\u0402-\u045f]+/ig); const phrases = new Map(); for (let i = 0; i < words.length; i++) { le

如何将所有短语一个接一个地对齐,从重复次数最多的短语到重复次数最少的短语

我有这样一句话:“要做,2,你能,5,你能,4”

我想要这个:做2, 你能告诉我吗, 你知道吗

function toPhrases(text, wordCount) {
const words = text.match(/[\w\u0402-\u045f]+/ig);
const phrases = new Map();
for (let i = 0; i < words.length; i++) {
    let
        phrase = words.slice(i, i + wordCount).join(' '),
        hashedPhrases = phrases.get(phrase);
    if (hashedPhrases) {
        phrases.set(phrase, hashedPhrases + 1);
    } else {
        phrases.set(phrase, 1);
    }
    if (i + wordCount >= words.length) {
        break;
    }
}
// Each member of phrases is actually a two-element array like [phrase, count], so...
let duplicatePhrases = [...phrases].filter(phrase => phrase[1] > 1);
return duplicatePhrases;

}

请拨弄/片段。什么在重复?我想这是为了做5,你能做4,你能做3,这是什么意思?这些数字是什么意思?重复这个词指的是什么?数字是文本中短语的频率。
document.getElementById('output-2').innerHTML = toPhrases(text.toString(), 2);
document.getElementById('output-3').innerHTML = toPhrases(text.toString(), 3);
document.getElementById('output-4').innerHTML = toPhrases(text.toString(), 4);