Exemplo n.º 1
0
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;
}
Exemplo n.º 2
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;
}
Exemplo n.º 3
0
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;
}
Exemplo n.º 4
0
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;
}
Exemplo n.º 5
0
JNIEXPORT void JNICALL Java_edu_hit_ir_ltp4j_Segmentor_release
  (JNIEnv* env, jobject obj) {
  segmentor_release_segmentor(segmentor);
  segmentor = NULL;
}
Exemplo n.º 6
0
 void release() {
   if (model != NULL) {
     segmentor_release_segmentor(model);
     model = NULL;
   }
 }