系列文章目录

Python深度学习-NLP实战:深度学习系列培训教程

  1. Linux服务器软件的简单使用
  2. Linux命令的简单使用
  3. 训练集、测试集、验证集的介绍及制作
  4. 字向量的训练与生成
  5. 文本分类之SVM模型的简单使用
  6. 文本分类之FASTTEXT实现中文文本分类
  7. 命名实体识别(NER)之分词与序列标注、实体识别任务简介

前言

命名实体识别(Named Entity Recognition, NER)是信息抽取和信息检索中的一项重要任务,其目的是识别出文本中表示命名实体的成分,并对其进行分类。[1]而命名实体主要指文档中的人名、地名、机构名、时间等名词实体。

[1] 刘浏,王东波.命名实体识别研究综述[J].情报学报,2018,37(03):329-340.

分词与序列标注

任务简介

我们先从了解什么是分词和序列标注开始。
分词就是找到字符串中每个词语的开头与结尾。
序列标注就是输入一段字符串,输出字符串中每个字符对应的序列。
通过序列标注完成分词, 即把一个字符,是词的开头、结尾、还是中间部分给标出来。
例如,我一定要当上海贼王,如果分词分为 我/一定要/当/上海/贼王(举个栗子)
对应的序列就应该是(以字为单位,下文将该格式称为token格式):

我 S
一 B
定 I
要 E
当 S
上 B
海 E
贼 B
王 E

序列标注的标记集可以任意命名,这里我们选择的标记集是 {B, I, E, S}。
其中,B代表词语开头, I代表词语中间, E代表词语结尾,S代表单字。
后期涉及到实体标注时,也可以在标记中添加后缀用来区分不同实体,如:

{B-FD,I-FD,E-FD,S-FD,B-OT,I-OT,E-OT,S-OT,O}

其中,FD和OT代表两类不同的实体,O表示非实体。
我们想实现的就是将一段字符串输入模型中,模型会将每个字符的标记以token格式的文件输出,这样我们就知道怎么分词了(当然还要看模型的效果)。
比如: 输入“我一定要当上海贼王”,模型输出标记顺序为 “SBESBEBIE ”,我们就可以得知,这个字符串应该分词为“我/一定/要/当上/海贼王”。

训练集与测试集

接下来要学习使用的模型的训练集和测试集都需要处理成token格式,如下:
(模型训练格式是自己定义的,这里的规定是我们实验室用的代码里规定的)

制作语料注意:
① 以句末符号(句号、问号、感叹号、省略号等)作为切分标志,并随机打乱句子顺序。
② token格式中每句话间换一行,保证输入模型的单个长度不会过长引起崩坏!
③ 要保证语料中的每句话内都要以“单字\t标记\n”的形式,不能有一个为空值!

模型测试结果(以CRF为例)

模型经过训练后,可以测试模型效果,输出日志文件如下:

我们以前一列为标准,如果后一列和前一列标的完全一样,那么机器序列标注的正确率就是100%,如果有不一样的地方,则代表正确率下降。

实体识别

实体识别模型训练测试与序列标注类似,不多赘述,语料部分展示如下:
使用“<fd></fd>”标注食品与诱因实体,使用“<ot></ot>”标注时间与地点实体。


个人建议:为制作token语料方便,可以编写程序将标签换成符号如“【】”和“{}”。


为了将语料转化为可供模型训练的token格式,我们定义了9 位标记集:

{B-FD,I-FD,E-FD,S-FD,B-OT,I-OT,E-OT,S-OT,O}

对两类实体进行标记,各标记含义如下:

标记 含义
B-FD 食品与诱因实体起始字
I-FD 食品与诱因实体中间字
E-FD 食品与诱因实体结束字
S-FD 食品与诱因实体单字
B-OT 时间与地点实体起始字
I-OT 时间与地点实体中间字
E-OT 时间与地点实体结束字
S-OT 时间与地点实体单字
O 非实体字

例如:
食品与诱因实体中的“地沟油”,标记为:

地 B-FD
沟 I-FD
油 E-FD

由单字构成的实体“锶”,标记为:

锶 S-FD

时间与地点实体中的“北京”,标记为:

北 B-OT
京 E-OT

写在最后

【学习交流】
WX:WL1498544910

【文末小宣传】
----博主自己开发的小程序,希望大家点赞支持一下,谢谢!-----

Python深度学习-NLP实战:命名实体识别(NER)之分词与序列标注、实体识别任务简介相关推荐

  1. Python深度学习-NLP实战:字向量的训练与生成

    系列文章目录 Python深度学习-NLP实战:深度学习系列培训教程 Linux服务器软件的简单使用 Linux命令的简单使用 训练集.测试集.验证集的介绍及制作 字向量的训练与生成 文本分类之SVM ...

  2. Python深度学习企业实战之TensorFlow的底层原理及安装

    (一)TensorFlow 的底层原理 TensorFlow 是一个用于训练深度学习模型的强大开源软件库,由 Google Brain 小组推出. 基本原理是定义一个用来计算的图(可以简称为计算图), ...

  3. 深度学习(三十八)初识DL在自然语言序列标注中的应用-未完待续

    初识DL在自然语言中的应用 原文地址: 作者: 一.自然语言序列标注 虽然之前自己对于HMM.CRF.Word2vec.Attention机制.Encode-Decode等,在自然语言领域的应用已经比 ...

  4. Python深度学习之循环神经网络的高级用法

    Deep Learning with Python 这篇文章是我学习<Deep Learning with Python>(第二版,François Chollet 著) 时写的系列笔记之 ...

  5. 【论文笔记】《基于深度学习的中文命名实体识别研究》阅读笔记

    作者及其单位:北京邮电大学,张俊遥,2019年6月,硕士论文 摘要 实验数据:来源于网络公开的新闻文本数据:用随机欠采样和过采样的方法解决分类不均衡问题:使用BIO格式的标签识别5类命名实体,标注11 ...

  6. 【重磅干货】Python、机器学习、深度学习算法实战和应用必备书籍

    [导读]首先祝大家中秋佳节快乐,乘此良辰美景,今天就给大家发一波福利干货!本文给大家分享机器学习.深度学习算法实战和应用必备的4本"宝藏"书.具体书籍展示如下:(文末提供下载方式! ...

  7. 深度学习项目实战(一):猫狗识别

    深度学习项目实战(一):猫狗识别 文章目录 深度学习项目实战(一):猫狗识别 项目背景: 数据读取: 网络架构 卷积神经网络训练 项目背景: 猫狗识别是卷积神经网络的入门实战案例,目的在于计算机可以识 ...

  8. Python深度学习实战:声呐返回值分类

    Python深度学习实战:声呐返回值分类 声呐物体分类数据 简单的神经网络 预处理数据以增加性能 调整模型的拓扑和神经元 缩小网络 扩大网络 总结 本章我们使用Keras开发一个二分类网络.本章包括: ...

  9. Python深度学习实战:多类花朵分类

    Python深度学习实战:多类花朵分类 鸢尾花分类数据集 导入库和函数 指定随机数种子 导入数据 输出变量编码 设计神经网络 用K折交叉检验测试模型 总结 本章我们使用Keras为多类分类开发并验证一 ...

最新文章

  1. C# WINFORM 打包数据库
  2. 用户操作计算机系统的基本工具是什么,在Windows支持下,用户操作计算机系统的基本工具是______。...
  3. 让理科生沉默,让文科生落泪的文史综合题
  4. C#与数据库访问技术总结(十七)
  5. Python2.x 和 Python3.x,如何选择?
  6. 都是写需求,高手和菜鸟为何差别这么大?
  7. 在LINQPad中征服ASP.NET Boilerplate查询性能
  8. [Python] L1-022. 奇偶分家-PAT团体程序设计天梯赛GPLT
  9. android传感器_Android传感器
  10. springMVC简易学习笔记三(文件上传与异常处理)
  11. 悬镜安全在RSAC2022上斩获Global InfoSec Awards四项大奖
  12. 在FTP服务器上搜索指定文件
  13. Spring的事务传播机制
  14. git commit后回退方法
  15. Excel画的图复制到Word中变形的解决办法
  16. 计算机应届生理论知识面试,计算机应届生面试技巧
  17. 从0开始学c语言-总结01-c语言的粗略认识和快捷键
  18. ExoPlayer官方中文使用文档
  19. Flask-Login 让实现登录功能变简单
  20. Freeline的快速集成

热门文章

  1. GIS当中使用uDig打开shp图层,并查看数据结果
  2. w计算机二级word单选题,2017全国计算机二级MS-Office选择题题库大全.pdf
  3. TXT杀手最终标题版本下载
  4. 同一个项目能否有相同类名的类注入JavaBean里面?
  5. POI 实现分页 Excel 表格的基本逻辑
  6. matlab分数怎么表示,matlab如何将分数和人名写入excel的某一列中
  7. 基于 java 使用 POI 操作 excel 导出限制某些单元格可编辑和单元格下拉列表有效性
  8. 基于opencv的家居智能安防机器视觉系统
  9. 华为C8650刷回官方ROM
  10. Layui日期选择器+两个日期之间天数计算