我是靠谱客的博主 踏实白开水,最近开发中收集的这篇文章主要介绍用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下拷贝一个即可。

最后

以上就是踏实白开水为你收集整理的用MeCab打造自己的分词器(三)的全部内容,希望文章能够帮你解决用MeCab打造自己的分词器(三)所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(38)

评论列表共有 0 条评论

立即
投稿
返回
顶部