Guest User

Untitled

a guest
Apr 24th, 2018
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.90 KB | None | 0 0
  1. #!/usr/bin/env ruby
  2. two_words = Hash.new(0)
  3. three_words = Hash.new(0)
  4.  
  5. def windowed_words_to_hash(words, word_hash)
  6. i = 0
  7. while i < words.size-1
  8. key = [words[i], words[i+1]]
  9. word_hash[key] += count
  10. i += 1
  11. end
  12. end
  13.  
  14. def add_count(query, num, hsh)
  15. query.inject([]) do |sum, word|
  16. sum << word
  17. hsh[sum] += num
  18. sum
  19. end
  20. end
  21.  
  22. def dump_word_hash(hsh, filename)
  23. dump = hsh.map{|words,count| [words.join(' '), count].join("\t") }
  24. File.open(filename, 'a') do |f|
  25. dump.each{|line| f.puts(line) }
  26. end
  27. end
  28.  
  29. File.open('searched_terms.txt') do |f|
  30. f.readlines.map do |line|
  31. words, count = line.chomp.split('\t')
  32. words = words.split(/\W+/)
  33.  
  34. windowed_words_to_hash(words, two_words) if words.size >= 2
  35. windowed_words_to_hash(words, three_words) if words.size >= 3
  36. end
  37. end
  38.  
  39.  
  40. my_query = ['Best', 'Buy']
  41. add_count(my_query, 3, two_words)
  42.  
  43. dump_word_hash(two_words, 'two_words')
Add Comment
Please, Sign In to add comment