可训练的中文分词和词性标注系统


采用机器学习的方法进行自然语言处理,对中文进行分词和词性标注。分词采用crf模型,词性标注用hmm模型,解码算法为Vertibi算法。本系统使用java语言编写
资源截图
代码片段和文件信息
#include 
#include “crfpp.h“

// c++ -O3 example.cpp -lcrfpp

int main(int argc char **argv) {

  // -v 3: access deep information like alphabetaprob
  // -nN: enable nbest output. N should be >= 2
  CRFPP::Tagger *tagger =
    CRFPP::createTagger(“-m model -v 3 -n2“);

  if (!tagger) {
    std::cerr << CRFPP::getTaggerError() << std::endl;
    return -1;
  }

  // clear internal context
  tagger->clear();

  // add context
  tagger->add(“Confidence NN“);
  tagger->add(“in IN“);
  tagger->add(“the DT“);
  tagger->add(“pound NN“);
  tagger->add(“is VBZ“);
  tagger->add(“widely RB“);
  tagger->add(“expected VBN“);
  tagger->add(“to TO“);
  tagger->add(“take VB“);
  tagger->add(“another DT“);
  tagger->add(“sharp JJ“);
  tagger->add(“dive NN“);
  tagger->add(“if IN“);
  tagger->add(“trade NN“);
  tagger->add(“figures NNS“);
  tagger->add(“for IN“);
  tagger->add(“September NNP“);

  std::cout << “column size: “ << tagger->xsize() << std::endl;
  std::cout << “token size: “ << tagger->size() << std::endl;
  std::cout << “tag size: “ << tagger->ysize() << std::endl;

  std::cout << “tagset information:“ << std::endl;
  for (size_t i = 0; i < tagger->ysize(); ++i) {
    std::cout << “tag “ << i << “ “ << tagger->yname(i) << std::endl;
  }

  // parse and change internal stated as ‘parsed‘
  if (! tagger->parse()) return -1;

  std::cout << “conditional prob=“ << tagger->prob()
            << “ log(Z)=“ << tagger->Z() << std::endl;

  for (size_t i = 0; i < tagger->size(); ++i) {
    for (size_t j = 0; j < tagger->xsize(); ++j) {
      std::cout << tagger->x(i j) << ‘ ‘;
    }
    std::cout << tagger->y2(i) << ‘ ‘;
    std::cout << std::endl;

    std::cout << “Details“;
    for (size_t j = 0; j < tagger->ysize(); ++j) {
      std::cout << ‘ ‘ << tagger->yname(j) << “/prob=“ << tagger->prob(ij)
                << “/alpha=“ << tagger->alpha(i j)
                << “/beta=“ << tagger->beta(i j);
    }
    std::cout << std::endl;
  }

  // when -n20 is specified you can access nbest outputs
  std::cout << “nbest outputs:“ << std::endl;
  for (size_t n = 0; n < 10; ++n) {
    if (! tagger->next()) break;
    std::cout << “nbest n=“ << n << “ conditional prob=“ << tagger->prob() << std::endl;
    // you can access any information using tagger->y()...
  }
  std::cout << “Done“ << std::endl;
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        301  2010-11-12 12:48  nlu_project.classpath

     文件        387  2010-11-12 12:48  nlu_project.project

     文件        629  2010-11-12 12:48  nlu_project.settingsorg.eclipse.jdt.core.prefs

     文件       4637  2010-12-14 16:52  nlu_projectinconvertorInputConvertor.class

     文件       3810  2010-12-14 16:52  nlu_projectinconvertorOutputConvertor.class

     文件       2731  2010-12-14 16:52  nlu_projectinconvertorTestFileConvertor.class

     文件       2230  2010-12-14 16:52  nlu_projectinexecuteexecute.class

     文件       3467  2010-12-14 16:52  nlu_projectinorglangkit aggercliEvaluate$EvalHandler.class

     文件       4122  2010-12-14 16:52  nlu_projectinorglangkit aggercliEvaluate.class

     文件       4743  2010-12-14 16:52  nlu_projectinorglangkit aggercliTag.class

     文件       4013  2010-12-14 16:52  nlu_projectinorglangkit aggercliTrain$TrainHandler.class

     文件       5347  2010-12-14 16:52  nlu_projectinorglangkit aggercliTrain.class

     文件       3989  2010-12-14 16:52  nlu_projectinorglangkit aggercorpusBrownCorpusReader.class

     文件       1885  2010-12-14 16:52  nlu_projectinorglangkit aggercorpusCorpusReader.class

     文件       1346  2010-12-14 16:52  nlu_projectinorglangkit aggercorpusCorpusReaderException$CorpusReadError.class

     文件        928  2010-12-14 16:52  nlu_projectinorglangkit aggercorpusCorpusReaderException.class

     文件        308  2010-12-14 16:52  nlu_projectinorglangkit aggercorpusCorpusSentenceHandler.class

     文件        623  2010-12-14 16:52  nlu_projectinorglangkit aggercorpusTaggedWord.class

     文件       1343  2010-12-14 16:52  nlu_projectinorglangkit aggerdataBiGram.class

     文件       1897  2010-12-14 16:52  nlu_projectinorglangkit aggerdataModel$NGrams.class

     文件       6306  2010-12-14 16:52  nlu_projectinorglangkit aggerdataModel.class

     文件       1517  2010-12-14 16:52  nlu_projectinorglangkit aggerdataTriGram.class

     文件        954  2010-12-14 16:52  nlu_projectinorglangkit aggerdataUniGram.class

     文件       1500  2010-12-14 16:52  nlu_projectinorglangkit aggerdatautilProbEntryComparator.class

     文件        201  2010-12-14 16:52  nlu_projectinorglangkit aggerlanguagemodelLanguageModel.class

     文件       4622  2010-12-14 16:52  nlu_projectinorglangkit aggerlanguagemodelLinearInterpolationLM.class

     文件       1880  2010-12-14 16:52  nlu_projectinorglangkit agger aggerHMMTagger$Sequence.class

     文件        857  2010-12-14 16:52  nlu_projectinorglangkit agger aggerHMMTagger$TagMatrixEntry.class

     文件       5748  2010-12-14 16:52  nlu_projectinorglangkit agger aggerHMMTagger.class

     文件       3820  2010-12-14 16:52  nlu_projectinorglangkit aggerwordhandlerKnownWordHandler.class

............此处省略139个文件信息

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。

发表评论

评论列表(条)