Module: Akiva::Brain::Helpers

Defined in:
lib/akiva/core_brain/helpers/misc.rb,
lib/akiva/core_brain/helpers/units.rb,
lib/akiva/core_brain/helpers/comparison_adjectives_to_properties.rb

Defined Under Namespace

Classes: Units

Constant Summary collapse

ComparisonAdjectivesToProperties =
{
  "bigger" => {properties: %w(size), comparator: "superior"},
  "blacker" => {properties: %w(blackness), comparator: "superior"},
  "bolder" => {properties: %w(boldness), comparator: "superior"},
  "braver" => {properties: %w(courage), comparator: "superior"},
  "brighter" => {properties: %w(brightness), comparator: "superior"},
  "busier" => {properties: %w(business), comparator: "superior"},
  # "cleaner" => {properties: %w(cleanliness)},
  "clearer" => {properties: %w(clearness), comparator: "superior"},
  # "cleverer" => {properties: %w(cleverness)},
  "colder" => {properties: %w(temperature), comparator: "inferior"},
  "cooler" => {properties: %w(temperature), comparator: "inferior"},
  "darker" => {properties: %w(luminosity), comparator: "inferior"},
  # "dearer" => {properties: %w(dearness)},
  "deeper" => {properties: %w(depth), comparator: "superior"},
  # "dirtier" => {properties: %w(dirtiness)},
  "drier" => {properties: %w(humidity), comparator: "inferior"},
  # "easier" => {properties: %w(easiness)},
  # "fairer" => {properties: %w(fairness)},
  "faster" => {properties: %w(speed), comparator: "superior"},
  "fatter" => {properties: %w(fatness), comparator: "superior"},
  # "finer" => {properties: %w()},
  "funnier" => {properties: %w(funniness), comparator: "superior"},
  "greater" => {properties: %w(greatness), comparator: "superior"},
  "greener" => {properties: %w(greeness), comparator: "superior"},
  # "happier" => {properties: %w(happiness)},
  # "harder" => {properties: %w(hardness)},
  "healthier" => {properties: %w(healthiness)},
  "heavier" => {properties: ["weight", "average weight"], comparator: "superior"},
  # "higher" => {properties: %w(highness)},
  "hotter" => {properties: %w(temperature), comparator: "superior"},
  # "kinder" => {properties: %w(kindness)},
  "larger" => {properties: %w(size), comparator: "superior"},
  # "later" => {properties: %w(timing)},
  # "lazier" => {properties: %w(laziness)},
  "lighter" => {properties: ["weight", "average weight"], comparator: "inferior"},
  "longer" => {properties: %w(size duration), comparator: "superior"},
  # "lower" => {properties: %w(lowerness)},
  # "luckier" => {properties: %w(luck)},
  # "madder" => {properties: %w(madness)},
  # "merrier" => {properties: %w(merriness)},
  # "narrower" => {properties: %w(narrowness)},
  # "naughtier" => {properties: %w(naughtiness)},
  # "nearer" => {properties: %w(nearness)},
  "newer" => {properties: ["age", "creation date", "release date"], comparator: "inferior"},
  # "noiser" => {properties: %w(noisiness)},
  "older" => {properties: ["age", "creation date", "release date"], comparator: "superior"},
  # "paler" => {properties: %w(paleness)},
  "poorer" => {properties: ["net worth"], comparator: "inferior"},
  # "prettier" => {properties: %w(prettiness)},
  # "prouder" => {properties: %w(proudness)},
  "quicker" => {properties: %w(speed), comparator: "superior"},
  # "redder" => {properties: %w(redness)},
  "richer" => {properties: ["net worth"], comparator: "superior"},
  # "sadder" => {properties: %w(sadness)},
  # "saffer" => {properties: %w(safeness)},
  # "shallower" => {properties: %w(shallowness)},
  # "sharper" => {properties: %w(sharpness)},
  "shorter" => {properties: %w(size duration), comparator: "inferior"},
  # "shallower" => {properties: %w(shallowness)},
  "slower" => {properties: %w(speed), comparator: "inferior"},
  "smaller" => {properties: %w(size duration), comparator: "inferior"},
  # "smoother" => {properties: %w(smoothness)},
  "stronger" => {properties: %w(power), comparator: "superior"},
  # "sweeter" => {properties: %w(sweetness)},
  "taller" => {properties: %w(height size), comparator: "superior"},
  # "thicker" => {properties: %w(thickness)},
  "thinner" => {properties: %w(size), comparator: "inferior"},
  "tinier" => {properties: %w(size), comparator: "inferior"},
  # "uglier" => {properties: %w(ugliness)},
  "warmer" => {properties: %w(temperature), comparator: "superior"},
  "weakness" => {properties: %w(power), comparator: "inferior"},
  "wealthier" => {properties: ["net worth"], comparator: "superior"},
  "wetter" => {properties: %w(humidity), comparator: "superior"},
  # "whither" => {properties: %w()},
  "wider" => {properties: %w(wideness size), comparator: "superior"},
  # "wilder" => {properties: %w(wildness)},
  # "wiser" => {properties: %w(wiseness)},
  "younger" => {properties: %w(age), comparator: "inferior"},


  "more ancient" => {properties: ["age", "creation date", "release date"], comparator: "inferior"},
  # "more beautiful" => {properties: %w(looks)},
  # "more brilliant" => {properties: %w(brilliantness)},
  # "more careful" => {properties: %w(carefulness)},
  # "more careless" => {properties: %w(carefulness)},
  # "more cheerful" => {properties: %w(cheerfulness)},
  # "more comfortable" => {properties: %w(comfortableness)},
  # "more dangerous" => {properties: %w(dangerousness)},
  # "more delightful" => {properties: %w(delightfulness)},
  # "more difficult" => {properties: %w(difficultness)},
  # "more enjoyable" => {properties: %w(enjoyability)},
  # "more foolish" => {properties: %w(foolishness)},
  # "more forgetful" => {properties: %w(forgetfulness)},
  # "more frightening" => {properties: %w(frighteningness)},
  # "more generous" => {properties: %w(generousness)},
  # "more handsome" => {properties: %w(handsomeness)},
  # "more helpful" => {properties: %w(helpfulness)},
  # "more ignorant" => {properties: %w(ignorantness)},
  # "more important" => {properties: %w(importantness)},
  # "more intelligent" => {properties: %w(intelligentness)},
  # "more interesting" => {properties: %w(interestingness)},
  # "more pleasant" => {properties: %w(pleasantness)},
  "more powerful" => {properties: %w(power), comparator: "superior"},
  "more prosperous" => {properties: ["gross domestic product"], comparator: "superior"},
  # "more sensible" => {properties: %w(sensibleness)},
  # "more terrible" => {properties: %w(terribleness)},
  # "more thoughtful" => {properties: %w(thoughtfulness)},
  # "more unusual" => {properties: %w(unusualness)},
  # "more useful" => {properties: %w(usefulness)},
  "more valuable" => {properties: ["worth", "price"], comparator: "superior"},
  # "more wonderful" => {properties: %w(wonderfulness)},

  "less ancient" => {properties: ["age", "creation date", "release date"], comparator: "inferior"},
  # "less beautiful" => {properties: %w(looks)},
  # "less brilliant" => {properties: %w(brilliantness)},
  # "less careful" => {properties: %w(carefulness)},
  # "less careless" => {properties: %w(carefulness)},
  # "less cheerful" => {properties: %w(cheerfulness)},
  # "less comfortable" => {properties: %w(comfortableness)},
  # "less dangerous" => {properties: %w(dangerousness)},
  # "less delightful" => {properties: %w(delightfulness)},
  # "less difficult" => {properties: %w(difficultness)},
  # "less enjoyable" => {properties: %w(enjoyability)},
  # "less foolish" => {properties: %w(foolishness)},
  # "less forgetful" => {properties: %w(forgetfulness)},
  # "less frightening" => {properties: %w(frighteningness)},
  # "less generous" => {properties: %w(generousness)},
  # "less handsome" => {properties: %w(handsomeness)},
  # "less helpful" => {properties: %w(helpfulness)},
  # "less ignorant" => {properties: %w(ignorantness)},
  # "less important" => {properties: %w(importantness)},
  # "less intelligent" => {properties: %w(intelligentness)},
  # "less interesting" => {properties: %w(interestingness)},
  # "less pleasant" => {properties: %w(pleasantness)},
  "less powerful" => {properties: %w(power), comparator: "superior"},
  "less prosperous" => {properties: ["gross domestic product"], comparator: "superior"},
  # "less sensible" => {properties: %w(sensibleness)},
  # "less terrible" => {properties: %w(terribleness)},
  # "less thoughtful" => {properties: %w(thoughtfulness)},
  # "less unusual" => {properties: %w(unusualness)},
  # "less useful" => {properties: %w(usefulness)},
  "less valuable" => {properties: ["worth", "price"], comparator: "superior"},
  # "less wonderful" => {properties: %w(wonderfulness)},
}

Class Method Summary collapse

Class Method Details

.cleanup_articles(string) ⇒ Object



23
24
25
# File 'lib/akiva/core_brain/helpers/misc.rb', line 23

def self.cleanup_articles(string)
  string.gsub(/\A(a|an|the) /i, "")
end

.degroup_multiple_values(string) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
# File 'lib/akiva/core_brain/helpers/misc.rb', line 5

def self.degroup_multiple_values(string)
  # NOTE: we probably should check the dictionary here to improve the values detections,
  # and limit the number of requests made.
  values = []

  string.split(" && ").each do |sub0|
    sub0.split(",").each do |sub1|
      sub1.split(" and ").each do |sub2|
        val = sub2.strip
        val.gsub!(/\A(a|an|the) /i, "")
        values << val
      end
    end
  end

  values.uniq
end