Comment obtenir des mots de fréquence de manière efficace avec ruby?

D'entrée d'échantillon:

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

et de sortie:

{ 'yes' => 2, 'was' => 2, 'i' => 1, 'home' => 1, 'you' => 1 }

Mon code qui ne fonctionne pas:

def get_words_f(myStr)
    myStr=myStr.downcase.scan(/\w/).to_s;
    h = Hash.new(0)
    myStr.split.each do |w|
       h[w] += 1 
    end
    return h.to_a;
end

print get_words_f('I was 09809 home -- Yes! yes!  You was');
InformationsquelleAutor Yosef | 2012-03-12