class Mayhem

Constants

VERSION

Public Class Methods

synonymize(input) click to toggle source
# File lib/mayhem/synonymization.rb, line 5
def synonymize(input)
  text  = input.to_s
  words = text.split("\s")
  words.map { |word| synonym(word) || word }.join(' ')
end

Private Class Methods

data_directory() click to toggle source
# File lib/mayhem/synonymization.rb, line 42
def data_directory
  specification = Gem::Specification.find_by_name('mayhem')
  File.join(specification.gem_dir, 'lib', 'data')
end
lookup_table() click to toggle source
# File lib/mayhem/synonymization.rb, line 21
def lookup_table
  return @lookup_table if @lookup_table

  @lookup_table = {}

  synonym_file = File.open(synonym_file_path)
  reader = Zlib::GzipReader.new(synonym_file)
  reader.readlines.first.split("\s").each do |line|
    words = line.split(',').map(&:strip)
    root = words.first
    related = words[1..-1]
    @lookup_table[root] = related
  end

  @lookup_table
end
synonym(word) click to toggle source
# File lib/mayhem/synonymization.rb, line 13
def synonym(word)
  candidate_list = lookup_table[word]
  candidate = candidate_list.sample if candidate_list
  if candidate && candidate != ''
    candidate
  end
end
synonym_file_path() click to toggle source
# File lib/mayhem/synonymization.rb, line 38
def synonym_file_path
  File.join(data_directory, 'mobythes.aur.gz')
end