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 LTPResource::ReleaseSegmentorResource() { if (!m_isSegmentorResourceLoaded) { return; } segmentor_release_segmentor(m_segmentor); INFO_LOG("segmentor model is released."); m_segmentor = 0; m_isSegmentorResourceLoaded = false; }
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; }
JNIEXPORT void JNICALL Java_edu_hit_ir_ltp4j_Segmentor_release (JNIEnv* env, jobject obj) { segmentor_release_segmentor(segmentor); segmentor = NULL; }
void release() { if (model != NULL) { segmentor_release_segmentor(model); model = NULL; } }