亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? lmodel.c

?? 隱馬爾科夫模型工具箱
?? C
?? 第 1 頁(yè) / 共 5 頁(yè)
字號(hào):
	 READ_FLOAT(src,&prob,FALSE);	 for (j=0; j<nSize; j++) {     /* read n-gram words */	    if (!GetSrcString(src,word,htkEsc))	       HError(15450,"LoadNGram: Unable to read word %d of %d-gram",j,nSize);	    if ((wdid[j] = GetNameId(lm->htab,word,FALSE))==NULL) {	       if (itran==NULL)		  HError(-15450, "LoadNGram: Word %s not in unigrams, skipping n-gram", word);	       hasOOV = TRUE;	    } else {	       ndx = LM_INDEX(wdid[j]);	    }	 } 	 SkipWhiteSpace(src);	 if (!src->wasNewline) {	    READ_FLOAT(src,&bowt,FALSE);	    has_bowt = TRUE;	 }      }      if (hasOOV) continue;      /* See if the context has changed */      for (newCTX=FALSE, j=0; j<nSize-1; j++) {	 if (keyid[j]!=wdid[j]) {	    newCTX=TRUE; break;	 }      }      /* Guaranteed to execute the first time through the loop because the context	 has not been seen before (thus defining fe, se etc) */      if (newCTX) {             /* new n-gram context */	 if (keyid[0]!=NULL) {  /* copy to permanent storage */	    StoreFEA(feptr,lm->heap); num_fe += feptr->nfe;	    StoreSEA(feptr,lm->heap); num_se += feptr->nse;	 }	 for (feptr = &(lm->root), j=0; j<nSize-1; j++) {	    if ((feptr = FindFE(feptr->fea, 0, feptr->nfe, LM_INDEX(wdid[j])))==NULL) {	       for (s=lnBuf,k=0; k<nSize; k++) {		  sprintf(s,"%s[%d] ",wdid[k]->name,LM_INDEX(wdid[k])); s+=strlen(s);	       }	       HError(15420, "LoadNGram: Cannot find component %d of (%d) %d-gram %s",		      j,i,nSize,lnBuf);	    }	    keyid[j] = wdid[j];	 }	 feptr->fea = fe = lm->fe_buff; feptr->nfe = 0;	 feptr->sea = se = lm->se_buff; feptr->nse = 0;      }      se->ndx = ndx;      switch(ptype) {         case LMP_FLOAT :	   se->prob = LOG10_TO_FLT(prob); break;         case LMP_LOG :#ifdef LM_COMPACT	   se->prob = Prob2Shrt(prob); break;#else	   se->prob = prob * scale; break;#endif         default:	   se->prob = prob; break;      }      se++; (feptr->nse)++;      if (has_bowt) {	 /* also store as full entry */	 fe->ndx = ndx;	 fe->nse = 0; fe->sea = NULL;	 fe->nfe = 0; fe->fea = NULL;	 switch(ptype) {	    case LMP_FLOAT :	      fe->bowt = LOG10_TO_FLT(bowt); break;	    case LMP_LOG :	      fe->bowt = bowt*scale; break;	    default :	      fe->bowt = bowt; break;	 }	 fe++; (feptr->nfe)++;      }   }   if (keyid[0]!=NULL) {  /* store the last accumulated */      StoreFEA(feptr,lm->heap); num_fe += feptr->nfe;      StoreSEA(feptr,lm->heap); num_se += feptr->nse;   }   /*      if (isBin) {        // read the last 2 zero bytes   //         ReadShort(src,&ndx,1,TRUE);      }   */   if (trace&T_LOAD) {      printf("  SMEntry: %8d x %2d bytes = %d bytes\n",	     num_se, sizeof(SMEntry), num_se*sizeof(SMEntry));      printf("  FLEntry: %8d x %2d bytes = %d bytes\n",	     num_fe, sizeof(FLEntry), num_fe*sizeof(FLEntry));   }   lm->gInfo[0].nEntry+=num_fe;   return num_se;}/* Create reverse lookup pointers in FLEntry context tree *//* Call with (lm->root, 0) and let it recurse its way down */void CreateReverseLookup(FLEntry *fes){   int i; /* loop counter */   for (i=0; i<fes->nfe; i++) {      fes->fea[i].parent = fes;      CreateReverseLookup(&(fes->fea[i]));   }}/* EXPORT-> ReadHeaderInfo: read header information *//* First parameter is source file, second is LM structure, and   third parameter is first input line or NULL to read from file */void ReadHeaderInfo(Source *src, BackOffLM *lm, char *line1){   float ff;   int i,j,n;   char *s,*s1,*s2=NULL;   DiscountType dt;   BackOffInfo *bo;   DiscountInfo *di;   char lnBuf[MAXSYMLEN],*sbuf;   lm->probType = LMP_FLOAT|LMP_LOG;   for (i=1; i<LM_NSIZE; i++)      lm->gInfo[i].boInfo = NULL;   while(line1 || GetInLine(src, lnBuf)) {      if (line1) {         strcpy(lnBuf, line1);         line1 = NULL; /* Read the rest from the file */      }      if ((s=strstr(lnBuf,"\\data\\"))!=NULL && s==lnBuf) {	 break;                   /* gone past header, so exit */      }      if (strcmp(lnBuf,"COUNTS")==0) {	lm->probType = LMP_COUNT; continue;      }      for (i=1; i<LM_NSIZE; i++) {   /* try each n-gram name in turn */	 if ((s=strstr(lnBuf,nGramName[i]))==NULL || s!=lnBuf)	    continue;	 bo = (BackOffInfo *) New(lm->heap,sizeof(BackOffInfo));	 di = &(bo->dcInfo);	 if (trace&T_LOAD)	    printf("Parsing %s header info\n",nGramName[i]);	 for (dt=DC_LAST,j=0; j<DC_LAST; j++) {	    if (strstr(lnBuf,dcTypeName[j])!=NULL) {	       dt = j; break;	    }	 }	 if (dt==DC_LAST)	    HError(15450,"LoadHeaderInfo: Unable to parse d-type in %s",lnBuf);	 bo->dcType = dt;	 if ((s1=strstr(lnBuf,"cutoff"))==NULL)	    HError(15450,"LoadHeaderInfo: Unable to find 'cutoff' in %s",lnBuf);	 if (sscanf(s1,"cutoff %d",&n)!=1)	    HError(15450,"LoadHeaderInfo: Unable to parse cutoff value in %s",lnBuf);	 bo->cutOff = n; bo->wdThresh = 0.0;	 if (!GetInLine(src,lnBuf))	    HError(15450,"LoadHeaderInfo: EOF reading d-coefs for %s",nGramName[i]);	 switch (dt) {	 case DC_KATZ:	   if ((s1 = strchr(lnBuf,'['))==NULL || (s2 = strchr(lnBuf,']'))==NULL)	     HError(15450,"LoadHeaderInfo: Unable to find array bounds in %s",lnBuf);	   *s2='\0'; sbuf = s2+1;	   di->tgInfo.kRange = n = atoi(s1+1);	   di->tgInfo.coef = (float *) New(lm->heap,(n+1)*sizeof(float));	   for (j=1; j<=n; j++) {	     s1 = strtok((j==1)?sbuf:NULL," \t\r\n:");	     if (s1==NULL)	       HError(15450,"LoadHeaderInfo: Unable to parse coef %d in %s",j,lnBuf);	     di->tgInfo.coef[j]=atof(s1);	   }	   break;	 case DC_ABSOLUTE:	   if ((s1=strstr(lnBuf,"coef:"))==NULL)	     HError(15450,"LoadHeaderInfo: Unable to find 'coef:' in %s",lnBuf);	   if (sscanf(s1,"coef: %f",&ff)!=1)	     HError(15450,"LoadHeaderInfo: Unable to parse float value in %s",s1);	   di->bCoef=ff;	   break;	 default :	   HError(15450,"LoadHeaderInfo: Unsupported LM type (%d)",dt);	   break;	 }	 lm->gInfo[i].boInfo = bo;      }   }}/* EXPORT-> WriteHeaderInfo: write header information */void WriteHeaderInfo(FILE *f, BackOffLM *lm){   int i,j;   BackOffInfo *bo;   DiscountInfo *di;   if (lm->probType==LMP_COUNT)      fprintf(f,"COUNTS\n\n");   for (i=2; i<=lm->nSize; i++) {      if ((bo = lm->gInfo[i].boInfo)==NULL)	 continue;      di = &(bo->dcInfo);      if (bo->wdThresh>0)	 fprintf(f, "%s: method %s, cutoff %d, wdThresh %.3f\n",		 nGramName[i], dcTypeName[bo->dcType], bo->cutOff, bo->wdThresh);      else	 fprintf(f, "%s: method %s, cutoff %d\n",		 nGramName[i], dcTypeName[bo->dcType], bo->cutOff);      switch (bo->dcType) {         case DC_KATZ :	    fprintf(f, "  coef[%d]:", di->tgInfo.kRange);	    for (j=1; j<=di->tgInfo.kRange; j++)	       fprintf(f," %.6f", di->tgInfo.coef[j]);	    fprintf(f,"\n");	    break;	 case DC_ABSOLUTE :	    fprintf(f, "  coef: %.6f\n", di->bCoef);	    break;	 case DC_LINEAR :	 default:            break;      }      fprintf(f, "\n");   }}/* ReadClassProbsHeader: read in word|class probabilities header */static void ReadClassProbsHeader(char *fname, int *nWords, Source *src, BackOffLM *lm){   char   line[MAXSYMLEN];   /* Current input line */   char  *ptr;               /* Temporary pointers */   *nWords = -1;   if (!src->f) {      /* Open file if necessary */      if (InitSource(fname, src, LangModFilter)!=SUCCESS) {         HError(15410, "ReadClassProbsHeader: Unable to open language model word|class file '%s'", fname);      }   }   strcpy(line, "");   GetInLine(src, line);   if (strncmp(line, "Word|Class probabilities", 25)==0) {      lm->classCounts = FALSE;   }   else if (strncmp(line, "Word|Class counts", 17)==0) {      lm->classCounts = TRUE;   }   else {      HError(15450, "ReadClassProbsHeader: Language model word|class file is in unknown format");   }   if (trace & T_LOAD) {      printf("Word|class file uses word %s\n", lm->classCounts?"counts":"probabilities");   }   while (GetInLine(src, line)) {      if (strncmp(line, "Number of classes", 17)==0) {         ptr = strchr(line, ':');         if (!ptr) {            HError(15450, "ReadClassProbsHeader: Corrupt 'Number of classes' line in word|class file");         }         ptr++;         while (*ptr==' ' || *ptr=='\t') ptr++;         if (trace & T_LOAD) {            printf("Number of classes = %d\n", atoi(ptr));         }      }      else if (strncmp(line, "Number of words", 15)==0) {         ptr = strchr(line, ':');         if (!ptr) {            HError(15450, "ReadClassProbsHeader: Corrupt 'Number of words' line in word|class file");         }         ptr++;         while (*ptr==' ' || *ptr=='\t') ptr++;         *nWords = atoi(ptr);         if (trace & T_LOAD) {            printf("Number of words = %d\n", *nWords);         }      }      else if ((strncmp(line, "Word", 4)==0) || (strncmp(line, "Class", 5)==0)) {         break;      }   }   if (feof(src->f)) {      HError(15450, "ReadClassProbsHeader: Word|Class language model file contains no %s", lm->classCounts?"counts":"probabilities");   }   if (*nWords == -1) {      HError(15450, "ReadClassProbsHeader: Failed to find number of words header in word|class file");   }}/* ReadClassCounts: read in word|class counts file */static void ReadClassCounts(Source *src, int nWords, BackOffLM *lm){   char   line[MAXSYMLEN];   /* Current input line */   char  *ptr, *ptr2;        /* Temporary pointers */   int    i;                 /* Loop counter */   WordProb *wordProb;       /* Temporary pointer */   int    loop=1;            /* Array index counter */   NameId nid, nid2;         /* Word ids */   int    class_id=0;        /* Number classes from 0 */   int    floor_count = 0;   /* Number of counts floored */   /* Add labels and wordlist entries for words */   for (i=0; i<nWords; i++) {      ptr = GetInLine(src, line);      if (!ptr || strlen(ptr)==0) {         HError(15450, "ReadClassCounts: Blank line/end of file in word|class language model file");      }      /* Segment line into word, class and count */      /* Don't use strtok() in case a client program is using it */      ptr2 = ptr + strcspn(ptr, " \t"); /* Find end of word */      *ptr2 = '\0';      /* Get name ID */      nid = GetNameId(lm->classH, ptr, TRUE);      /* Find class name */      ptr = ptr2 + 1; /* Pass over NULL */      ptr += strspn(ptr, " \t"); /* Skip whitespace */      ptr2 = ptr + strcspn(ptr, " \t"); /* Find end of class name */      *ptr2 = '\0';      nid2 = GetNameId(lm->htab, ptr, TRUE); /* Get name id of class */      class_id = atoi(ptr+5) - 1; /* assume called CLASSn */ /* GLM */      nid2->ptr = (void*) class_id;      ptr = ptr2 + 1; /* Pass over NULL */      ptr += strspn(ptr, " \t"); /* Skip over whitespace */      lm->word[i] = atoi(ptr); /* Store word count */      if (lm->word[i]<=0) {         floor_count++;         lm->word[i] = 1; /* Force zero counts to 1 in order to avoid 0 probabilities */         if (floor_count==5)            HError(-15450, "ReadClassCounts: too many floored counts to list");         else if (floor_count<5)            HError(-15450, "ReadClassCounts: flooring zero count to one for '%s'", nid->name);      }      /* Create structure storing word|class probability and class of word */      wordProb = New(&gcheap, sizeof(WordProb));      wordProb->class = nid2;      wordProb->prob = 0; /* we haven't calculated this yet */      wordProb->id = i;      nid->ptr = wordProb; /* Point word name id here */      /* Set up binMap equivalent */      lm->classBM[loop] = nid;      LM_INDEX(nid) = -i; /* assign negative indices (copied code) */      loop++;   }   /* Check for left over lines */   while (GetInLine(src, line)) {      if (strlen(line)>0) {         HError(15450, "ReadClassCounts: Extraneous line on end of Word|Class probabilities file\n('%s')", line);      }   }   if (floor_count)      HError(-15450, "ReadClassCounts: a total of %d counts were floored", floor_count);}/* CountClassTotals: calculate class count totals for LM */static void CountClassTotals(BackOffLM *lm){   register int i; /* Loop counter */   int word_id, class_id;   lm->totals = New(&gcheap, lm->vocSize * sizeof(int));   for (i=0; i<lm->vocSize; i++) {      lm->totals[i] = 0;   }   for (i=0; i<(lm->classW); i++) {      word_id = ((WordProb*)(lm->classBM[i+1]->ptr))->id;      if (word_id!=i) HError(15490, "CountClassTotals: Inconsistent word ids found");      class_id = (int)(((WordProb*)(lm->classBM[i+1]->ptr))->class->ptr);      lm->totals[class_id] += lm->word[i];   }}/* CalcWordClassProbs: calculate initial/static word|class probabilities */static void CalcWordClassProbs(BackOffLM *lm){   int i; /* loop counter */   int class_id;   double prob=0;   /* For each word */   for (i=0; i<lm->classW; i++) {      class_id = (int)(((WordProb*)(lm->classBM[i+1]->ptr))->class->ptr);      prob = (((double)(lm->word[i]))) / ((double)(lm->totals[class_id]));      ((WordProb*)(lm->classBM[i+1]->ptr))->prob = LOG_NATURAL(prob);   }}/* ReadClassProbs: read in word|class probabilities file */static void ReadClassProbs(Source *src, int nWords, BackOffLM *lm){   char   line[MAXSYMLEN];   /* Current input line */   char  *ptr, *ptr2;        /* Temporary pointers */   int    i;                 /* Loop counter */   WordProb *wordProb;       /* Temporary pointer */   int loop=1;   NameId nid, nid2;   /* Add labels and wordlist entries for words */   for (i=0; i<nWords; i++) {      ptr = GetInLine(src, line);      if (!ptr || strlen(ptr)==0) {         HError(15450, "ReadClassProbs: Blank line/end of file in word|class language model file");      }      /* Segment line into word, class and log probability */      /* We could use strtok(), but I can't be sure that this isn't being         used elsewhere wrapped around this call, so I won't! */      ptr2 = ptr + strcspn(ptr, " \t"); /* Find end of word */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩视频在线观看| 视频一区二区国产| 国产精品视频一区二区三区不卡| 精品久久国产97色综合| 日韩精品一区二区在线| 欧美一级免费观看| 欧美一区二区人人喊爽| 日韩欧美亚洲一区二区| 精品久久免费看| 精品精品国产高清a毛片牛牛| 日韩一区二区三区免费看| 91精品国产欧美一区二区| 日韩一区二区电影网| 欧美α欧美αv大片| 久久你懂得1024| 国产精品久线在线观看| 一区二区三区欧美视频| 亚洲一区二区成人在线观看| 爽爽淫人综合网网站| 麻豆精品在线视频| 国产成人日日夜夜| 91美女片黄在线| 欧美精品乱人伦久久久久久| 欧美成人vps| 久久久一区二区三区| 国产精品福利av| 亚洲老司机在线| 免费看日韩精品| 国产成人精品免费一区二区| 色婷婷一区二区| 91精品免费观看| 国产色综合一区| 伊人开心综合网| 精品中文字幕一区二区小辣椒| 国产精品白丝jk黑袜喷水| 94-欧美-setu| 日韩午夜在线播放| 国产精品青草久久| 亚洲成av人影院| 国产91精品一区二区麻豆亚洲| 色综合天天视频在线观看| 在线不卡中文字幕播放| 国产日韩v精品一区二区| 亚洲一区二区三区三| 精品一区二区三区视频| 日本久久精品电影| 精品国产一区二区三区久久影院| 亚洲人精品午夜| 久久99久久久欧美国产| 91视频免费看| 欧美成人a∨高清免费观看| 日韩码欧中文字| 久久成人免费网| 欧美午夜电影一区| 国产欧美视频一区二区| 亚洲成人av电影| 成人高清在线视频| 日韩免费看的电影| 亚洲与欧洲av电影| 大桥未久av一区二区三区中文| 欧美精品久久久久久久多人混战| 奇米四色…亚洲| 色婷婷激情久久| 国产色一区二区| 热久久免费视频| 在线看一区二区| 国产精品美女一区二区在线观看| 日韩不卡一二三区| 在线一区二区三区四区五区| 国产亚洲视频系列| 麻豆91免费观看| 欧美亚洲精品一区| 亚洲三级视频在线观看| 国产精品18久久久久久久久| 欧美丰满美乳xxx高潮www| 亚洲精品国产精华液| 国产成人av电影| 欧美一级一级性生活免费录像| 一区二区三区在线免费视频| 国产91在线观看| 久久久综合视频| 久久精品国产精品青草| 欧美美女视频在线观看| 一区在线中文字幕| 国产.欧美.日韩| 久久日一线二线三线suv| 免费美女久久99| 日韩欧美在线观看一区二区三区| 亚洲午夜久久久久久久久久久| 色哟哟一区二区| 中文字幕亚洲不卡| 成人中文字幕电影| 久久久久久久免费视频了| 国产尤物一区二区在线| 欧美一区二区福利视频| 亚洲成年人影院| 欧美日本国产一区| 无码av免费一区二区三区试看| 欧美性videosxxxxx| 国产美女久久久久| 精品国产伦一区二区三区免费| 免费在线看成人av| 欧美mv日韩mv国产网站app| 免费观看30秒视频久久| 日韩视频免费观看高清完整版 | 欧美日韩成人在线一区| 亚洲一区av在线| 欧美日韩中文字幕一区二区| 亚洲成人综合在线| 6080日韩午夜伦伦午夜伦| 午夜激情久久久| 欧美一区二区三区系列电影| 蜜桃一区二区三区在线| 精品裸体舞一区二区三区| 国精产品一区一区三区mba桃花| 精品国产乱码久久久久久浪潮 | 国产在线观看一区二区| 精品国产麻豆免费人成网站| 国产高清视频一区| 亚洲欧洲三级电影| 欧美性大战久久久| 青娱乐精品视频| 久久综合色综合88| 99视频一区二区| 亚洲免费视频中文字幕| 欧美日韩国产色站一区二区三区| 欧美aaaaa成人免费观看视频| 日韩一区二区三区在线视频| 国产精品伊人色| 综合精品久久久| 欧美浪妇xxxx高跟鞋交| 另类的小说在线视频另类成人小视频在线 | 国产成人亚洲精品狼色在线| 中文字幕一区二区三区精华液| 欧美亚洲动漫制服丝袜| 麻豆成人综合网| 国产精品久久久久影视| 欧美日韩一区二区不卡| 美脚の诱脚舐め脚责91| 国产精品久线在线观看| 欧美日韩精品专区| 国产91综合一区在线观看| 有坂深雪av一区二区精品| 日韩欧美另类在线| 成人国产精品视频| 日韩福利电影在线观看| 国产精品天美传媒沈樵| 欧美久久久久久蜜桃| 成人伦理片在线| 天天操天天综合网| 国产精品日韩成人| 884aa四虎影成人精品一区| 国产成人精品在线看| 午夜影院在线观看欧美| 国产天堂亚洲国产碰碰| 在线播放国产精品二区一二区四区| 国产一区久久久| 午夜亚洲福利老司机| 国产精品私人影院| 欧美一卡二卡三卡四卡| 91香蕉视频黄| 国产伦精品一区二区三区免费迷| 亚洲一区二区三区中文字幕在线| 精品国产成人系列| 欧美猛男超大videosgay| 成人精品视频网站| 日韩国产精品91| 亚洲激情图片qvod| 国产视频一区不卡| 日韩精品综合一本久道在线视频| 91免费看`日韩一区二区| 久99久精品视频免费观看| 亚洲国产一区在线观看| 国产精品人妖ts系列视频| 精品国产乱码久久久久久久久| 欧美撒尿777hd撒尿| 成人免费视频一区| 国产麻豆视频一区二区| 日韩不卡一区二区三区| 亚洲一区二区三区小说| 中文字幕一区二区在线观看| 久久嫩草精品久久久久| 日韩你懂的电影在线观看| 欧美精品亚洲一区二区在线播放| 91在线看国产| 成a人片亚洲日本久久| 国内成人免费视频| 美脚の诱脚舐め脚责91| 午夜久久久久久久久久一区二区| 成人欧美一区二区三区白人| 国产欧美精品一区二区三区四区| 欧美tk丨vk视频| 日韩欧美一区二区视频| 欧美丰满一区二区免费视频| 欧美日韩激情一区二区| 91成人在线观看喷潮| 色综合久久66| 色诱视频网站一区| 日本精品一区二区三区高清 | 成人动漫视频在线|