Sha256: 00fcd77688e78ab196ab0aa9231caabb21b267108cbc6e4f3345d2c0f71c7c81
Contents?: true
Size: 766 Bytes
Versions: 4
Compression:
Stored size: 766 Bytes
Contents
module Classiphier class Bayes def initialize @data = Data.new end def train(category, sentence) @data.perform! @data[:data][category] ||= Data.new @data[:data][category].train(sentence) end def classify(sentence) classifications(sentence).min_by { |a| -a[1] }[0] end def classifications(sentence) Hash.new(0).tap do |score| @data[:data].each do |category, data| sentence.words.each do |word| value = data[:data].fetch(word, 0.1).to_f score[category] += Math.log(value / data[:words]) end value = @data[:data][category][:count].to_f score[category] += Math.log(value / @data[:count]) end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems
Version | Path |
---|---|
classiphier-0.1.3 | lib/classiphier/bayes.rb |
classiphier-0.1.2 | lib/classiphier/bayes.rb |
classiphier-0.1.1 | lib/classiphier/bayes.rb |
classiphier-0.1.0 | lib/classiphier/bayes.rb |