Module: Guess
- Defined in:
- lib/guess.rb,
lib/guess/version.rb
Constant Summary collapse
- VERSION =
"0.1.1"
Class Method Summary collapse
- .female_frequencies ⇒ Object
- .gem_root ⇒ Object
- .gender(name) ⇒ Object
- .male_frequencies ⇒ Object
- .parse_file(name) ⇒ Object
Class Method Details
.female_frequencies ⇒ Object
42 43 44 |
# File 'lib/guess.rb', line 42 def female_frequencies @female_frequencies ||= parse_file("female") end |
.gem_root ⇒ Object
34 35 36 |
# File 'lib/guess.rb', line 34 def gem_root @gem_root ||= File.("../..", __FILE__) end |
.gender(name) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/guess.rb', line 5 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 = male_frequencies[first_name] freq_female = female_frequencies[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 |
.male_frequencies ⇒ Object
38 39 40 |
# File 'lib/guess.rb', line 38 def male_frequencies @male_frequencies ||= parse_file("male") end |
.parse_file(name) ⇒ Object
25 26 27 28 29 30 31 32 |
# File 'lib/guess.rb', line 25 def parse_file(name) dist = Hash.new(0.0005) File.open("#{gem_root}/lib/guess/#{name}.txt", "r").each_line do |line| name, freq, _, _ = line.split dist[name.downcase] = freq.to_f end dist end |