class BayesicMatching::Matcher
Public Class Methods
new(class_count:, by_token:)
click to toggle source
# File lib/bayesic_matching/matcher.rb, line 3 def initialize(class_count:, by_token:) @class_count = class_count @by_token = by_token @prior = 1.0 / class_count end
Public Instance Methods
classify(tokens)
click to toggle source
# File lib/bayesic_matching/matcher.rb, line 9 def classify(tokens) tokens = tokens.reject{|t| !@by_token.has_key?(t) }.uniq tokens.each_with_object({}) do |token, hash| @by_token[token][:classifications].each do |c| p_klass = hash[c] || @prior p_not_klass = 1.0 - p_klass p_token_given_klass = 1.0 p_token_given_not_klass = (@by_token[token][:count] - 1) / @class_count.to_f hash[c] = (p_token_given_klass * p_klass) / ((p_token_given_klass * p_klass) + (p_token_given_not_klass * p_not_klass)) end end end