ansj中文分词器加载自定义crf教程

ansj中文分词器加载自定义crf教程

本教程参考https://github.com/NLPchina/ansj_seg/wiki,但在crf上始终无法读取,故自己重新整理。用的是ansj_seg-5.0.1-all-in-one.jar包,

前期用maven引入ansj_seg-5.1.6.jar,发现model.txt无法生成crf.model,不知什么原因。如有高手研究过,麻烦告知下。

步骤如下:

1.下载语料文件。https://github.com/NLPchina/ansj_seg/wiki中可下载。

2.生成train.txt:将ansj_seg-5.0.1-all-in-one.jar中的MakeTrainFile.class反编译后,修改inputPath和outputPath路径为本地路径即可。

inputPath:语料文件所在路径。

outputPath:训练文件输出路径。

3.下载CRF++-0.57,本人用的是Windows安装包测试的。Linux没测试。

下载后解压,在example目录下新建test文件夹,将下图的三个文件复制导test下

迁移后:

Pattern.txt为训练模板,内容如下:

# Unigram

U01:%x[-1,0]

U02:%x[0,0]

U03:%x[1,0]

U04:%x[-1,0]/%x[0,0]

U05:%x[0,0]/%x[1,0]

U06:%x[-1,0]/%x[1,0]

# Bigram

B

4.将train.txt文件移动到新建的test文件夹下

5.执行:crf_learn.exe pattern.txt train.txt model –t

目录下生成crf++的训练文件

6.加载训练文件代码如下:

踩坑整理:

1. https://github.com/NLPchina/ansj_seg/wiki中下载的语料文件太大,crf++训练时如果“停止工作”,那就把文件内容删除小下再进行以上步骤。

2.必须用ansj_seg-5.0.1-all-in-one.jar。

以上步骤都是在我踩坑的情况下整理的,测试没问题。下面有个小小的疑问。

存在疑问:

我想引用ansj_seg-5.1.6.jar生成crf.model,可是用下面方法生成的crf.model文件存在问题。希望技术大牛分享下原因。或者受累告知下用ansj_seg-5.1.6.jar生成crf.model。该死的求知欲。。。跪拜!!!!

你可能感兴趣的:(python)