用MeCab打造自己的分词器(三)

如何增量训练MeCab。

一、准备词典和分词后的语料。

词典的格式在第一次初始训练的时候已经讲过,是csv格式,以逗号隔开。形式如:

1123项,0,0,0,0,0,0
义演,0,0,0,0,0,0
佳酿,0,0,0,0,0,0
沿街,0,0,0,0,0,0
老理,0,0,0,0,0,0
三四十岁,0,0,0,0,0,0
解波,0,0,0,0,0,0
统建,0,0,0,0,0,0
蓓蕾,0,0,0,0,0,0
李佑生,0,0,0,0,0,0

 

按照相似的格式准备,我们要添加的词典,如:

期货,0,0,0,0,0,0

衍生品,0,0,0,0,0,0

上证指数,0,0,0,0,0,0

深发展,0,0,0,0,0,0

等等。语料的最终格式与词典相似,只是每行的行首是词,然后tab键或者空格隔开,后面是七个字段被逗号隔开。

例如:

大数据 n,n,BME,3,大数据,da_shu_ju,大數據
挖掘 v,vn,BE,2,挖掘,wa_jue,挖掘
工程师 n,n,BME,3,工程师,gong_cheng_shi,工程師
EOS
美团 n,nt,BE,2,美团,mei_tuan,美團
招聘 v,vn,BE,2,招聘,zhao_pin,招聘
机器 n,n,BE,2,机器,ji_qi,機器
学习 v,vn,BE,2,学习,xue_xi,學習
技术 n,n,BE,2,技术,ji_zhu,技術
专家 n,n,BE,2,专家,zhuan_jia,專家

EOS

如果该系统只有分词功能,后面的所有字段都是0。原始语料的每一段话在处理后的语料中由EOS隔开。

二、将准备好的字典,更新进原来的二进制字典中。

把上面准备的字典csv和训练语料train,拷贝进模型目录model_v0.1中。

执行下面命令/usr/local/libexec/mecab/mecab-dict-index -f utf8 -t utf8 -d model_v0.1 -o model_v0.1,该命令把model_v0.1目录下的csv格式文件读取然后转换更新二进制相关的文件。

三、利用新语料训练模型。

/usr/local/libexec/mecab/mecab-cost-train -M model_v0.1/model.def -d model_v0.1 model_v0.1/train new_model

-M指定原有模型的相关参数,new_model是新生成的模型文件名。训练时间跟语料大小相关。

四、新建一个目录用于新的模型和词典数据发布。

mkdir model_v0.2
/usr/local/libexec/mecab/mecab-dict-gen -d model_v0.1 -o model_v0.2 -m new_model

-d指定依赖的模型目录,-o新模型和数据的输出目录,-m new_model指定模型参数。在model_v0.2目录下多了几个文件:

model.def feature.def dicrc等等。

五、新建目录,用于发布的二进制词典和模型。

mkdir mecab_chinese_data_binary_v0.3

/usr/local/libexec/mecab/mecab-dict-index -f utf8 -t utf8 -d model_v0.2 -o model_binary_v0.2

mecab-dict-index命令在model_binary_v0.2下生成了5个二进制文件char.bin,matrix.bin,model.bin,sys.dic, unk.dic。但是还缺少一个dicrc才可使用,从model_v0.2下拷贝一个即可。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值