Example #1
0
def api():
    input_data = request.json

    if ("summary" not in input_data) or ("review" not in input_data):
        raise InvalidUsage("Must specify summary and review in the request",
                           status_code=422)

    sanitized_text = utils.clean_text(input_data["summary"],
                                      input_data["review"])

    if sanitized_text:
        language = utils.detect_language(sanitized_text)
        prediction = utils.generate_prediction_from_text(sanitized_text)
        return Response(
            json.dumps({
                "prediction":
                prediction,
                "language_detected":
                language,
                "disclaimer":
                "Prediction not accurate for non-English reviews",
            }))

    else:
        raise InvalidUsage(
            "Review content cannot be blank (must provide either the summary or text section)",
            status_code=422,
        )
def main(argv):
    parser = get_parser()
    (options, args) = parser.parse_args(argv)
    if not (options.input and options.output and options.model):
        parser.error("Requires arguments not provided")
    else:
        lang = detect_language(options.input)
        if lang not in ['en', 'es', 'it', 'nl']:
            print >> sys.stderr, 'Language other than en, es, it, nl'
            sys.exit(1)
        else:
            print "Loading model for lang {0}".format(lang)
            age_gender_model=load_model(options.model,lang,'age_gender.model')
            label_encoder_ag= load_label_encoder(options.model,lang,'age_gender.le')

            #personlality
            personality_model=load_model(options.model,lang,'personality.model')
            label_encoder_per=load_label_encoder(options.model,lang,'personality.le')

            print  "Done loading model"
            model_ag = Model(name='age_gender',clf=age_gender_model, label_encoder=label_encoder_ag, label_extractor=label_extractor_gender_age)
            model_per = Model(name='personality',clf=personality_model, label_encoder=label_encoder_per, label_extractor=label_extractor_personality_values)

            test =Test(model=[model_ag,model_per],path=options.input)
            test.run()
            test.save(options.output)

            print "Done "
def main(argv):
    parser = get_parser()
    (options, args) = parser.parse_args(argv)
    if not (options.input and options.output):
        parser.error("Requires arguments not provided")
    else:
        lang = detect_language(options.input)
        if lang not in ['en', 'es', 'it', 'nl']:
            print >> sys.stderr, 'Language other than en, es, it, nl'
            sys.exit(1)
        else:


            training_data = TrainingData(path=options.input).load_data()  # load training data
            #age gender
            configure_obj_ag = configure_age_gender(lang)  # apply which features to use
            label_encoder_ag = preprocessing.LabelEncoder()  # map feature name to integer index

            log_reg = linear_model.LogisticRegression(dual=True, multi_class='multinomial',
                                                      solver='lbfgs')  # multiclass classifier
            model_age_gender = Train(configuration=configure_obj_ag,
                          classifier=log_reg)  # create train pipeline


            #personality
            configure_obj_per=configure_personality(lang)

            label_encoder_per = preprocessing.MultiLabelBinarizer()
            # label_encoder_per = None

            linear_reg=OneVsRestClassifier(linear_model.LogisticRegression(dual=True))

            model_per = Train(configuration=configure_obj_per,
                          classifier=linear_reg)


            print "Training ......."

            model_age_gender.train(training_data.X,training_data.transform_label(label_extractor_age_gender,label_encoder_ag))
            model_per.train(training_data.X,training_data.transform_label(label_extractor_personality,label_encoder_per))

            print "Done "
            print "Saving model in {0} ".format(options.output)

            if not os.path.exists(os.path.join(options.output, lang)):
                os.mkdir(os.path.join(options.output, lang))

            model_age_gender.save(os.path.join(options.output, lang, 'age_gender.model'))
            model_per.save(os.path.join(options.output, lang, 'personality.model'))

            save_label_encoder(label_encoder_ag,options.output,lang,'age_gender.le')
            save_label_encoder(label_encoder_per,options.output,lang,'personality.le')

            print "Done saving model"
Example #4
0
async def trans_detect(ctx):
	global now
	if utils.elapsed(now):
		try:
			phrase = ctx.content[ctx.content.index(' ')+1:]
			lang = utils.detect_language(phrase)
			print(f'translate {phrase}')
			if lang == 'en':
				response = utils.translate(phrase, 'en', 'ko')
			elif lang == 'ko':
				response = utils.translate(phrase, 'ko', 'en')
			else:
				raise Exception('Invalid language.')

			print(response)
			now = time()
			await ctx.send(f'@{ctx.author.name}, {phrase} = {response.text}')
		except ValueError:
			await ctx.send(f'@{ctx.author.name}, usage: !translate <text>')