基于 CRF 的中文命名实体识别模型实现

本文详述了使用条件随机场(CRF)实现中文命名实体识别的过程,包括环境配置、语料预处理、模型初始化、训练及测试,并提供了实验结果和源代码链接。
摘要由CSDN通过智能技术生成

CRF即条件随机场在前面的博客中提到过,这次做一个实验“基于 CRF 的中文命名实体识别模型实现”,首先需要掌握的是了解实体识别,这在前面的“知识图谱每日阅读(二)”中有详细介绍,条件随机场在知识图谱每日阅读(三)”中有详细介绍,需要更深入了解可以读一些条件随机场的论文。

下面开始进行“基于 CRF 的中文命名实体识别模型实现”的实验:

一、环境支持:

python3.6

sklearn_crfsuite 库 ——使用pip install sklearn_crfsuite安装

本人使用的pycharm编辑器,直接在命令行中运行也可以。

二、实验步骤:

1、语料预处理

语料使用的是《人民日报》1980年1月份的,在文末github上可下载。

语料库词性标记中,对应的实体词依次为 t(时间)、nr(人名)、ns(地名)、nt(机构团体)。对语料需要做以下处理:

(1)将语料全角字符统一转为半角;(在自然语言处理过程中,全角、半角的的不一致会导致信息抽取不一致,因此需要统一。)

全角字符unicode编码从65281~65374 (十六进制 0xFF01 ~ 0xFF5E)
半角字符unicode编码从33~126 (十六进制 0x21~ 0x7E)

(2)合并语料库分开标注的姓和名,例如:温/nr 家宝/nr;

(3)合并语料库中括号中的大粒度词,例如:[国家/n 环保局/n]nt;

(4)合并语料库分开标注的时间,例如:(/w 一九九七年/t 十二月/t 三十一日/t )/w。

代码实现:

1.引入需要用到的库

import re
import sklearn_crfsuite
from sklearn_crfsuite import metrics
from sklearn.externals import joblib

re模块主要是正则表达式,负责匹配查找等。

sklearn_crfsuite主要是训练模型等。

metrics包为序列分类任务提供了一些有用的度量,像F1分数等。

joblib包用于将训练的模型加载和保存。

2.创建CorpusProcess类用于语料预处理:

class CorpusProce
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值