class TfIdf::Utility

ユーティリティクラス

Constants

N

(仮の)インデックス数

Public Class Methods

create_dic() click to toggle source

df.dicからidf.dicを生成する

# File lib/utility.rb, line 17
def self.create_dic
  dfs = self.df_load()
  idfs = self.create_idf(dfs)
  self.idf_save(idfs)
  puts "complete."
  puts "size=#{idfs.size} average=#{idfs.average}"
end
get_inverse(df_value) click to toggle source

DF値からiDF値を取得する IDF = log(N / DF)

df_value

DF値

# File lib/utility.rb, line 28
def self.get_inverse(df_value)
  return df_value > 0 ? Math::log(N / df_value) : 0
end

Private Class Methods

create_idf(dfs) click to toggle source

DFsオブジェクトからIDFsオブジェクトを生成する

dfs

DFsオブジェクト

# File lib/utility.rb, line 36
def self.create_idf(dfs)
  idfs = IDFs.new
  total = 0
  dfs.all.each_pair { |k, v|
    idf = TfIdf::Utility.get_inverse(v)
    idfs.set(k, idf)
    total += idf
  }
  idfs.size = dfs.all.size
  idfs.average = total / idfs.size
  return idfs
end
df_load() click to toggle source

df.dicを読み込む

# File lib/utility.rb, line 50
def self.df_load()
  df_dic  = File.dirname(__FILE__) + '/../dic/#{Version.ruby}/df.dic'
  unless File::exists?(df_dic)
    raise
  end
  File::open(df_dic) { |f|
    return Marshal.load(f)
  }
end
idf_save(idfs) click to toggle source

idf.dicを保存する

# File lib/utility.rb, line 61
def self.idf_save(idfs)
  idf_dic  = File.dirname(__FILE__) + '/../dic/#{Version.ruby}/idf.dic'
  File::open(idf_dic, 'wb') { |f|
    Marshal.dump(idfs, f)
  }
end