Я пытаюсь построить алгоритм для просмотра, какие слова в комментариях больше всего встречаются.Алгоритм подсчета вхождений слов в строку
Поэтому я пришел с этим (в Javascript):
var analyze = function(comments){
var detectedWords = [];
var result = {};
comments.forEach(function(comment){
var words = comment.message.split(" ");
words.forEach(function(word){
word = word.toLowerCase();
if(word !== ""){
if(detectedWords.indexOf(word) === -1){
detectedWords.push(word);
result[detectedWords.indexOf(word)] = {"name":word,"count":1};
}else{
result[detectedWords.indexOf(word)].count++;
}
}
});
});
return _.orderBy(result, ['count'], ['desc']);
}
Может ли алгоритм быть оптимизировано дальше? (ToLowerCase() вне внутреннего цикла?
В следующем шаге я определил бы «черный список» или слова, которые не интересны, как «это я, утро, это ...»
Вы можете попытаться сохранить только слово «слово» в качестве ключа, а значение «значение» - это значение используя меньше места для каждого результата. –
Основные вопросы обзора не подходят для StackOverflow. Для этого есть http://codereview.stackexchange.com/. Кроме того, вопросы производительности по строкам «быстрее, чем B»? можно легко ответить, измерив себя. – Tomalak
@Tomalak * отзыв о кодексе – Ave