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"
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>')