bit::SimpleKneser Class Reference

#include <SimpleKneser.hh>

List of all members.

Public Types

typedef SymbolMap< std::string,
int > 
SymbolMap
typedef std::vector< int > Ngram
typedef std::vector< std::string > StrNgram
typedef std::vector< int > IntVec
typedef std::vector< float > FloatVec
typedef std::map< Ngram, int > IntMap
typedef std::map< Ngram, float > FloatMap
typedef std::map< Ngram, FloatIntFloatIntMap

Public Member Functions

 SimpleKneser ()
 SimpleKneser (const std::string &str)
void init ()
void set_discounts (const std::string &str)
float get_discount (unsigned int order) const
float get_beta_discount (unsigned int order) const
Ngram ngram (const std::string &str) const
int get_count (const Ngram &ngram) const
int get_sum_nonzero_xg (const Ngram &ngram) const
int get_sum_nonzero_xgx (const Ngram &ngram) const
int get_sum_nonzero_gx (const Ngram &ngram) const
int get_sum_xg_not_pruned (const Ngram &ngram) const
int get_sum_nonzero_xg_not_pruned (const Ngram &ngram) const
int get_sum_nonzero_gx_not_pruned (const Ngram &ngram) const
float get_d1 (const Ngram &ngram) const
float get_d2 (const Ngram &ngram) const
const FloatIntget_d2_pair (const Ngram &ngram) const
FloatIntget_d2_pair (const Ngram &ngram)
float get_beta_numerator (const Ngram &ngram) const
float get_beta_denominator (const Ngram &ngram) const
void add_count (const Ngram &ngram, int count)
void read_counts (FILE *file)
void compute_modified_counts ()
float ngram_prob (Ngram ngram) const
void compute_d1 ()
void compute_d2 ()
void compute_beta_denominator ()
bool is_pruned (const Ngram &ngram) const
void prune_ngram (Ngram ngram)
 Prune ngram (and possible children), and modify d2 measure for the parent ngrams.
void prune (float threshold)
Ngram parent (const Ngram &ngram) const
Ngram backoff (const Ngram &ngram) const
float inter_kn (const Ngram &ngram) const
float prob_kn_lower (Ngram ngram) const
float prob_kn (const Ngram &ngram) const
float inter_beta (const Ngram &ngram) const
float prob_beta_lower (Ngram ngram) const
float prob_beta (const Ngram &ngram) const
std::string ngram_str (const Ngram &ngram)
void write_beta_arpa (FILE *file)

Private Attributes

std::string m_sentence_start_str
int m_sentence_start_id
int m_num_events
int m_progress_skip
SymbolMap m_symbol_map
FloatVec m_discounts
FloatVec m_beta_discounts
IntMap m_counts
IntMap m_sum_nonzero_xg
IntMap m_sum_nonzero_xgx
IntMap m_sum_nonzero_gx
IntMap m_sum_xg_not_pruned
IntMap m_sum_nonzero_xg_not_pruned
IntMap m_sum_nonzero_gx_not_pruned
FloatMap m_beta_denominator
FloatMap m_d1
FloatIntMap m_d2

Classes

struct  FloatInt


Member Typedef Documentation

typedef std::map<Ngram, FloatInt> bit::SimpleKneser::FloatIntMap
 

typedef std::map<Ngram, float> bit::SimpleKneser::FloatMap
 

typedef std::vector<float> bit::SimpleKneser::FloatVec
 

typedef std::map<Ngram, int> bit::SimpleKneser::IntMap
 

typedef std::vector<int> bit::SimpleKneser::IntVec
 

typedef std::vector<int> bit::SimpleKneser::Ngram
 

typedef std::vector<std::string> bit::SimpleKneser::StrNgram
 

typedef SymbolMap<std::string,int> bit::SimpleKneser::SymbolMap
 


Constructor & Destructor Documentation

bit::SimpleKneser::SimpleKneser  )  [inline]
 

bit::SimpleKneser::SimpleKneser const std::string &  str  )  [inline]
 


Member Function Documentation

void bit::SimpleKneser::add_count const Ngram ngram,
int  count
[inline]
 

Ngram bit::SimpleKneser::backoff const Ngram ngram  )  const [inline]
 

void bit::SimpleKneser::compute_beta_denominator  )  [inline]
 

void bit::SimpleKneser::compute_d1  )  [inline]
 

void bit::SimpleKneser::compute_d2  )  [inline]
 

void bit::SimpleKneser::compute_modified_counts  )  [inline]
 

float bit::SimpleKneser::get_beta_denominator const Ngram ngram  )  const [inline]
 

float bit::SimpleKneser::get_beta_discount unsigned int  order  )  const [inline]
 

float bit::SimpleKneser::get_beta_numerator const Ngram ngram  )  const [inline]
 

int bit::SimpleKneser::get_count const Ngram ngram  )  const [inline]
 

float bit::SimpleKneser::get_d1 const Ngram ngram  )  const [inline]
 

float bit::SimpleKneser::get_d2 const Ngram ngram  )  const [inline]
 

FloatInt& bit::SimpleKneser::get_d2_pair const Ngram ngram  )  [inline]
 

const FloatInt& bit::SimpleKneser::get_d2_pair const Ngram ngram  )  const [inline]
 

float bit::SimpleKneser::get_discount unsigned int  order  )  const [inline]
 

int bit::SimpleKneser::get_sum_nonzero_gx const Ngram ngram  )  const [inline]
 

int bit::SimpleKneser::get_sum_nonzero_gx_not_pruned const Ngram ngram  )  const [inline]
 

int bit::SimpleKneser::get_sum_nonzero_xg const Ngram ngram  )  const [inline]
 

int bit::SimpleKneser::get_sum_nonzero_xg_not_pruned const Ngram ngram  )  const [inline]
 

int bit::SimpleKneser::get_sum_nonzero_xgx const Ngram ngram  )  const [inline]
 

int bit::SimpleKneser::get_sum_xg_not_pruned const Ngram ngram  )  const [inline]
 

void bit::SimpleKneser::init  )  [inline]
 

float bit::SimpleKneser::inter_beta const Ngram ngram  )  const [inline]
 

float bit::SimpleKneser::inter_kn const Ngram ngram  )  const [inline]
 

bool bit::SimpleKneser::is_pruned const Ngram ngram  )  const [inline]
 

Ngram bit::SimpleKneser::ngram const std::string &  str  )  const [inline]
 

float bit::SimpleKneser::ngram_prob Ngram  ngram  )  const [inline]
 

std::string bit::SimpleKneser::ngram_str const Ngram ngram  )  [inline]
 

Ngram bit::SimpleKneser::parent const Ngram ngram  )  const [inline]
 

float bit::SimpleKneser::prob_beta const Ngram ngram  )  const [inline]
 

float bit::SimpleKneser::prob_beta_lower Ngram  ngram  )  const [inline]
 

float bit::SimpleKneser::prob_kn const Ngram ngram  )  const [inline]
 

float bit::SimpleKneser::prob_kn_lower Ngram  ngram  )  const [inline]
 

void bit::SimpleKneser::prune float  threshold  )  [inline]
 

void bit::SimpleKneser::prune_ngram Ngram  ngram  )  [inline]
 

Prune ngram (and possible children), and modify d2 measure for the parent ngrams.

The pruned ngrams are marked by setting the integer denominator of d2 to zero.

Exceptions:
bit::invalid_argument if ngram already pruned, or ngram is 1-gram, or ngram not found

void bit::SimpleKneser::read_counts FILE *  file  )  [inline]
 

void bit::SimpleKneser::set_discounts const std::string &  str  )  [inline]
 

void bit::SimpleKneser::write_beta_arpa FILE *  file  )  [inline]
 


Member Data Documentation

FloatMap bit::SimpleKneser::m_beta_denominator [private]
 

FloatVec bit::SimpleKneser::m_beta_discounts [private]
 

IntMap bit::SimpleKneser::m_counts [private]
 

FloatMap bit::SimpleKneser::m_d1 [private]
 

FloatIntMap bit::SimpleKneser::m_d2 [private]
 

FloatVec bit::SimpleKneser::m_discounts [private]
 

int bit::SimpleKneser::m_num_events [private]
 

int bit::SimpleKneser::m_progress_skip [private]
 

int bit::SimpleKneser::m_sentence_start_id [private]
 

std::string bit::SimpleKneser::m_sentence_start_str [private]
 

IntMap bit::SimpleKneser::m_sum_nonzero_gx [private]
 

IntMap bit::SimpleKneser::m_sum_nonzero_gx_not_pruned [private]
 

IntMap bit::SimpleKneser::m_sum_nonzero_xg [private]
 

IntMap bit::SimpleKneser::m_sum_nonzero_xg_not_pruned [private]
 

IntMap bit::SimpleKneser::m_sum_nonzero_xgx [private]
 

IntMap bit::SimpleKneser::m_sum_xg_not_pruned [private]
 

SymbolMap bit::SimpleKneser::m_symbol_map [private]
 


The documentation for this class was generated from the following file:
Generated on Mon Jan 8 15:51:04 2007 for bit by  doxygen 1.4.6