Esempio n. 1
0
File: ne.cpp Progetto: humem/cabocha
bool NE::open(const Param &param) {
  close();

  if (action_mode() == PARSING_MODE) {
    const std::string filename = param.get<std::string>("ne-model");
    std::vector<const char*> argv;
    argv.push_back(param.program_name());
    argv.push_back("-m");
    argv.push_back(filename.c_str());
    model_ = crfpp_model_new(argv.size(),
                              const_cast<char **>(&argv[0]));
    // CHECK_FALSE(tagger_) << crfpp_strerror(tagger_);
    // CHECK_FALSE(crfpp_ysize(tagger_) >= 2);
    // CHECK_FALSE(crfpp_xsize(tagger_) == 3);
    // for (size_t i = 0; i < crfpp_ysize(tagger_); ++i) {
    //   const char *p = crfpp_yname(tagger_, i);
    //   CHECK_FALSE(p && (p[0] == 'B' || p[0] == 'I' || p[0] == 'O'));
    // }
  }

  // "名詞,数,"
  ne_composite_ipa_   ="\xE5\x90\x8D\xE8\xA9\x9E,\xE6\x95\xB0,";
  // "名詞,数詞"
  ne_composite_juman_ = "\xE5\x90\x8D\xE8\xA9\x9E,\xE6\x95\xB0\xE8\xA9\x9E,";
  // "名詞,数詞"
  ne_composite_unidic_ = "\xE5\x90\x8D\xE8\xA9\x9E,\xE6\x95\xB0\xE8\xA9\x9E,";

  Iconv iconv;
  iconv.open(UTF8, charset());
  CHECK_DIE(iconv.convert(&ne_composite_ipa_));
  CHECK_DIE(iconv.convert(&ne_composite_juman_));
  CHECK_DIE(iconv.convert(&ne_composite_unidic_));
  CHECK_FALSE(!ne_composite_ipa_.empty());
  CHECK_FALSE(!ne_composite_juman_.empty());
  CHECK_FALSE(!ne_composite_unidic_.empty());

  return true;
}