CRF技能词识别过程
最近在用CRF做未登录技能词识别,虽然艰难,但是感觉很爽,效率非常高。
(1)数据准备:
选取30000行精语料作为训练数据。每一个br作为一条数据。使用已有的技能词典对数据进行无标注分词。
(2)训练数据标注:
对分词后的语料进行标注。如果某分词结果在技能词典中,则该词作为技能词进行标注;如果某分词结果不在词典中,则该词作为与技能无关词进行标注。标注规则如下:
标注采用3列,4-tag方式标注:B:技能词开头字;M:技能词中间字;E:技能词结尾字;A:与技能词无关字。
(3)修改模板:
技能词查找仍属分词系列,故未修改模板。
(4)数据训练:
使用CRF++工具进行模板+训练文本的训练。
(5)测试数据准备:
采用与训练文本同样的方式进行标注。使用模板+测试文本进行测试。
(6)测试数据生成结果:
测试生成标注列与通过词典进行标注的结果进行比较,第一次测试5000条数据共有141471个特征,标注错误数为3750个,错误率为0.0265。
(7)技能词识别成果:
将测试数据中生成的B、M、E进行合成,组成技能词。新技能词采用人工过滤计算比例。
训练:
crf_learn -f 3 -c 4.0 template 4train_text.data yuanbin_crf_model
测试:
crf_test -m yuanbin_crf_model 4test_text.data >>yuanbin_crf_final
第一次训练(train:10w;test:all):
标注错误率:0.0166197028394
技能词识别数:11395
字典技能词识别率:0.32576
技能词整体识别率:((11395 * 0.32576) +(7683 * 0.522))/ 11395 = (3712 + 4011)/11395 =7722/11395 = 0.68
100000条数据共迭代852次,耗时1085.97s。
标注错误率:0.0258394960395
技能词整体识别率:(7683 * 0.85 + 1152 * 0.31)/ 7683 = (6530.55 + 357.12)/7683 =7722/7683 = 0.90
580000条数据共迭代999次,耗时2932s。
标注错误率:0.0137764605234
技能词整体识别率:7192* 0.79 + 1114 * 0.93)/ 7192 = (5681.68 + 1037)/7192 =6178.68/7192 = 0.86
技能词整体识别率:14873* 0.47 + 7040* 0.914)/ = (6990.31 + 6432)/14873=13422.31/14873=0.9024615
CRF技能词识别过程的更多相关文章
- CRF++地名实体识别(特征为词性和词)
http://x-algo.cn/index.php/2016/02/29/crf-name-entity-recognition/ 类似使用CRF实现分词和词性标注,地域识别也是需要生成相应的tag ...
- 机器学习&数据挖掘笔记_13(用htk完成简单的孤立词识别)
最近在看图模型中著名的HMM算法,对应的一些理论公式也能看懂个大概,就是不太明白怎样在一个具体的机器学习问题(比如分类,回归)中使用HMM,特别是一些有关状态变量.观察变量和实际问题中变量的对应关系, ...
- 基于HTK语音工具包进行孤立词识别的使用教程
选自:http://my.oschina.net/jamesju/blog/116151 1前言 最近一直在研究HTK语音识别工具包,前几天完成了工具包的安装编译和测试,这几天又按耐不住好奇,决定自己 ...
- [转]Kaldi命令词识别
转自: http://www.jianshu.com/p/5b19605792ab?utm_campaign=maleskine&utm_content=note&utm_medium ...
- 【文智背后的奥秘】系列篇——基于CRF的人名识别
版权声明:本文由文智原创文章,转载请注明出处: 文章原文链接:https://www.qcloud.com/community/article/133 来源:腾云阁 https://www.qclou ...
- 如何用kaldi做孤立词识别-初版
---------------------------------------------------------------------------------------------------- ...
- OpenCV开发笔记(五十五):红胖子8分钟带你深入了解Haar、LBP特征以及级联分类器识别过程(图文并茂+浅显易懂+程序源码)
若该文为原创文章,未经允许不得转载原博主博客地址:https://blog.csdn.net/qq21497936原博主博客导航:https://blog.csdn.net/qq21497936/ar ...
- yesno孤立词识别kaldi脚本
path.sh主要设定路径等 export KALDI_ROOT=`pwd`/../../.. [ -f $KALDI_ROOT/tools/env.sh ] && . $KALDI_ ...
- 使用TensorFlow 来实现一个简单的验证码识别过程
本文我们来用 TensorFlow 来实现一个深度学习模型,用来实现验证码识别的过程,这里识别的验证码是图形验证码,首先我们会用标注好的数据来训练一个模型,然后再用模型来实现这个验证码的识别. 1.验 ...
随机推荐
- __main() 和 main() 【转】
因为我们通常在BOOTLOADER中都已做好了比较细致的初始化工作,包括代码的搬运,所以我们最好别再调用库函数__main(),因为__main()作为ADS集成好的库函数,会对系统进行初始化设置,可 ...
- Laravel 中使用子域名(一个框架多项目)
1.本地虚拟域名为:www.test.com,子域名为admin.test.com 2.apache环境中,配置apache的httpd-vhost.conf文件 <VirtualHost *: ...
- (转).tar.gz文件和.rpm文件的区别
场景:在Linux环境下安装软件时候总是会遇到安装软件格式的选择,以及安装. 1 软件的二进制分发 Linux软件的二进制分发是指事先已经编译好二进制形式的软件包的发布形式, 其优点是安装使用容易,缺 ...
- 【D3】D3词汇表
按字母顺序 axis:数轴或坐标轴表示两个维度上数据尺度的直线 bar chart:条形图 (参见Excel)以矩形宽度反映数值大小的图表形式 bar:条形以宽度反映数值大小的矩形(rect) bin ...
- DDD理论学习系列(12)-- 仓储
DDD理论学习系列--案例及目录 1. 引言 DDD中Repository这个单词,主要有两种翻译:资源库和仓储,本文取仓储之译. 说到仓储,我们肯定就想到了仓库,仓库一般用来存放货物,而仓库一般由仓 ...
- Mybatis框架分析
摘要 本篇文章只是个人阅读mybatis源码总结的经验或者个人理解mybatis的基本轮廓,作为抛砖引玉的功能,希望对你有帮助,如果需要深入了解细节还需亲自去阅读源码. mybatis基本架构 myb ...
- 教你上传本地代码到github
最近想起学Git,并且注册了Github. 将新创建的本地代码上传到github上,这里简单的记录一下,我喜欢使用命令行,这里全用命令行来实现,不了解Git命令的可以去了解下. 第一步:建立git仓库 ...
- Vue项目搭建完整剖析全过程
Vue项目搭建完整剖析全过程 项目源码地址:https://github.com/ballyalex 有帮助的话就加个星星呗~! 项目技术栈:vue+webpack+bower+sass+axios ...
- Kafka 存储机制和副本
1.概述 Kafka 快速稳定的发展,得到越来越多开发者和使用者的青睐.它的流行得益于它底层的设计和操作简单,存储系统高效,以及充分利用磁盘顺序读写等特性,和其实时在线的业务场景.对于Kafka来说, ...
- 原生JS实现各种经典网页特效——Banner图滚动、选项卡切换、广告弹窗等
在制作网页过程中,我们可能会遇到各种常用的经典网页特效,比如Banner图片滚动.选项卡循环播放.右下角广告弹窗.评论提交展示.选项动态增删.剪刀石头布小游戏等等等...是不是感觉都见到过这些场景.那 ...