Windows下CRF++ 分词实践及Python分词效果评测

实践参照博文:中文分词入门之字标注法4

步骤如下:
1. 下载 CRF++-0.58.tar.gz, 解压到 C:\path\crf++-0.58 下
2. 用 SWIG 工具得到 _CRFPP.pyd,CRFPP.py 两个文件。参见本博:Windows 7 x64系统安装CRFsuite给Python使用
3. 创建 模板文件 tmpl.txt 如下:

# Unigram
U00:%x[-2,0]
U01:%x[-1,0]
U02:%x[0,0]
U03:%x[1,0]
U04:%x[2,0]
U05:%x[-1,0]/%x[0,0]
U06:%x[0,0]/%x[1,0]

U10:%x[-2,1]
U11:%x[-1,1]
U12:%x[0,1]q
U13:%x[1,1]
U14:%x[2,1]
U15:%x[-2,1]/%x[-1,1]
U16:%x[-1,1]/%x[0,1]
U17:%x[0,1]/%x[1,1]
U18:%x[1,1]/%x[2,1]

U20:%x[-2,1]/%x[-1,1]/%x[0,1]
U21:%x[-1,1]/%x[0,1]/%x[1,1]
U22:%x[0,1]/%x[1,1]/%x[2,1]

# Bigram
B

4. 编译 crf_learn.exe,crf_test.exe,或下载 CRF++-0.58.zip
5. 从 Bakeoff 2005 下载训练及测试语料 icwb2-data
6. 将需要用到的文件复制到同一目录
7. 用下列代码将训练语料转换成crf++需要的格式,python make_crf_train_data.py pku_train.utf8 pku_training_out.utf8
make_crf_train_data.py 代码:

# coding: utf-8
'''
  make_crf_train_data.py
    得到CRF++要求的格式的训练文件
    用法:命令行--python make_crf_train_data.py input_file output_file
    4 tags for character tagging: B(Begin), E(End), M(Middle), S(Single)
'''
import codecs
import sys

def character_tagging(input_file, output_file):
    '''
      将输入文件内容进行标注输出到 output_file
    '''
    input_data = codecs.open(input_file, 'r', 'utf-8')
    output_data = codecs.open(output_file, 'w', 'utf-8')
    for line in input_data.readlines():
        word_list = line.strip().split()
        for word in word_list:
            if len(word) == 1:
                output_data.write(word + " S\n")
            else:
                output_data.write(word[
  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值