コード例 #1
0
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)
コード例 #2
0
 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)
コード例 #3
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):
コード例 #4
0
 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)
コード例 #5
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")