19 #include "jubatus/util/lang/cast.h"
25 using jubatus::util::lang::shared_ptr;
29 namespace fv_converter {
32 shared_ptr<add_filter> create_add_filter(
33 const std::map<std::string, std::string>& params) {
34 const std::string& value =
get_or_die(params,
"value");
35 double float_val = jubatus::util::lang::lexical_cast<
double>(value);
36 return shared_ptr<add_filter>(
new add_filter(float_val));
39 shared_ptr<linear_normalization_filter> create_linear_normalization_filter(
40 const std::map<std::string, std::string>& params) {
41 const std::string& min =
get_or_die(params,
"min");
42 const std::string& max =
get_or_die(params,
"max");
44 const double float_min = jubatus::util::lang::lexical_cast<
double>(min);
45 const double float_max = jubatus::util::lang::lexical_cast<
double>(max);
46 const bool truncate_flag = truncate ==
"True";
47 return shared_ptr<linear_normalization_filter>(
48 new linear_normalization_filter(float_min, float_max, truncate_flag));
51 shared_ptr<gaussian_normalization_filter> create_gaussian_normalization_filter(
52 const std::map<std::string, std::string>& params) {
53 const std::string& avg =
get_or_die(params,
"average");
54 const std::string& stddev =
get_or_die(params,
"standard_deviation");
55 const double float_avg = jubatus::util::lang::lexical_cast<
double>(avg);
56 const double float_stddev = jubatus::util::lang::lexical_cast<
double>(stddev);
57 return shared_ptr<gaussian_normalization_filter>(
58 new gaussian_normalization_filter(float_avg, float_stddev));
61 shared_ptr<sigmoid_normalization_filter> create_sigmoid_normalization_filter(
62 const std::map<std::string, std::string>& params) {
65 const double float_gain = jubatus::util::lang::lexical_cast<
double>(gain);
66 const double float_bias = jubatus::util::lang::lexical_cast<
double>(bias);
67 return shared_ptr<sigmoid_normalization_filter>(
68 new sigmoid_normalization_filter(float_gain, float_bias));
73 const std::string& name,
77 return create_add_filter(params);
78 }
else if (name ==
"linear_normalization") {
79 return create_linear_normalization_filter(params);
80 }
else if (name ==
"gaussian_normalization") {
81 return create_gaussian_normalization_filter(params);
82 }
else if (name ==
"sigmoid_normalization") {
83 return create_sigmoid_normalization_filter(params);
84 }
else if (
ext_ && (p =
ext_(name, params))) {
85 return shared_ptr<num_filter>(p);
jubatus::util::lang::shared_ptr< num_filter > create(const std::string &name, const param_t ¶ms) const
std::map< std::string, std::string > param_t
#define JUBATUS_EXCEPTION(e)
const std::string & get_or_die(const std::map< std::string, std::string > ¶ms, const std::string &key)
std::string get_with_default(const std::map< std::string, std::string > ¶ms, const std::string &key, const std::string &default_value)