17 #ifndef JUBATUS_CORE_FV_CONVERTER_DATUM_TO_FV_CONVERTER_HPP_
18 #define JUBATUS_CORE_FV_CONVERTER_DATUM_TO_FV_CONVERTER_HPP_
23 #include "jubatus/util/data/unordered_map.h"
24 #include "jubatus/util/lang/shared_ptr.h"
25 #include "jubatus/util/lang/scoped_ptr.h"
26 #include "../common/type.hpp"
27 #include "../framework/mixable.hpp"
31 namespace fv_converter {
52 : freq_weight_type_(freq_weight_type),
53 term_weight_type_(term_weight_type) {
58 class datum_to_fv_converter_impl;
62 class combination_feature;
81 jubatus::util::lang::shared_ptr<key_matcher> matcher,
82 jubatus::util::lang::shared_ptr<string_filter> filter,
83 const std::string& suffix);
86 jubatus::util::lang::shared_ptr<key_matcher> matcher,
87 jubatus::util::lang::shared_ptr<num_filter> filter,
88 const std::string& suffix);
91 const std::string& name,
92 jubatus::util::lang::shared_ptr<key_matcher> matcher,
93 jubatus::util::lang::shared_ptr<string_feature> splitter,
94 const std::vector<splitter_weight_type>& weights);
97 const std::string& name,
98 jubatus::util::lang::shared_ptr<key_matcher> matcher,
99 jubatus::util::lang::shared_ptr<num_feature> feature_func);
102 const std::string& name,
103 jubatus::util::lang::shared_ptr<key_matcher> matcher,
104 jubatus::util::lang::shared_ptr<binary_feature> feature_func);
107 const std::string& name,
108 jubatus::util::lang::shared_ptr<key_matcher> matcher_left,
109 jubatus::util::lang::shared_ptr<key_matcher> matcher_right,
110 jubatus::util::lang::shared_ptr<combination_feature> feature_func);
112 void add_weight(
const std::string& key,
float weight);
115 const std::string& feature,
116 std::pair<std::string, std::string>& expect)
const;
124 jubatus::util::lang::scoped_ptr<datum_to_fv_converter_impl>
pimpl_;
131 #endif // JUBATUS_CORE_FV_CONVERTER_DATUM_TO_FV_CONVERTER_HPP_
frequency_weight_type freq_weight_type_
void convert(const datum &datum, common::sfv_t &ret_fv) const
void revert_feature(const std::string &feature, std::pair< std::string, std::string > &expect) const
splitter_weight_type(frequency_weight_type freq_weight_type, term_weight_type term_weight_type)
void convert_and_update_weight(const datum &datum, common::sfv_t &ret_fv)
void set_weight_manager(jubatus::util::lang::shared_ptr< weight_manager > wm)
void register_string_rule(const std::string &name, jubatus::util::lang::shared_ptr< key_matcher > matcher, jubatus::util::lang::shared_ptr< string_feature > splitter, const std::vector< splitter_weight_type > &weights)
void register_string_filter(jubatus::util::lang::shared_ptr< key_matcher > matcher, jubatus::util::lang::shared_ptr< string_filter > filter, const std::string &suffix)
void register_num_rule(const std::string &name, jubatus::util::lang::shared_ptr< key_matcher > matcher, jubatus::util::lang::shared_ptr< num_feature > feature_func)
void add_weight(const std::string &key, float weight)
void register_binary_rule(const std::string &name, jubatus::util::lang::shared_ptr< key_matcher > matcher, jubatus::util::lang::shared_ptr< binary_feature > feature_func)
void register_combination_rule(const std::string &name, jubatus::util::lang::shared_ptr< key_matcher > matcher_left, jubatus::util::lang::shared_ptr< key_matcher > matcher_right, jubatus::util::lang::shared_ptr< combination_feature > feature_func)
void set_hash_max_size(uint64_t hash_max_size)
std::vector< std::pair< std::string, float > > sfv_t
void register_num_filter(jubatus::util::lang::shared_ptr< key_matcher > matcher, jubatus::util::lang::shared_ptr< num_filter > filter, const std::string &suffix)
jubatus::util::lang::scoped_ptr< datum_to_fv_converter_impl > pimpl_
term_weight_type term_weight_type_