void cut_input (char *DICT_PATH, char *HMM_PATH, char *USER_DICT) { char *s; Jieba handle = NewJieba (DICT_PATH, HMM_PATH, USER_DICT); setlocale (LC_ALL, ""); printf ("Chinese word segmentation\n=========================\n\n"); while (s = getstr ()) { if (strcmp (s, "EOF") == 0) { free (s); printf ("bye\n"); break; } else { size_t len = strlen (s); CJiebaWord* words = Cut (handle, s, len); CJiebaWord* x; for (x = words; x && x->word; x++) { /* printf ("%*.*s/", x->len, x->len, x->word); */ printf ("%d ", x->len / CJIEBA_WCHAR_SIZE); } printf ("\n"); free (s); FreeWords (words); } } FreeJieba (handle); }
void CutDemo() { printf("CutDemo:\n"); static const char* DICT_PATH = "./dict/jieba.dict.utf8"; static const char* HMM_PATH = "./dict/hmm_model.utf8"; static const char* USER_DICT = "./dict/user.dict.utf8"; // init will take a few seconds to load dicts. Jieba handle = NewJieba(DICT_PATH, HMM_PATH, USER_DICT); char** words = Cut(handle, "南京市长江大桥"); char** x = words; while (x && *x) { printf("%s\n", *x); x++; } FreeWords(words); FreeJieba(handle); }