How to get words frequency in efficient way with ruby?

前端 未结 7 1672
伪装坚强ぢ
伪装坚强ぢ 2021-02-05 17:50

Sample input:

\"I was 09809 home -- Yes! yes!  You was\"

and output:

{ \'yes\' => 2, \'was\' => 2, \'i\' => 1, \'home\         


        
7条回答
  •  日久生厌
    2021-02-05 18:32

    def count_words(string)
      Hash[
        string.scan(/[a-zA-Z]+/)
          .group_by{|word| word.downcase}
          .map{|word, words|[word, words.size]}
      ]
     end
    
    puts count_words 'I was 09809 home -- Yes! yes!  You was'
    

提交回复
热议问题