22 #include "../storage/row_deleter.hpp"
23 #include "../fv_converter/datum_to_fv_converter.hpp"
24 #include "../fv_converter/weight_manager.hpp"
25 #include "../fv_converter/mixable_weight_manager.hpp"
26 #include "../nearest_neighbor/nearest_neighbor_base.hpp"
32 using jubatus::util::lang::shared_ptr;
34 using fv_converter::weight_manager;
37 shared_ptr<core::nearest_neighbor::nearest_neighbor_base> nn,
38 shared_ptr<fv_converter::datum_to_fv_converter> converter)
39 : converter_(converter),
45 converter_->set_weight_manager(wm_.get_model());
49 shared_ptr<core::nearest_neighbor::nearest_neighbor_base> nn,
50 shared_ptr<fv_converter::datum_to_fv_converter> converter,
51 shared_ptr<unlearner::unlearner_base>
unlearner)
52 : converter_(converter),
54 unlearner_(unlearner),
59 converter_->set_weight_manager(wm_.get_model());
60 unlearner->set_callback(storage::row_deleter(nn_->get_table()));
64 return nn_->get_table();
67 shared_ptr<const storage::column_table>
69 return nn_->get_const_table();
73 const std::string&
id,
79 converter_->convert_and_update_weight(datum, v);
83 std::vector<std::pair<std::string, float> >
85 std::vector<std::pair<std::string, float> > ret;
86 nn_->neighbor_row(
id, ret, size);
90 std::vector<std::pair<std::string, float> >
96 std::vector<std::pair<std::string, float> > ret;
97 nn_->neighbor_row(v, ret, size);
101 std::vector<std::pair<std::string, float> >
103 std::vector<std::pair<std::string, float> > ret;
104 nn_->similar_row(
id, ret, ret_num);
108 std::vector<std::pair<std::string, float> >
114 std::vector<std::pair<std::string, float> > ret;
115 nn_->similar_row(v, ret, ret_num);
120 std::vector<std::string> ret;
121 nn_->get_all_row_ids(ret);
140 if (o.type != msgpack::type::ARRAY || o.via.array.size != 2) {
141 throw msgpack::type_error();
149 nn_->unpack(o.via.array.ptr[0]);
model_ptr get_model() const
jubatus::util::lang::shared_ptr< unlearner::unlearner_base > unlearner_
fv_converter::mixable_weight_manager wm_
void set_row(const std::string &id, const fv_converter::datum &datum)
jubatus::util::lang::shared_ptr< core::nearest_neighbor::nearest_neighbor_base > nn_
jubatus::util::data::optional< std::string > unlearner
std::vector< std::pair< std::string, float > > neighbor_row_from_datum(const fv_converter::datum &datum, size_t size)
framework::linear_mixable_helper< weight_manager, versioned_weight_diff > mixable_weight_manager
jubatus::util::lang::shared_ptr< fv_converter::datum_to_fv_converter > converter_
std::vector< std::pair< std::string, float > > similar_row(const std::string &id, size_t ret_num)
nearest_neighbor(jubatus::util::lang::shared_ptr< core::nearest_neighbor::nearest_neighbor_base > nn, jubatus::util::lang::shared_ptr< fv_converter::datum_to_fv_converter > converter)
jubatus::util::lang::shared_ptr< const storage::column_table > get_const_table() const
jubatus::util::lang::shared_ptr< storage::column_table > get_table()
std::vector< std::pair< std::string, float > > sfv_t
std::vector< std::string > get_all_rows()
std::vector< std::pair< std::string, float > > neighbor_row_from_id(const std::string &id, size_t size)
void pack(framework::packer &pk) const
void register_mixable(framework::mixable *mixable)
void unpack(msgpack::object o)
storage::mixable_lsh_index_storage::model_ptr model_ptr