a= File.read("/users/Houshuang/Downloads/doaj.csv") c = 0 lang = {} a.each do |line| c=c+1 t = line.split('","') langs = t[2].split(',') langs.each do |l| l.strip! lang[l] = (lang[l] ? lang[l] + 1 : 1) end break if c == 20000000 end puts "" lang.sort {|a,b| b[1]<=>a[1]}.each do |key| puts "" end puts "
" + key[0] + "" + key[1].to_s + "
In total: #{c}, number of categories: #{lang.size}"