Sha256: 442471fef28a5e47ac24356613b82d2ff79396baf094d4ce74248a4b17d96a97
Contents?: true
Size: 1.4 KB
Versions: 1
Compression:
Stored size: 1.4 KB
Contents
require "elife_gender/version" require "elife_gender/utils" module ElifeGender class GenderDetector def initialize @@m_names = open(ElifeGender::Utils.gem_libdir + "/files/m.txt") {|f| f.read.split "\n"}.inject({}) do |memo, name| memo[name] = true memo end @@f_names = open(ElifeGender::Utils.gem_libdir + "/files/f.txt") {|f| f.read.split "\n"}.inject({}) do |memo, name| memo[name] = true memo end end @@instance = GenderDetector.new def self.instance return @@instance end def self.get_gender (name) text = clean_text name text.split("\s").each do |text| if @@f_names[text] return "female" elsif @@m_names[text] return "male" end end return "unknown" end def self.get_gender_all (names) names.map {|n| get_gender n} end def self.clean_text(text) final_text = text.downcase.tr( "àáâãäåāăąçćĉċčðďđèéêëēĕėęěĝğġģĥħìíîïĩīĭįıĵķĸĺļľŀłñńņňʼnŋòóôõöøōŏőŕŗřśŝşšſţťŧùúûüũūŭůűųŵýÿŷźżž", "aaaaaaaaacccccdddeeeeeeeeegggghhiiiiiiiiijkklllllnnnnnnooooooooorrrssssstttuuuuuuuuuuwyyyzzz") final_text = final_text.gsub(/[^\w\s]/, " ") final_text = final_text.gsub(/\s+/, " ") final_text = final_text.strip final_text end private_class_method :new, :clean_text end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
elife_gender-0.1.4 | lib/elife_gender.rb |