jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
converter_config.hpp
Go to the documentation of this file.
1 // Jubatus: Online machine learning framework for distributed environment
2 // Copyright (C) 2011 Preferred Networks and Nippon Telegraph and Telephone Corporation.
3 //
4 // This library is free software; you can redistribute it and/or
5 // modify it under the terms of the GNU Lesser General Public
6 // License version 2.1 as published by the Free Software Foundation.
7 //
8 // This library is distributed in the hope that it will be useful,
9 // but WITHOUT ANY WARRANTY; without even the implied warranty of
10 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
11 // Lesser General Public License for more details.
12 //
13 // You should have received a copy of the GNU Lesser General Public
14 // License along with this library; if not, write to the Free Software
15 // Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16 
17 #ifndef JUBATUS_CORE_FV_CONVERTER_CONVERTER_CONFIG_HPP_
18 #define JUBATUS_CORE_FV_CONVERTER_CONVERTER_CONFIG_HPP_
19 
20 #include <map>
21 #include <string>
22 #include <vector>
23 #include "jubatus/util/data/serialization.h"
24 #include "jubatus/util/data/optional.h"
25 #include "jubatus/util/lang/shared_ptr.h"
26 #include "type.hpp"
27 
28 namespace jubatus {
29 namespace core {
30 namespace fv_converter {
31 
32 class datum_to_fv_converter;
33 
34 struct string_rule {
35  std::string key;
36  jubatus::util::data::optional<std::string> except;
37  std::string type;
38  std::string sample_weight;
39  std::string global_weight;
40 
42  template<class Archive>
43  void serialize(Archive& ar) {
44  ar
45  & JUBA_MEMBER(key)
46  & JUBA_MEMBER(except)
47  & JUBA_MEMBER(type)
48  & JUBA_MEMBER(sample_weight)
49  & JUBA_MEMBER(global_weight);
50  }
51 };
52 
53 struct filter_rule {
54  std::string key;
55  jubatus::util::data::optional<std::string> except;
56  std::string type;
57  std::string suffix;
58 
60  template<class Archive>
61  void serialize(Archive& ar) {
62  ar
63  & JUBA_MEMBER(key)
64  & JUBA_MEMBER(except)
65  & JUBA_MEMBER(type)
66  & JUBA_MEMBER(suffix);
67  }
68 };
69 
70 struct num_rule {
71  std::string key;
72  jubatus::util::data::optional<std::string> except;
73  std::string type;
74 
76  template<class Archive>
77  void serialize(Archive& ar) {
78  ar & JUBA_MEMBER(key) & JUBA_MEMBER(except) & JUBA_MEMBER(type);
79  }
80 };
81 
82 struct binary_rule {
83  std::string key;
84  jubatus::util::data::optional<std::string> except;
85  std::string type;
86 
88  template<class Archive>
89  void serialize(Archive& ar) {
90  ar & JUBA_MEMBER(key) & JUBA_MEMBER(except) & JUBA_MEMBER(type);
91  }
92 };
93 
95  std::string key_left;
96  std::string key_right;
97  jubatus::util::data::optional<std::string> except_left;
98  jubatus::util::data::optional<std::string> except_right;
99  std::string type;
100 
102  template<class Archive>
103  void serialize(Archive& ar) {
104  ar
105  & JUBA_MEMBER(key_left)
106  & JUBA_MEMBER(key_right)
107  & JUBA_MEMBER(except_left)
108  & JUBA_MEMBER(except_right)
109  & JUBA_MEMBER(type);
110  }
111 };
112 
114  jubatus::util::data::optional<std::map<std::string, param_t> >
116  jubatus::util::data::optional<std::vector<filter_rule> > string_filter_rules;
117 
118  jubatus::util::data::optional<std::map<std::string, param_t> >
120  jubatus::util::data::optional<std::vector<filter_rule> > num_filter_rules;
121 
122  jubatus::util::data::optional<std::map<std::string, param_t> > string_types;
123  jubatus::util::data::optional<std::vector<string_rule> > string_rules;
124 
125  jubatus::util::data::optional<std::map<std::string, param_t> > num_types;
126  jubatus::util::data::optional<std::vector<num_rule> > num_rules;
127 
128  jubatus::util::data::optional<std::map<std::string, param_t> > binary_types;
129  jubatus::util::data::optional<std::vector<binary_rule> > binary_rules;
130 
131  jubatus::util::data::optional<std::map<std::string, param_t> >
133  jubatus::util::data::optional<std::vector<combination_rule> >
135 
136 
137  jubatus::util::data::optional<int64_t> hash_max_size;
138 
140  template<class Archive>
141  void serialize(Archive& ar) {
142  ar
143  & JUBA_MEMBER(string_filter_types)
144  & JUBA_MEMBER(string_filter_rules)
145  & JUBA_MEMBER(num_filter_types)
146  & JUBA_MEMBER(num_filter_rules)
147  & JUBA_MEMBER(string_types)
148  & JUBA_MEMBER(string_rules)
149  & JUBA_MEMBER(num_types)
150  & JUBA_MEMBER(num_rules)
151  & JUBA_MEMBER(binary_types)
152  & JUBA_MEMBER(binary_rules)
153  & JUBA_MEMBER(combination_types)
154  & JUBA_MEMBER(combination_rules)
155  & JUBA_MEMBER(hash_max_size);
156  }
157 };
158 
159 
160 class factory_extender;
161 
163  const converter_config& config,
164  datum_to_fv_converter& converter,
165  const factory_extender* = NULL);
166 
167 jubatus::util::lang::shared_ptr<datum_to_fv_converter> make_fv_converter(
168  const converter_config& config,
169  const factory_extender* = NULL);
170 
171 } // namespace fv_converter
172 } // namespace core
173 } // namespace jubatus
174 
175 #endif // JUBATUS_CORE_FV_CONVERTER_CONVERTER_CONFIG_HPP_
void initialize_converter(const converter_config &config, datum_to_fv_converter &conv, const factory_extender *ext)
jubatus::util::data::optional< std::map< std::string, param_t > > num_filter_types
friend class jubatus::util::data::serialization::access
jubatus::util::data::optional< std::string > except
friend class jubatus::util::data::serialization::access
friend class jubatus::util::data::serialization::access
jubatus::util::data::optional< std::string > except
jubatus::util::data::optional< std::string > except_right
jubatus::util::data::optional< std::string > except
jubatus::util::data::optional< std::map< std::string, param_t > > string_types
jubatus::util::data::optional< std::vector< num_rule > > num_rules
jubatus::util::data::optional< std::vector< filter_rule > > string_filter_rules
jubatus::util::data::optional< std::map< std::string, param_t > > binary_types
jubatus::util::data::optional< std::vector< string_rule > > string_rules
friend class jubatus::util::data::serialization::access
jubatus::util::data::optional< std::map< std::string, param_t > > combination_types
jubatus::util::lang::shared_ptr< datum_to_fv_converter > make_fv_converter(const converter_config &config, const factory_extender *extender)
jubatus::util::data::optional< int64_t > hash_max_size
jubatus::util::data::optional< std::vector< combination_rule > > combination_rules
friend class jubatus::util::data::serialization::access
jubatus::util::data::optional< std::map< std::string, param_t > > num_types
jubatus::util::data::optional< std::vector< filter_rule > > num_filter_rules
jubatus::util::data::optional< std::map< std::string, param_t > > string_filter_types
jubatus::util::data::optional< std::string > except
jubatus::util::data::optional< std::vector< binary_rule > > binary_rules
friend class jubatus::util::data::serialization::access
jubatus::util::data::optional< std::string > except_left