class Rlid::NaiveBayesProbabilityGuesser

Public Instance Methods

guess_language(string) click to toggle source
# File lib/rlid/language_guesser/naive_bayes_guesser.rb, line 30
def guess_language(string)
  results = {}
  tot = 0.0 # for normalization
  @models.probabilities(string) do |lang, p|
    size = string.preprocess(3).size
    long = Math.log(1 + size)
    # higher means lower
    short = 1
    exp = short/long
    prob = p**exp
    results[lang] = prob
    tot += prob
  end
  # normalize
  results.each_key do |k|
    results[k] /= tot if tot != 0
  end

  LanguageProbabilities.new(results)
end