blob: bb3c26537b3f640dc5bcc1d5c0d3fafd68e47b0a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#ifndef _SUFFIX_ARRAY_SAMPLER_H_
#define _SUFFIX_ARRAY_SAMPLER_H_
#include "backoff_sampler.h"
namespace extractor {
class SuffixArray;
class SuffixArrayRangeSampler : public BackoffSampler {
public:
SuffixArrayRangeSampler(shared_ptr<SuffixArray> suffix_array,
int max_samples);
SuffixArrayRangeSampler();
private:
int GetNumSubpatterns(const PhraseLocation& location) const;
int GetRangeLow(const PhraseLocation& location) const;
int GetRangeHigh(const PhraseLocation& location) const;
int GetPosition(const PhraseLocation& location, int index) const;
void AppendMatching(vector<int>& samples, int index,
const PhraseLocation& location) const;
shared_ptr<SuffixArray> source_suffix_array;
};
} // namespace extractor
#endif
|