class Bronto::Thesaurus
Public Instance Methods
lookup(word)
click to toggle source
# File lib/bronto/thesaurus.rb, line 8 def lookup(word) query = word.downcase synonyms = get_synonyms query return nil if synonyms.nil? # check out early if nothing is found hash = {} if synonyms synonyms.each do |synonym| hash[synonym.last] = {syn: [] } unless hash.member?(synonym.last) hash[synonym.last][:syn] << synonym.first end end hash.keys.each do |key1| val1 = hash[key1] val1.sort! if val1.respond_to? :sort! val1.keys.each do |key2| val2 = hash[key1][key2] val2.sort! if val2.respond_to? :sort! end end hash end
Private Instance Methods
get_synonyms(query)
click to toggle source
# File lib/bronto/thesaurus.rb, line 37 def get_synonyms(query) synsets = $lex.lookup_synsets(query) words = [] synsets.each do |synset| synset.words.map {|word| words << [word.lemma, synset.part_of_speech.to_sym] unless word.lemma == query} synset.hypernyms.each do |hypernym| hypernym.words.map {|word| words << [word.lemma, synset.part_of_speech.to_sym] unless word.lemma == query} end end synonyms = words.sort_by {|word| word.first }.uniq! synonyms end