python CRF中文分词(crf++工具)

实验语料:人民日报数据、词典由训练语料生成

puk_training.txt:训练语料

puk_training_small.txt:训练语料(小)

pku_test.txt : 测试语料

pku_test_gold.txt:参考答案

 crf++工具链接:https://pan.baidu.com/s/1H7ZaifX0lvmfIpG74tLXOA 
提取码:2beq 

条件随机场(CRF)是给定一组输入随机变量条件下,另一组输出随机变量的条件概率分布模型。

以一组词性标注为例,给定输入X={我,喜欢,雷峰塔},那么输出为Y={名词,动词,名词}的概率应该为最大。输入序列X又称为观测序列,输出序列Y又称为状态序列。这个状态序列构成马尔可夫随机场,所以根据观测序列,得出状态序列的概率就包括,前一个状态转化为后一状态的概率和状态变量到观测变量的概率。

训练:

1、使用crf++工具,python将训练数据转换成crf++能处理的格式。训练数据是已经做了分词,文本类似于这样:

标记后,文本类似于这样:

#将训练语料标注成B M E S存储
def character_tagging(input_file,output_file):
    input_data = open(input_file,'r',encoding='UTF-8-sig')
    output_data = open(output_file,'w',encoding='UTF-8-sig')
    for line in input_data.readlines():
        word_list = line.strip().split()
        for word in word_list:
            if len(word)==1:
                output_data.write(word+'\tS\n')
            else:
                output_data.write(word[0]+'\tB\n')
                for
  • 1
    点赞
  • 37
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值