class TextClassifier

Attributes

categories[R]

Public Class Methods

new(args) click to toggle source
# File lib/NaiveText/TextClassifier.rb, line 3
def initialize(args)
  @categories = args[:categories]
  @calculator = args[:calculator] || ProbabilityCalculator.new(categories: @categories)
end

Public Instance Methods

classify(text) click to toggle source
# File lib/NaiveText/TextClassifier.rb, line 8
def classify(text)
  get_category_for(text)
end
probabilities(text) click to toggle source
# File lib/NaiveText/TextClassifier.rb, line 12
def probabilities(text)
  @calculator.get_probabilities_for(text)
end

Private Instance Methods

get_category_for(text) click to toggle source
# File lib/NaiveText/TextClassifier.rb, line 18
def get_category_for(text)
  probabilities = @calculator.get_probabilities_for(text)
  @categories.each do |category|
    probabilities.multiply(category: category, factor: category.weight)
  end
  probabilities.category_with_max
end