예제 #1
0
 void MM::mle(){
   const Vec &n(suf()->n());
   double tot = sum(n);
   if(tot==0){
     Vec probs(size(), 1.0/size());
     set_pi(probs);
     return;
   }
   set_pi(n/tot);
 }
예제 #2
0
파일: trans.c 프로젝트: chagge/nlp_rasp
void clear_trans_all(Trans *trans)
{
    int size = trans->size;
    set_trans(trans->trans, 0, size, FALSE);
    set_pi(trans->pi, 0, size, FALSE);
    set_gamma(trans->gamma, 0, size, FALSE);
}
예제 #3
0
파일: trans.c 프로젝트: chagge/nlp_rasp
void init_good_turing_trans(Trans *trans)
{
    /* Set up transitions as if we had seen one of each transition already */
    int size = trans->size;
    set_trans(trans->trans, 1, size, FALSE);
    set_pi(trans->pi, 1, size, FALSE);
    set_gamma(trans->gamma, size, size, FALSE);
}
예제 #4
0
  MM::MultinomialModel(const StringVec &names)
    : ParamPolicy(new VectorParams(1)),
      DataPolicy(new MS(1)),
      ConjPriorPolicy(),
      logp_current_(false)
  {
    std::vector<Ptr<CD> >
      dvec(make_catdat_ptrs(names));

    uint nlev= dvec[0]->nlevels();
    Vec probs(nlev, 1.0/nlev);
    set_pi(probs);

    set_data(dvec);
    mle();
    set_observer();
  }