使用CRF++进行分词的原理和实现过程
2016-06-22 20:58
204 查看
使用CRF分词的原理和实现过程
目前业内分词效果最好的是CRF模型,而CRF++是CRF实现的比较成熟的工具,下面是用CRF++做分词的过程。
1.使用4-tags标记,对训练语料做预处理
分别用B代表词首,E代表词尾,M代表词中,S代表单字词。然后使用python将训练语料中的词处理成CRF输入的格式。
如句子:海內外 關注 的 一九九七 年 七月 一 日 終於 來到 。
处理为:
海 B
內 M
外 E
關 B
注 E
的 S
一 B
九 M
九 M
七 E
年 S
七 B
月 E
一 S
日 S
終 B
於 E
來 B
到 E
。 S
2.定义模版文件template。
# Unigram
U00:%x[-2,0]
U01:%x[-1,0]
U02:%x[0,0]
U03:%x[1,0]
U04:%x[2,0]
U05:%x[-2,0]/%x[-1,0]/%x[0,0]
U06:%x[-1,0]/%x[0,0]/%x[1,0]
U07:%x[0,0]/%x[1,0]/%x[2,0]
U08:%x[-1,0]/%x[0,0]
U09:%x[0,0]/%x[1,0]
# Bigram
B
3.使用crf_learn训练出model.
crf_learn -f 3 -c 4.0 template traindata/traincrf.data crf_model
训练出的模型文件为crf_model.
4.使用crf_learn对测试文件进行结果预测
crf_test -m crf_model testdata/testcrf.data > testresult/testcrf.result
预测的结果保存在testcrf.result中,最后一行为预测的结果。
目前业内分词效果最好的是CRF模型,而CRF++是CRF实现的比较成熟的工具,下面是用CRF++做分词的过程。
1.使用4-tags标记,对训练语料做预处理
分别用B代表词首,E代表词尾,M代表词中,S代表单字词。然后使用python将训练语料中的词处理成CRF输入的格式。
如句子:海內外 關注 的 一九九七 年 七月 一 日 終於 來到 。
处理为:
海 B
內 M
外 E
關 B
注 E
的 S
一 B
九 M
九 M
七 E
年 S
七 B
月 E
一 S
日 S
終 B
於 E
來 B
到 E
。 S
2.定义模版文件template。
# Unigram
U00:%x[-2,0]
U01:%x[-1,0]
U02:%x[0,0]
U03:%x[1,0]
U04:%x[2,0]
U05:%x[-2,0]/%x[-1,0]/%x[0,0]
U06:%x[-1,0]/%x[0,0]/%x[1,0]
U07:%x[0,0]/%x[1,0]/%x[2,0]
U08:%x[-1,0]/%x[0,0]
U09:%x[0,0]/%x[1,0]
# Bigram
B
3.使用crf_learn训练出model.
crf_learn -f 3 -c 4.0 template traindata/traincrf.data crf_model
训练出的模型文件为crf_model.
4.使用crf_learn对测试文件进行结果预测
crf_test -m crf_model testdata/testcrf.data > testresult/testcrf.result
预测的结果保存在testcrf.result中,最后一行为预测的结果。
相关文章推荐
- 使用spark和spark mllib进行股票预测
- 基于语法树的语句识别算法
- 【观点】2016年度十大互联网产品预言
- 2010年天灾预测年度报告简表
- 基于神经网络的预测模型
- 2008年11月【51CTO版】软考考前冲刺预测卷
- 独立思考者模型:识别媒体与砖家的谎言
- 长期招聘:自然语言处理工程师
- 长期招聘:个性化推荐
- 大盘分析
- LDA学习心得
- comodo中国招聘 搜索与自然语言工程师
- 统计学习的几种方法
- 灰色系统模型GM(1,1)的R语言实现
- 2045的世界?吓人...!!
- mini edit distance & minimum cost alignment
- 最大熵模型介绍
- 知道得越多,越难改变观点
- 数学之美 系列一 -- 统计语言模型