00001 00017 /* 00018 * Copyright (c) 1991-2006 Kawahara Lab., Kyoto University 00019 * Copyright (c) 2000-2005 Shikano Lab., Nara Institute of Science and Technology 00020 * Copyright (c) 2005-2006 Julius project team, Nagoya Institute of Technology 00021 * All rights reserved 00022 */ 00023 00024 #include <sent/stddefs.h> 00025 #include <sent/ngram2.h> 00026 00032 NGRAM_INFO * 00033 ngram_info_new() 00034 { 00035 NGRAM_INFO *new; 00036 00037 new = (NGRAM_INFO *)mymalloc(sizeof(NGRAM_INFO)); 00038 00039 return(new); 00040 } 00041 00047 void 00048 ngram_info_free(NGRAM_INFO *ndata) 00049 { 00050 /* bin test only */ 00051 /* free word names */ 00052 if (ndata->from_bin) { 00053 free(ndata->wname[0]); 00054 free(ndata->wname); 00055 } else { 00056 WORD_ID w; 00057 for(w=0;w<ndata->max_word_num;w++) { 00058 free(ndata->wname[w]); 00059 } 00060 free(ndata->wname); 00061 } 00062 /* free 1-gram */ 00063 free(ndata->p); 00064 free(ndata->bo_wt_lr); 00065 free(ndata->bo_wt_rl); 00066 free(ndata->n2_bgn); 00067 free(ndata->n2_num); 00068 /* free 2-gram */ 00069 free(ndata->n2tonid); 00070 free(ndata->p_lr); 00071 free(ndata->p_rl); 00072 switch(ndata->version) { 00073 case 3: 00074 free(ndata->bo_wt_rrl); 00075 free(ndata->n3_bgn); 00076 free(ndata->n3_num); 00077 break; 00078 case 4: 00079 free(ndata->n2bo_upper); 00080 free(ndata->n2bo_lower); 00081 free(ndata->bo_wt_rrl); 00082 free(ndata->n3_bgn_upper); 00083 free(ndata->n3_bgn_lower); 00084 free(ndata->n3_num); 00085 break; 00086 } 00087 /* free 3-gram */ 00088 free(ndata->n3tonid); 00089 free(ndata->p_rrl); 00090 /* free index tree */ 00091 free_ptree(ndata->root); 00092 /* free whole */ 00093 free(ndata); 00094 } 00095