jubatus_core  0.1.2
Jubatus: Online machine learning framework for distributed environment
Classes | Public Member Functions | Private Member Functions | List of all members
jubatus::core::nearest_neighbor::minhash Class Reference

#include <minhash.hpp>

Inheritance diagram for jubatus::core::nearest_neighbor::minhash:
Inheritance graph
Collaboration diagram for jubatus::core::nearest_neighbor::minhash:
Collaboration graph

Classes

struct  config
 

Public Member Functions

 minhash (const config &conf, jubatus::util::lang::shared_ptr< storage::column_table > table, const std::string &id)
 
 minhash (const config &conf, jubatus::util::lang::shared_ptr< storage::column_table > table, std::vector< storage::column_type > &schema, const std::string &id)
 
virtual std::string type () const
 
- Public Member Functions inherited from jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base
 bit_vector_nearest_neighbor_base (uint32_t bitnum, jubatus::util::lang::shared_ptr< storage::column_table > table, const std::string &id)
 
 bit_vector_nearest_neighbor_base (uint32_t bitnum, jubatus::util::lang::shared_ptr< storage::column_table > table, std::vector< storage::column_type > &schema, const std::string &id)
 
uint32_t bitnum () const
 
virtual void neighbor_row (const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, uint64_t ret_num) const
 
virtual void neighbor_row (const std::string &query_id, std::vector< std::pair< std::string, float > > &ids, uint64_t ret_num) const
 
virtual void set_row (const std::string &id, const common::sfv_t &sfv)
 
- Public Member Functions inherited from jubatus::core::nearest_neighbor::nearest_neighbor_base
virtual float calc_similarity (float distance) const
 
virtual void clear ()
 
void get_all_row_ids (std::vector< std::string > &ids) const
 
jubatus::util::lang::shared_ptr< const storage::column_tableget_const_table () const
 
framework::mixableget_mixable () const
 
jubatus::util::lang::shared_ptr< storage::column_tableget_table ()
 
 nearest_neighbor_base (jubatus::util::lang::shared_ptr< storage::column_table > table, const std::string &id)
 
void pack (framework::packer &packer) const
 
virtual void similar_row (const common::sfv_t &query, std::vector< std::pair< std::string, float > > &ids, uint64_t ret_num) const
 
virtual void similar_row (const std::string &query_id, std::vector< std::pair< std::string, float > > &ids, uint64_t ret_num) const
 
void unpack (msgpack::object o)
 
virtual ~nearest_neighbor_base ()
 

Private Member Functions

virtual storage::bit_vector hash (const common::sfv_t &sfv) const
 

Additional Inherited Members

- Protected Attributes inherited from jubatus::core::nearest_neighbor::nearest_neighbor_base
std::string my_id_
 

Detailed Description

Definition at line 38 of file minhash.hpp.

Constructor & Destructor Documentation

jubatus::core::nearest_neighbor::minhash::minhash ( const config conf,
jubatus::util::lang::shared_ptr< storage::column_table table,
const std::string &  id 
)
jubatus::core::nearest_neighbor::minhash::minhash ( const config conf,
jubatus::util::lang::shared_ptr< storage::column_table table,
std::vector< storage::column_type > &  schema,
const std::string &  id 
)

Member Function Documentation

bit_vector jubatus::core::nearest_neighbor::minhash::hash ( const common::sfv_t sfv) const
privatevirtual

Implements jubatus::core::nearest_neighbor::bit_vector_nearest_neighbor_base.

Definition at line 128 of file minhash.cpp.

References jubatus::core::common::hash_util::calc_string_hash().

128  {
129  vector<float> min_values_buffer(bitnum(), FLT_MAX);
130  vector<uint64_t> hash_buffer(bitnum());
131  for (size_t i = 0; i < sfv.size(); ++i) {
132  uint64_t key_hash = common::hash_util::calc_string_hash(sfv[i].first);
133  float val = sfv[i].second;
134  for (uint32_t j = 0; j < bitnum(); ++j) {
135  float hashval = calc_hash(key_hash, j, val);
136  if (hashval < min_values_buffer[j]) {
137  min_values_buffer[j] = hashval;
138  hash_buffer[j] = key_hash;
139  }
140  }
141  }
142 
143  bit_vector bv(bitnum());
144  for (size_t i = 0; i < hash_buffer.size(); ++i) {
145  if ((hash_buffer[i] & 1LLU) == 1) {
146  bv.set_bit(i);
147  }
148  }
149 
150  return bv;
151 }
bit_vector_base< uint64_t > bit_vector
static uint64_t calc_string_hash(const std::string &s)
Definition: hash.hpp:29

Here is the call graph for this function:

virtual std::string jubatus::core::nearest_neighbor::minhash::type ( ) const
inlinevirtual

Implements jubatus::core::nearest_neighbor::nearest_neighbor_base.

Definition at line 63 of file minhash.hpp.

63  {
64  return "minhash";
65  }

The documentation for this class was generated from the following files: