Пример #1
0
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);
}
Пример #2
0
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);
}
Пример #3
0
static int read_idx_dict(const char *idx_filename, dict_t *d)
{
	FILE *fp; head_t h; 
	int i, j, len, tnum;
	char key[WLEN]; char trans_line[BUF_SIZE];
	char *p; int tlen;

	if(d == NULL)
		return FALSE;
	fp = fopen(idx_filename, "r");
	if(fp == NULL)
		return FALSE;

	fread(&h, sizeof(h), 1, fp);
	//DEBUG_PRINT0(h.header);
	printf("bin %d\n", h.nword);
	d->nword = h.nword;
	d->dict = (ditem_t *)malloc(sizeof(ditem_t) * d->nword);
	if(d->dict == NULL)
		return FALSE;
	
	for(i = 0; i < d->nword; i++){
		fread(&len, sizeof(len), 1, fp);
		fread(key, sizeof(char), len, fp);
		key[len] = '\0';
		set_key_word(&d->dict[i], key);
		
		fread(&tnum, sizeof(tnum), 1, fp);
		d->dict[i].trans_num = tnum;

		p = trans_line; tlen = 0;
		for(j = 0; j < tnum; j++){
			fread(&len, sizeof(len), 1, fp);
			fread(p, sizeof(char), len, fp);
			p[len] = '@'; 
			p += len; tlen += len;
		}
		trans_line[tlen] = '\0';
		set_trans(&d->dict[i], trans_line);
	}

	fclose(fp);

	return TRUE;
}