17 #ifndef JUBATUS_CORE_RECOMMENDER_RECOMMENDER_BASE_HPP_
18 #define JUBATUS_CORE_RECOMMENDER_RECOMMENDER_BASE_HPP_
23 #include "jubatus/util/data/unordered_map.h"
24 #include "jubatus/util/lang/shared_ptr.h"
25 #include "../common/type.hpp"
26 #include "../framework/mixable.hpp"
27 #include "../framework/model.hpp"
28 #include "../storage/sparse_matrix_storage.hpp"
29 #include "../storage/recommender_storage_base.hpp"
30 #include "../unlearner/unlearner_base.hpp"
38 namespace recommender {
48 std::vector<std::pair<std::string, float> >& ids,
49 size_t ret_num)
const = 0;
53 std::vector<std::pair<std::string, float> >& ids,
54 size_t ret_num)
const = 0;
55 virtual void clear() = 0;
56 virtual void clear_row(
const std::string&
id) = 0;
60 virtual std::string
type()
const = 0;
69 virtual jubatus::util::lang::shared_ptr<storage::column_table>
get_table() {
70 return jubatus::util::lang::shared_ptr<storage::column_table>();
72 virtual jubatus::util::lang::shared_ptr<const storage::column_table>
74 return jubatus::util::lang::shared_ptr<const storage::column_table>();
77 virtual jubatus::util::lang::shared_ptr<unlearner::unlearner_base>
79 return jubatus::util::lang::shared_ptr<unlearner::unlearner_base>();
83 const std::string&
id,
84 std::vector<std::pair<std::string, float> >& ids,
85 size_t ret_num)
const;
87 const std::string&
id,
88 std::vector<std::pair<std::string, float> >& ids,
89 size_t ret_num)
const;
110 #endif // JUBATUS_CORE_RECOMMENDER_RECOMMENDER_BASE_HPP_
static float calc_l2norm(const common::sfv_t &query)
virtual void clear_row(const std::string &id)=0
virtual jubatus::util::lang::shared_ptr< unlearner::unlearner_base > get_unlearner()
virtual const core::storage::recommender_storage_base * get_const_storage() const
void decode_row(const std::string &id, common::sfv_t &ret) const
virtual void similar_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const =0
virtual std::string type() const =0
virtual jubatus::util::lang::shared_ptr< storage::column_table > get_table()
core::common::sfv_t sfv_diff_t
virtual void get_all_row_ids(std::vector< std::string > &ids) const =0
void complete_row(const std::string &id, common::sfv_t &ret) const
virtual void neighbor_row(const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, size_t ret_num) const =0
core::storage::sparse_matrix_storage orig_
std::vector< std::pair< std::string, float > > sfv_t
virtual jubatus::util::lang::shared_ptr< const storage::column_table > get_const_table() const
static float calc_similality(common::sfv_t &q1, common::sfv_t &q2)
virtual framework::mixable * get_mixable() const =0
virtual ~recommender_base()
virtual void update_row(const std::string &id, const sfv_diff_t &diff)=0
static const uint64_t complete_row_similar_num_