void mecab2njd(NJD * njd, char **feature, int size) { int i; NJDNode *node; for (i = 0; i < size; i++) { node = (NJDNode *) calloc(1, sizeof(NJDNode)); NJDNode_initialize(node); NJDNode_load(node, feature[i]); NJD_push_node(njd, node); } }
void NJD_load_from_fp(NJD * njd, FILE * fp) { NJDNode *node = NULL; char string[MAXBUFLEN]; char pos[MAXBUFLEN]; char pos_group1[MAXBUFLEN]; char pos_group2[MAXBUFLEN]; char pos_group3[MAXBUFLEN]; char ctype[MAXBUFLEN]; char cform[MAXBUFLEN]; char orig[MAXBUFLEN]; char read[MAXBUFLEN]; char pron[MAXBUFLEN]; char acc[MAXBUFLEN]; char mora_size[MAXBUFLEN]; char chain_rule[MAXBUFLEN]; char chain_flag[MAXBUFLEN]; if (fp == NULL) { fprintf(stderr, "WARNING: NJD_load_from_fp() in njd.c: File pointer should not be null."); return; } while (1) { get_token_from_fp(fp, string, ','); if (get_token_from_fp(fp, pos, ',') <= 0) break; if (get_token_from_fp(fp, pos_group1, ',') <= 0) break; if (get_token_from_fp(fp, pos_group2, ',') <= 0) break; if (get_token_from_fp(fp, pos_group3, ',') <= 0) break; if (get_token_from_fp(fp, ctype, ',') <= 0) break; if (get_token_from_fp(fp, cform, ',') <= 0) break; get_token_from_fp(fp, orig, ','); get_token_from_fp(fp, read, ','); get_token_from_fp(fp, pron, ','); if (get_token_from_fp(fp, acc, '/') <= 0) break; if (get_token_from_fp(fp, mora_size, ',') <= 0) break; get_token_from_fp(fp, chain_rule, ','); if (get_token_from_fp(fp, chain_flag, ',') <= 0) break; node = (NJDNode *) calloc(1, sizeof(NJDNode)); NJDNode_initialize(node); NJDNode_set_string(node, string); NJDNode_set_pos(node, pos); NJDNode_set_pos_group1(node, pos_group1); NJDNode_set_pos_group2(node, pos_group2); NJDNode_set_pos_group3(node, pos_group3); NJDNode_set_ctype(node, ctype); NJDNode_set_cform(node, cform); NJDNode_set_orig(node, orig); NJDNode_set_read(node, read); NJDNode_set_pron(node, pron); NJDNode_set_acc(node, atoi(acc)); NJDNode_set_mora_size(node, atoi(mora_size)); NJDNode_set_chain_rule(node, chain_rule); NJDNode_set_chain_flag(node, atoi(chain_flag)); NJD_push_node(njd, node); } }
void NJD_load(NJD * njd, char *str) { int i = 0; NJDNode *node = NULL; char string[MAXBUFLEN]; char pos[MAXBUFLEN]; char pos_group1[MAXBUFLEN]; char pos_group2[MAXBUFLEN]; char pos_group3[MAXBUFLEN]; char ctype[MAXBUFLEN]; char cform[MAXBUFLEN]; char orig[MAXBUFLEN]; char read[MAXBUFLEN]; char pron[MAXBUFLEN]; char acc[MAXBUFLEN]; char mora_size[MAXBUFLEN]; char chain_rule[MAXBUFLEN]; char chain_flag[MAXBUFLEN]; if (strlen(str) < 1) { fprintf(stderr, "WARNING: NJD_load() in njd.c: Input string should not be empty."); return; } while (1) { get_token_from_string(str, &i, string, ','); if (get_token_from_string(str, &i, pos, ',') <= 0) break; if (get_token_from_string(str, &i, pos_group1, ',') <= 0) break; if (get_token_from_string(str, &i, pos_group2, ',') <= 0) break; if (get_token_from_string(str, &i, pos_group3, ',') <= 0) break; if (get_token_from_string(str, &i, ctype, ',') <= 0) break; if (get_token_from_string(str, &i, cform, ',') <= 0) break; get_token_from_string(str, &i, orig, ','); get_token_from_string(str, &i, read, ','); get_token_from_string(str, &i, pron, ','); if (get_token_from_string(str, &i, acc, '/') <= 0) break; if (get_token_from_string(str, &i, mora_size, ',') <= 0) break; get_token_from_string(str, &i, chain_rule, ','); if (get_token_from_string(str, &i, chain_flag, ',') <= 0) break; node = (NJDNode *) calloc(1, sizeof(NJDNode)); NJDNode_initialize(node); NJDNode_set_string(node, string); NJDNode_set_pos(node, pos); NJDNode_set_pos_group1(node, pos_group1); NJDNode_set_pos_group2(node, pos_group2); NJDNode_set_pos_group3(node, pos_group3); NJDNode_set_ctype(node, ctype); NJDNode_set_cform(node, cform); NJDNode_set_orig(node, orig); NJDNode_set_read(node, read); NJDNode_set_pron(node, pron); NJDNode_set_acc(node, atoi(acc)); NJDNode_set_mora_size(node, atoi(mora_size)); NJDNode_set_chain_rule(node, chain_rule); NJDNode_set_chain_flag(node, atoi(chain_flag)); NJD_push_node(njd, node); } }