Module: Guess
- Defined in:
- lib/guess.rb,
lib/guess/version.rb
Constant Summary collapse
- FREQ_MALE =
parse_file("male")
- FREQ_FEMALE =
parse_file("female")
- VERSION =
"0.0.2"
Class Method Summary collapse
Class Method Details
.gem_root ⇒ Object
35 36 37 |
# File 'lib/guess.rb', line 35 def gem_root @gem_root ||= File.("../..", __FILE__) end |
.gender(name) ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/guess.rb', line 6 def gender(name) name = name.to_s.downcase index = name.index(",") first_name = index ? name[(index+1)..-1] : name first_name = first_name.split.first freq_male = FREQ_MALE[first_name] freq_female = FREQ_FEMALE[first_name] p_male = freq_male / (freq_male + freq_female) gender, confidence = if freq_male > freq_female ["male", p_male] elsif freq_female > freq_male ["female", 1 - p_male] else ["unknown", nil] end {:gender => gender, :confidence => confidence} end |
.parse_file(name) ⇒ Object
26 27 28 29 30 31 32 33 |
# File 'lib/guess.rb', line 26 def parse_file(name) dist = Hash.new(0.0005) File.open("#{gem_root}/lib/guess/#{name}.txt", "r").each_line do |line| name, freq, cum_freq, rank = line.split dist[name.downcase] = freq.to_f end dist end |