37 #ifndef GUM_LEARNING_DB_TRANSLATOR_SET_H 38 #define GUM_LEARNING_DB_TRANSLATOR_SET_H 42 #include <type_traits> 114 template <
template <
typename >
class ALLOC = std::allocator >
198 template <
template <
template <
typename >
class >
class Translator >
200 const std::size_t column,
201 const bool unique_column = true);
217 template < template < typename > class XALLOC >
220 const std::size_t column,
221 const std::vector< std::string, XALLOC< std::string > >& missing_symbols,
222 const bool unique_column = true);
237 const std::size_t column,
238 const bool unique_column = true);
254 void
eraseTranslator(const std::size_t k, const bool k_is_input_col = false);
288 template < template < typename > class OTHER_ALLOC >
290 const std::vector< std::string, OTHER_ALLOC< std::string > >& row,
291 const std::size_t k) const;
304 template < template < typename > class OTHER_ALLOC >
306 const std::vector< std::string, OTHER_ALLOC< std::string > >& row,
307 const std::size_t k) const;
320 std::string
translateBack(const DBTranslatedValue translated_val,
321 const std::size_t k) const;
336 const std::size_t k) const;
349 const std::size_t k) const;
361 const std::size_t k) const;
367 std::size_t
domainSize(const std::size_t k) const;
430 ALLOC< std::pair< std::size_t, std::size_t > > >
438 ALLOC< std::pair< std::size_t, std::size_t > > >
447 std::size_t
inputColumn(const std::size_t k) const;
465 std::size_t
size() const;
471 const std::vector< DBTranslator< ALLOC >*, ALLOC< DBTranslator< ALLOC >* > >&
476 #ifndef DOXYGEN_SHOULD_SKIP_THIS 480 std::vector< DBTranslator< ALLOC >*, ALLOC< DBTranslator< ALLOC >* > >
485 std::vector< std::size_t, ALLOC< std::size_t > > __columns;
488 std::size_t __highest_column{std::size_t(0)};
HashTable< std::size_t, std::size_t, ALLOC< std::pair< std::size_t, std::size_t > > > reorder(const std::size_t k)
performs a reordering of the dictionary and returns a mapping from the old translated values to the n...
const Variable & variable(const std::size_t k) const
returns the variable stored into the kth translator
Base class for every random variable.
ALLOC< DBTranslatedValue > allocator_type
type for the allocators passed in arguments of methods
const std::vector< DBTranslator< ALLOC > *, ALLOC< DBTranslator< ALLOC > *> > & translators() const
returns the set of translators
void eraseTranslator(const std::size_t k, const bool k_is_input_col=false)
erases either the kth translator or those parsing the kth column of the input database ...
DBTranslatorSet< ALLOC > & operator=(const DBTranslatorSet< ALLOC > &from)
copy operator
std::string translateBack(const DBTranslatedValue translated_val, const std::size_t k) const
returns the original string that was translated into translated_val
const Variable & variableSafe(const std::size_t k) const
returns the variable stored into the kth translator
std::size_t domainSizeSafe(const std::size_t k) const
returns the domain size of the variable stored into the kth translator
std::size_t highestInputColumn() const
returns the largest input database column index read by the translators
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
DBTranslator< ALLOC > & translatorSafe(const std::size_t k)
returns the kth translator
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
typename DBTranslator< ALLOC >::allocator_type allocator_type
type for the allocators passed in arguments of methods
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
std::size_t inputColumnSafe(const std::size_t k) const
returns the column of the input database that will be read by the kth translator
std::size_t nbTranslators() const
returns the number of translators stored into the set
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
The union class for storing the translated values in learning databases.
The class for generic Hash Tables.
DBTranslatorSet(const allocator_type &alloc=allocator_type())
default constructor
DBTranslator< ALLOC > & operator[](const std::size_t k)
returns the kth translator
std::size_t domainSize(const std::size_t k) const
returns the domain size of the variable stored into the kth translator
DBTranslator< ALLOC > & translator(const std::size_t k)
returns the kth translator
bool isMissingValueSafe(const DBTranslatedValue translated_val, const std::size_t k) const
similar to method isMissingValue, except that it checks that the kth translator exists ...
allocator_type getAllocator() const
returns the allocator used by the translator set
The base class for all the tabular database cell translators.
std::size_t insertTranslator(const Translator< ALLOC > &translator, const std::size_t column, const bool unique_column=true)
inserts a new translator at the end of the translator set
bool needsReordering(const std::size_t k) const
indicates whether a reordering is needed to make the kth translator sorted
virtual ~DBTranslatorSet()
destructor
std::size_t inputColumn(const std::size_t k) const
returns the column of the input database that will be read by the kth translator
std::string translateBackSafe(const DBTranslatedValue translated_val, const std::size_t k) const
similar to method translateBack, except that it checks that the kth translator exists ...
std::size_t size() const
returns the number of translators stored into the set
DBTranslatedValue translateSafe(const std::vector< std::string, OTHER_ALLOC< std::string > > &row, const std::size_t k) const
similar to method translate, except that it checks that the kth translator exists ...
bool needsReorderingSafe(const std::size_t k) const
same as method needsReordering but checks that the kth translator exists
DBTranslatedValue translate(const std::vector< std::string, OTHER_ALLOC< std::string > > &row, const std::size_t k) const
ask the kth translator to translate a string in a row of the database
void clear()
remove all the translators
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
the class for packing together the translators used to preprocess the datasets
HashTable< std::size_t, std::size_t, ALLOC< std::pair< std::size_t, std::size_t > > > reorderSafe(const std::size_t k)
same as method reorder but checks that the kth translator exists
virtual DBTranslatorSet< ALLOC > * clone() const
virtual copy constructor
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
Copyright 2005-2019 Pierre-Henri WUILLEMIN et Christophe GONZALES (LIP6) {prenom.nom}_at_lip6.fr.
bool isMissingValue(const DBTranslatedValue translated_val, const std::size_t k) const
indicates whether the kth translator considers a translated_val as a missing value ...