用CRF作命名实体识别(二)
用CRF作命名实体识别(三)
用BILSTM-CRF作命名实体识别html
博客园的markdown格式可能不太方便看,也欢迎你们去个人简书里看markdown
本文主要讲述了关于人民日报标注语料的预处理,利用CRF++工具包对模型进行训练以及测试工具
- 明确咱们的标注任务
- 语料和工具
- 数据预处理
1.数听说明
2.数据预处理- 模型训练及测试
1.流程
2.标注集
3.特征模板
4.CRF++包的使用说明- 总结与展望
这篇文章主要是介绍用CRF模型去提取人民日报语料的时间、人物、地点及组织机构名,也就是提取TIME、PERSON、LOCATION、ORGANIZATION四种实体。训练咱们直接使用CRF++工具包。学习
人民日报1998中文标注语料库
CRF++安装包测试
首先打开下载的人民日报标注语料的文件,要转为utf-8格式。咱们须要提取的实体是时间、人名、地名、组织机构名,根据语料库的词性标记说明,对应的词性分别为/t、/nr、/ns、/nt。code
语料库里的姓名标注是将姓和名分开标注的,所以须要合并姓名htm
合并姓名前: '19980101-01-001-002/m中共中央/nt总书记/n、/w国家/n主席/n江/nr某某/nr' 合并姓名后: '19980101-01-001-002/m中共中央/nt总书记/n、/w国家/n主席/n江某某/nr'
须要将中括号里的内容合并blog
合并中括号前: '[中国/ns 政府/n]nt 顺利/ad 恢复/v 对/p 香港/ns 行使/v 主权/n ,/w ' 合并中括号后: '中国政府nt顺利/ad恢复/v对/p香港/ns行使/v主权/n,/w'
时间合并utf-8
合并时间前: '1999年/t 12月/t 澳门/ns 的/u 回归/vn 必定/d 可以/v 顺利/ad 实现/v 。/w' 合并时间后: '1999年12月/t澳门/ns的/u回归/vn必定/d可以/v顺利/ad实现/v。/w'
全角字符统一转为半角字符
人民日报语料有些地方不是两个空格的,例如11042行 '副教授/n 叹/Vg 道/v ,/w 成/v', 中的“叹/Vg” 和“道/v”之间是单空格,须要变成双空格。不然代码运行会报错get
用的是BMEWO作标注体系
B表明实体的首部,M表明实体的中部,E表明实体的尾部,W表明单个的实体,O表明非实体
新 O 世 O 纪 O — O — O 一 B_TIME 九 M_TIME 九 M_TIME 八 M_TIME 年 E_TIME 新 B_TIME 年 E_TIME 讲 O 话 O ( O 附 O 图 O 片 O 1 O 张 O ) O 中 B_ORGANIZATION 共 M_ORGANIZATION 中 M_ORGANIZATION 央 E_ORGANIZATION 总 O 书 O 记 O
# 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
敲入如下代码,这即是开始训练模型
crf_learn -a MIRA template train.data model
扬 B 帆 B 远 B 东 B 作 B 与 B 中 B 国 B 合 B 做 B 的 B 先 B 行 B 希 B 腊 B 的 B 经 B 济 B 结 B 构 B 较 B 特 B 殊 B 。 B
crf_test -m model test.data >> output.txt
扬 B O 帆 B O 远 B O 东 B O 作 B O 与 B O 中 B B_LOCATION 国 B E_LOCATION 合 B O 做 B O 的 B O 先 B O 行 B O 希 B B_LOCATION 腊 B E_LOCATION 的 B O 经 B O 济 B O 结 B O 构 B O 较 B O 特 B O 殊 B O 。 B O
如今仅仅只是粗暴的把这个流程实现了一遍,测试的效果并非很好,有部分的人名没有识别出来,还须要再添加特征,以及更改template特征模板,这些还在学习。CRF的原理也不是很懂,也须要去完整的学习一下。后续还会更新
欢迎扫码关注