利用可能な事前定義された単語のリストなしで、Javascript文字列内の単語の出現をカウントする簡単な方法を知っている人はいますか? 理想的には、連想配列(Word、Count)に出力したいと思います。
たとえば、「Hello how are you Hello」という行に沿った入力は、次の行に沿って何かを出力します:- "Hello": 2 "how": 1 "are": 1 "you": 1
どんな助けでも大歓迎です。
ありがとう、
利用可能な事前定義された単語のリストなしで、Javascript文字列内の単語の出現をカウントする簡単な方法を知っている人はいますか? 理想的には、連想配列(Word、Count)に出力したいと思います。
たとえば、「Hello how are you Hello」という行に沿った入力は、次の行に沿って何かを出力します:- "Hello": 2 "how": 1 "are": 1 "you": 1
どんな助けでも大歓迎です。
ありがとう、
単純な文字列の場合、これで十分です。
var str = "hello hello hello this is a list of different words that it is",
split = str.split(" "),
obj = {};
for (var x = 0; x < split.length; x++) {
if (obj[split[x]] === undefined) {
obj[split[x]] = 1;
} else {
obj[split[x]]++;
}
}
console.log(obj)
ただし、文を処理したい場合は、句読点などの処理を行う必要があります (したがって、すべての !?. をスペースに置き換えます)。
var counts = myString.replace/[^\w\s]/g, "").split(/\s+/).reduce(function(map, word){
map[word] = (map[word]||0)+1;
return map;
}, Object.create(null));