fork download
  1. #!/usr/local/bin/ruby -w
  2.  
  3. def frequency(text)
  4. def prepare_string(text)
  5. text.gsub!(",", "")
  6. .split(" ")
  7. end
  8.  
  9. def sort_frequency_report(fq)
  10. fq.to_h
  11. .sort_by{|k, v| v }
  12. .reverse
  13. .to_h
  14. end
  15.  
  16. word_list = prepare_string(text)
  17.  
  18. fq = Hash.new()
  19.  
  20. for word in word_list
  21. if fq.has_key?(word)
  22. fq[word] += 1
  23. else
  24. fq[word] = 1
  25. end
  26. end
  27.  
  28. sort_frequency_report(fq)
  29. end
  30.  
  31. p frequency("в этом длинном,
  32. очень и очень длинном тексте
  33. проверим орфографию")
  34.  
Success #stdin #stdout 0.01s 6324KB
stdin
Standard input is empty
stdout
{"очень"=>2, "длинном"=>2, "орфографию"=>1, "проверим"=>1, "тексте"=>1, "и"=>1, "этом"=>1, "в"=>1}