Sha256: 85d9c8a8e21d376a5bace0a78057c598838c93992fc2a25ea37682d79282f5b1

Contents?: true

Size: 442 Bytes

Versions: 1

Compression:

Stored size: 442 Bytes

Contents

require "trigram/version"

module Trigram
  class << self
    def compare(text1, text2)
      text1_trigs = trigramify(text1)
      text2_trigs = trigramify(text2)

      all_cnt = (text1_trigs | text2_trigs).size
      same_cnt = (text1_trigs & text2_trigs).size

      same_cnt.to_f / all_cnt
    end

    private
    def trigramify(text)
      trigs = []
      text.chars.each_cons(3) { |v| trigs << v.join }
      trigs
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
trigram-0.0.1 lib/trigram.rb