#include "phrase_location_sampler.h" #include "matchings_sampler.h" #include "phrase_location.h" #include "suffix_array.h" #include "suffix_array_sampler.h" namespace extractor { PhraseLocationSampler::PhraseLocationSampler( shared_ptr suffix_array, int max_samples) { matchings_sampler = make_shared( suffix_array->GetData(), max_samples); suffix_array_sampler = make_shared( suffix_array, max_samples); } PhraseLocationSampler::PhraseLocationSampler( shared_ptr matchings_sampler, shared_ptr suffix_array_sampler) : matchings_sampler(matchings_sampler), suffix_array_sampler(suffix_array_sampler) {} PhraseLocation PhraseLocationSampler::Sample( const PhraseLocation& location, const unordered_set& blacklisted_sentence_ids) const { if (location.matchings == NULL) { return suffix_array_sampler->Sample(location, blacklisted_sentence_ids); } else { return matchings_sampler->Sample(location, blacklisted_sentence_ids); } } } // namespace extractor