from app.dame_perceval import DamePerceval from app.dame_utils import DameUtils import sys import argparse parser = argparse.ArgumentParser() parser.add_argument("url", help="Uniform Resource Link") parser.add_argument('--directory') parser.add_argument('--version', action='version', version='0.1') args = parser.parse_args() if (len(sys.argv) > 1): s = DameSexmachine() gg = DamePerceval() du = DameUtils() l = gg.list_mailers(args.url) l = du.delete_duplicated(l) females = 0 males = 0 unknowns = 0 for g in l: sm = s.guess(g, binary=True) if (sm == 0): females = females + 1 elif (sm == 1): males = males + 1 else: unknowns = unknowns + 1 print("The number of males sending mails is %s" % males) print("The number of females sending mails is %s" % females)
def test_dame_sexmachine_guess(self): s = DameSexmachine() self.assertEqual(s.guess("David"), 'male') self.assertEqual(s.guess("David", binary=True, ml="svc"), 1) self.assertEqual(s.guess("Laura", binary=True, ml="svc"), 0) self.assertEqual(s.guess("Palabra", binary=True, ml="svc"), 1) self.assertEqual(s.guess("Laura", binary=True, ml="sgd"), 0) self.assertEqual(s.guess("Palabra", binary=True, ml="svc"), 1) self.assertEqual(s.guess("David", binary=True, ml="gaussianNB"), 1) self.assertEqual(s.guess("David", binary=True, ml="multinomialNB"), 1) self.assertEqual(s.guess("David", binary=True, ml="bernoulliNB"), 1) self.assertEqual(s.guess("Laura"), 'female') # With accents: self.assertEqual(s.guess("Inés"), 'female') # Without accents: self.assertEqual(s.guess("Ines"), 'female') self.assertEqual(s.guess("Nodiccionario"), 'male') self.assertEqual(s.guess("Nadiccionaria"), 'female') self.assertEqual(s.guess("David", binary=True), 1) self.assertEqual(s.guess("Laura", binary=True), 0) self.assertEqual(s.guess("Nodiccionario", binary=True), 1) self.assertEqual(s.guess("Nadiccionaria", binary=True), 0)
import sys import argparse parser = argparse.ArgumentParser() parser.add_argument("name", help="display the gender") parser.add_argument('--ml', default="nltk", choices=['nltk', 'svc', 'sgd', 'gaussianNB', 'multinomialNB', 'bernoulliNB']) parser.add_argument('--total', default="ine", choices=['ine', 'uscensus', 'ukcensus', 'all']) parser.add_argument('--version', action='version', version='0.1') args = parser.parse_args() if (len(sys.argv) > 1): s = DameSexmachine() if (args.ml): #print(s.guess("Palabra", binary=True, ml="svc")) if (args.ml == "nltk"): guess = s.guess(args.name, binary=True, ml="nltk") if (args.ml == "sgd"): guess = s.guess(args.name, binary=True, ml="sgd") elif (args.ml == "svc"): guess = s.guess(args.name, binary=True, ml="svc") elif (args.ml == "gaussianNB"): guess = s.guess(args.name, binary=True, ml="gaussianNB") elif (args.ml == "multinomialNB"): guess = s.guess(args.name, binary=True, ml="multinomialNB") elif (args.ml == "bernoulliNB"): guess = s.guess(args.name, binary=True, ml="bernoulliNB") if (guess == 1): sex = "male" elif (guess == 0): sex = "female" elif (guess == 2):
def test_dame_sexmachine_guess_method_returns_correct_result(self): s = DameSexmachine() self.assertEqual(s.guess("David"), 'male') self.assertEqual(s.guess("David", binary=True, ml="svc"), 1) self.assertEqual(s.guess("Laura", binary=True, ml="svc"), 0) self.assertEqual(s.guess("Palabra", binary=True, ml="svc"), 1) self.assertEqual(s.guess("Inés", binary=True, ml="svc"), 0) self.assertEqual(s.guess("David", binary=True, ml="sgd"), 1) self.assertEqual(s.guess("Laura", binary=True, ml="sgd"), 0) self.assertEqual(s.guess("Palabra", binary=True, ml="svc"), 1) self.assertEqual(s.guess("David", binary=True, ml="gaussianNB"), 1) self.assertEqual(s.guess("David", binary=True, ml="multinomialNB"), 1) self.assertEqual(s.guess("David", binary=True, ml="bernoulliNB"), 1) self.assertEqual(s.guess("Laura"), 'female') self.assertEqual(s.guess("Inés"), 'female') # Con acento self.assertEqual(s.guess("Ines"), 'female') # Sin acento self.assertEqual(s.guess("Nodiccionario"), 'male') # Sin estar en diccionario self.assertEqual(s.guess("Nadiccionaria"), 'female') # En diccionario self.assertEqual(s.guess("David", binary=True), 1) self.assertEqual(s.guess("Laura", binary=True), 0) self.assertEqual(s.guess("Nodiccionario", binary=True), 1) self.assertEqual(s.guess("Nadiccionaria", binary=True), 0)
num_females = s.name_frec(args.name, dataset="uy")['females'] print("%s males for %s from Uruguay census" % (num_males, args.name)) print("%s females for %s from Uruguay census" % (num_females, args.name)) num_males = s.name_frec(args.name, dataset="uk")['males'] num_females = s.name_frec(args.name, dataset="uk")['females'] print("%s males for %s from United Kingdom census" % (num_males, args.name)) print("%s females for %s from United Kingdom census" % (num_females, args.name)) num_males = s.name_frec(args.name, dataset="us")['males'] num_females = s.name_frec(args.name, dataset="us")['females'] print("%s males for %s from United States of America census" % (num_males, args.name)) print("%s females for %s from United States of America census" % (num_females, args.name)) guess = s.guess(args.name, binary=True, ml="nltk") print("%s gender predicted with nltk is %s" % (str(args.name), du.int2gender(guess))) guess = s.guess(args.name, binary=True, ml="sgd") print("%s gender predicted with sgd is %s" % (str(args.name), du.int2gender(guess))) guess = s.guess(args.name, binary=True, ml="svc") print("%s gender predicted with svc is %s" % (str(args.name), du.int2gender(guess))) guess = s.guess(args.name, binary=True, ml="gaussianNB") print("%s gender predicted with gaussianNB is %s" % (str(args.name), du.int2gender(guess))) guess = s.guess(args.name, binary=True, ml="multinomialNB") print("%s gender predicted with multinomialNB is %s" % (str(args.name), du.int2gender(guess))) guess = s.guess(args.name, binary=True, ml="bernoulliNB")