int main(int argc, char * argv[]) { if (argc < 2) { std::cerr << "cws [model path] [lexicon_file]" << std::endl; return 1; } void * engine = 0; if (argc == 2) { engine = segmentor_create_segmentor(argv[1]); } else if (argc == 3) { engine = segmentor_create_segmentor(argv[1], argv[2]); } if (!engine) { return -1; } std::vector<std::string> words; const char * suite[2] = { "What's wrong with you? 别灰心! http://t.cn/zQz0Rn", "台北真的是天子骄子吗?",}; for (int i = 0; i < 2; ++ i) { words.clear(); int len = segmentor_segment(engine, suite[i], words); for (int i = 0; i < len; ++ i) { std::cout << words[i]; if (i+1 == len) std::cout <<std::endl; else std::cout<< "|"; } } segmentor_release_segmentor(engine); return 0; }
void load_with_lexicon(const std::string& model_path, const std::string& lexicon_path) { if (model == NULL) { model = segmentor_create_segmentor(model_path.c_str(), lexicon_path.c_str()); } else { std::cerr << "Segmentor: Model reloaded!" << std::endl; } }
JNIEXPORT jint JNICALL Java_edu_hit_ir_ltp4j_Segmentor_create__Ljava_lang_String_2 (JNIEnv* env, jobject obj, jstring model_path) { const char* str = env->GetStringUTFChars( model_path , 0); if(!segmentor){ segmentor = segmentor_create_segmentor(str); } else{ segmentor_release_segmentor(segmentor); segmentor = segmentor_create_segmentor(str); } env->ReleaseStringUTFChars( model_path, str); if(segmentor) { return 1; } return -1; }
int main(int argc, char * argv[]) { if (argc < 2) { std::cerr << "cws [model path] [lexicon_file]" << std::endl; return 1; } void * engine = 0; if (argc == 2) { engine = segmentor_create_segmentor(argv[1]); } else if (argc == 3) { engine = segmentor_create_segmentor(argv[1], argv[2]); } if (!engine) { return -1; } std::vector<std::string> words; std::string sentence; std::cerr << "TRACE: Model is loaded" << std::endl; double tm = get_time(); while (std::getline(std::cin, sentence, '\n')) { words.clear(); if (sentence.size() == 0) { continue; } int len = segmentor_segment(engine, sentence, words); for (int i = 0; i < len; ++ i) { std::cout << words[i]; if (i+1 == len) std::cout <<std::endl; else std::cout<< "\t"; } } segmentor_release_segmentor(engine); tm = get_time() - tm; std::cerr << "TRACE: cws-tm-consume " << tm << " seconds." << std::endl; return 0; }
int LTPResource::LoadSegmentorResource(const char* model_file, const char* lexicon) { if (m_isSegmentorResourceLoaded) { return 0; } INFO_LOG("Loading segmentor model from \"%s\", \"%s\" ...", model_file, lexicon); m_segmentor = segmentor_create_segmentor(model_file, lexicon); if (0 == m_segmentor) { ERROR_LOG("Failed to load segmentor model"); return -1; } m_isSegmentorResourceLoaded = true; INFO_LOG("segmentor model is loaded."); return 0; }
// function wrapper of segmentor_create_segmentor int LTPResource::LoadSegmentorResource(const char * model_file) { // resource has be loaded. if (m_isSegmentorResourceLoaded) { return 0; } TRACE_LOG("Loading segmentor model from \"%s\" ...", model_file); m_segmentor = segmentor_create_segmentor(model_file); if (0 == m_segmentor) { ERROR_LOG("Failed to load segmentor model"); return -1; } m_isSegmentorResourceLoaded = true; TRACE_LOG("segmentor model is loaded."); return 0; }