class ProbabilityCollection
Public Class Methods
new(args)
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 2 def initialize(args) @categories = args[:categories] || [] initialize_ids @probabilities = [] initalize_probabilities(@ids) end
Public Instance Methods
category_with_max()
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 37 def category_with_max if @probabilities.max > 0 id = @probabilities.find_index(@probabilities.max) @categories.find { |category| category.id == id } else @categories.default end end
find(category)
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 9 def find(category) @probabilities[category.id] end
greater_then(value)
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 50 def greater_then(value) @probabilities.map! do |p| if p > value p else 0 end end end
max()
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 46 def max @probabilities.max end
multiply(args)
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 19 def multiply(args) category = args[:category] factor = args[:factor] if category @probabilities[category.id] *= factor else @probabilities.map! { |el| el * factor } end end
normalize()
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 29 def normalize if sum > 0 normalization_factor = 1.to_f / sum multiply(factor: normalization_factor) end self end
set(args)
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 13 def set(args) category = args[:category] value = args[:value] @probabilities[category.id] = value end
sum()
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 60 def sum @probabilities.reduce(:+) end
to_s()
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 64 def to_s result = '' @categories.each do |category| result << category.to_s result << ':' result << find(category).to_s result << "\n" end result end
Private Instance Methods
initalize_probabilities(ids)
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 81 def initalize_probabilities(ids) ids.max.times do @probabilities << 0 end end
initialize_ids()
click to toggle source
# File lib/NaiveText/ProbabilityCollection.rb, line 77 def initialize_ids @ids = @categories.map(&:id) end