中文三元组联合标注工具LAnn介绍

  • 摘要
  • 1. 安装部署
  • 2. 标注界面
  • 3. 使用方法
    • 3.1 配置实体类型和关系类型
      • 配置实体类型
      • 配置关系类型
      • 配置按键映射(如需要)
    • 3.2 导入文件
    • 3.3 开始标注
    • 3.4 保存
  • 4. 快捷键
  • 5. 辅助标注
  • 6. 标注结果格式
  • 7. 结语

摘要

目前,现有的领域三元组数据集并不多,为了更好地支持中文领域三元组数据集的构建,设计并实现了一个中文三元组联合标注的开源工具LAnn(Little Annotator),目前已经迭代多个版本并开源于GitHub上。LAnn标注工具基于浏览器运行,可快速部署和使用,基本不用配置,快速上手;界面简约,标注过程、结果直观;支持各种快捷键和辅助标注模型的加成;标注结果易后处理。可只用于NER标注,也可以适当修改,用于POS标注(实体类型设置为POS)或者分词标注(设置特殊实体类型“词语”)。本文主要介绍了该工具的主要功能和使用方法。

1. 安装部署

试一试吧

基本功能的使用只需要把GitHub项目文件下载下来,用浏览器打开LittleAnn.html文件即可。
导入项目文件夹中的diction.dic词典后,再导入test.txt测试文本,可以实现部分辅助标注。

2. 标注界面

LAnn界面可以视为“上中下右”布局,如上图所示。每个区域的主要功能为:

  • 顶部区域

    • 当前标注的文件名
    • 当前标注进度
  • 中心区域
    • 标注的主要区域
  • 底部区域
    • 左右跳转页面
    • 中间显示当前选中字符的相关信息
  • 右方区域
    • 导入文件
    • 跳转指定页面
    • 字符的增删
    • 实体标注和取消标注
    • 保存标注文件
    • 终端信息

3. 使用方法

3.1 配置实体类型和关系类型

配置实体类型

在entity_type.js文件中配置实体类型和所显示的颜色,配置格式为:“实体名称”:“颜色”。目前最多支持26种实体类型的定义,选择快捷键分别对应与[0-9,a-z]

配置关系类型

在relation_type.js文件中配置关系类型和所显示的颜色,配置格式为:“关系名称”:“颜色”。目前最多支持26种关系类型的定义,选择快捷键分别对应与[0-9,a-z]

配置按键映射(如需要)

在keybind.js文件中配置按键。

3.2 导入文件

LAnn可以支持打开纯文本文件、已标注过的.lann文件和.dic词典文件,会自动判断并添加必要的数据。

3.3 开始标注

标注命名实体:鼠标左键单击某个字符,会自动选择相邻两个字符进行命名实体标注,自动跳出实体类型选择页面;或者鼠标左键按住拖动选中命名实体,然后释放左键进行命名实体的标注,同样会自动弹出实体选择界面,选择对应实体类型即完成命名实体的标注;以及后面的键盘快捷标注方式
标注实体关系:接连点击两个标注好的命名实体时,会弹出关系选择界面,选择相应的关系即可标注三元组(e1,Relation,e2);或者采用后面的键盘快捷标注方式。

三元组的标注还支持跨页面,相应的三元组显示也会改变。

也许在标注一个三元组后,你会发现鼠标选中文本的操作很困难,标注命名实体还需要鼠标点来点去;还需要自己选择实体范围、实体类型、关系类型,效率很低,请耐心继续往下看。

3.4 保存

在标注完成之后,点击右方区域的“保存语料”按键,会下载一个以lann为扩展名的结果文件,并且这个结果文件名中包含当前的标注进度,如果标注进度在最后一页,则默认在文件名前面添加一个“x”号。
有时候语料文件页数较多,为了将已经标注过的部分导出制作数据集,可以勾选右方区域上部分的“截断保存”,即截断到已标注的部分进行保存,再点击“保存语料”按键,同样会下载一个以lann为扩展名的结果文件,并且结果文件名中包含“cutted“的关键词。
“保存语料”按键的左边是“保存词条”按键,用于保存之前导入的词条与本次所标注的新词条,会下载一个以dic为扩展名的词条文件或者称为字典文件。

4. 快捷键

为了提高标注效率,基本所有常用的鼠标操作均对应有键盘操作,同时设计了许多标注快捷键。主要有:
类vim操作模式:

- 使用hjkl移动光标
- wer快速在命名实体块间移动光标
- nb翻页
- v或者空格键选中字符
- ux增删字符
- p标注三元组(等同于鼠标点击命名实体块)

快速操作:

- s标注命名实体
- 实体类型或者关系类型界面支持数字键选择[0-9,a-z]
- 类型选择界面中,空格键默认选择服务器辅助标注模型提供的结果
- a取消当前标注过的命名实体(含有该实体的三元组会自动丢弃)
- 连续点击同一个命名实体会将其锁定,在多个三元组含有同一个头实体时比较方便
- 未选中文本时,按下s或点击实体按钮,会自动选取当前两个字符作为选中文本并进行实体标注

实用功能:

- 右方区域有截断保存勾选框,选上后保存时只保存截止到当前页面已经标注过的结果
- 按下x删除字符后,再按u,类似于撤销操作,不过字符的标签无法复原
- LAnn在保存时会检查字符、标签的长度是否相等,来检查数据完整性
- LAnn会检查三元组和NER标签的对应情况,并尽可能的修正
- 可以通过按下数字键输入数字,下部区域同时会显示- 回车会跳转到输入数字对应的页面- ctl+g会跳转到输入数字对应的字符

5. 辅助标注

人工标注效率非常低,辅助标注是很有必要的。目前,LAnn标注工具设计了两种辅助标注方式:基于编辑距离算法和基于后台深度网络模型的辅助标注;后期计划采用PyQt的方式,同时支持纯前段和PyQt两种方式,基于PyQt的程序计划加入预训练BERT模型,辅助标注模型直接在线训练。

在没有标注服务器的情况下,LAnn标注工具默认采用编辑距离算法进行实体分类和关系分类,基于词语匹配进行序列标注,它会记录你标注过的实体、三元组,并存为相应的词条。在标注超过3个命名实体后,LAnn会根据已有的词条进行实体类型的预测;标注超过5个三元组后,LAnn会根据已有的三元组进行关系类型的预测;同时可以使用界面右方区域辅助标注选项,基于匹配的方式进行序列标注,方便使用w、e、r键快速移动。因此在标注前建议先导入词典,并且这种辅助方式比较简便,预测精确性也还尚可。

得到一定数据后,可以训练一些基于深度网络模型的辅助标注模型。根据标注的流程,可以有三类模型:

 a. 命名实体序列标注模型b. 实体分类模型c. 关系分类模型d. 三元组提取模型(研究中)

可以根据自己的情况训练和部署辅助标注模型,加快标注速率。

6. 标注结果格式

在标注结果文件(.lann)中,每行为一个字符,包含三列,每列用”\t“隔开,分别对应字符域、实体关系域和三元组域。词典文件(.dic)为副产品,不需要太关注其格式。

- 字符域:为统一格式和方便预览,原始文本的换行符“\n”用“_换行符_”代替。
- 实体关系域:采用BIO标注方式。
- 三元组域:包含相同S的三元组都记录在S首字符那一行,三元组之间采用“;”相隔,方便分割;SPO的头尾实体和关系用“>”相隔。不构成三元组的字符该域为“X”。 只使用前两个域即为NER数据集。

一个标注结果的例子如下图所示:

7. 结语

本文介绍了LAnn中文三元组联合标注工具、配置及使用方法,该工具主要关注于三元组的联合标注,具有部署快速,上手容易等特点(自卖自夸)。经过几个版本的迭代后,程序基本没有大的Bug,后续还要针对标注数据质量的评估和提升展开研究和开发。

中文三元组联合标注工具LAnn介绍相关推荐

  1. 常用NLP标注工具简单介绍

    NLP标注工具 YEDDA:(2016)(python)(可以在windows上装) 优点是安装方便,程序很小,标注方便,如果要实现给同一个实体加多个标签,也可以实现.最大标签数8,界面也还过的去. ...

  2. 2019常用NLP标注工具简单介绍

    NLP标注工具: YEDDA:(2016)(python)(可以在windows上装) 优点是安装方便,程序很小,标注方便,如果要实现给同一个实体加多个标签,也可以实现.最大标签数8,界面也还过的去. ...

  3. 怎样构建中文文本标注工具?(附工具、代码、论文等资源)

    来源:Paperweekly 本文长度为2218字,建议阅读4分钟 本文为你介绍中文文本标注工具的构建方法,并提供多个开源文本标注工具. 项目地址: https://github.com/crownp ...

  4. 构想:中文文本标注工具(内附多个开源文本标注工具)

    ■ 项目地址 | https://github.com/crownpku/Chinese-Annotator 自然语言处理的大部分任务是监督学习问题.序列标注问题如中文分词.命名实体识别,分类问题如关 ...

  5. 首个中文全词类知识库-百科知识树 开源啦!搭配开源标注工具,一招搞定知识关联!...

    近年来,深度学习技术已广泛应用于NLP领域,但实际应用效果往往受限于缺乏大规模高质量监督样本.2018年底,预训练语言模型横空出世,极大缓解了这个问题,通过「超大规模无监督语料上的预训练语言模型+相对 ...

  6. 深度学习数据集标注工具、图像语料数据库等资源

    NLP+VS︱深度学习数据集标注工具.图像语料数据库.实验室搜索ing... 2017年02月07日 12:12:01 阅读数:27032 ~~因为不太会使用opencv.matlab工具,所以在找一 ...

  7. NLP+VS︱深度学习数据集标注工具、图像语料数据库、实验室搜索ing..

    一.NLP标注工具 来源:<构想:中文文本标注工具(附开源文本标注工具列表)> Chinese-Annotator   来源:https://github.com/crownpku/Chi ...

  8. NLP+VS︱深度学习数据集标注工具、图像语料数据库、实验室搜索ing....

    from: https://blog.csdn.net/sinat_26917383/article/details/54908389 一.NLP标注工具 来源:<构想:中文文本标注工具(附开源 ...

  9. NLP标注工具Brat

    https://www.cnblogs.com/xiaoqi/p/brat-config.html [文本标注]文本标注工具brat的使用 2019常用NLP标注工具简单介绍 NLP标注工具: YED ...

  10. 【NLP数据训练】文本标注工具推荐

    对于自然语言处理技术的研究一直是AI领域的重点方向,而NLP训练中的首要条件是具备结构化训练数据对数据模型进行训练. 因此,对文本数据进行标注就成为在对自然语言处理算法进行研究之前需要解决的一个重要问 ...

最新文章

  1. 连接池和协程池为何能提升并发能力?
  2. 侧边栏qq客服对话显示
  3. leetcode50. Pow(x, n)(快速幂)
  4. 分布式缓存的25个优秀实践与线上案例 done
  5. JS与OC交互--简单使用
  6. FISCO BCOS Solidity 智能合约 返回json对象、字典mapping、结构体
  7. 连锁门店使用新零售连锁管理系统的价值在哪?
  8. android大智慧安装目录,大智慧文件目录
  9. Ubuntu切换阿里源
  10. flutter ios打包_Flutter iOS 打包等采坑ing...
  11. Selenium_python 断言
  12. 手机设计软件有哪些(合集)
  13. Transforms的结构和用法
  14. easyui datagrid 可编辑单元格 显示 clear icon 和 放大镜图标
  15. 政府部门服务器拒收邮件 怎么办,hotmail 邮箱最近反映拒收邮件,请问怎么解决?...
  16. 点云上的深度学习及其在三维场景理解中的应用————PointNet(一)
  17. 暗黑破坏神资源 - 紫冰整理
  18. 基于Python回归模型的异方差性分析
  19. 国内知名的家电与家居调查研究咨询公司
  20. 等保测评 安全计算坏境之linux操作系统

热门文章

  1. 怎么理解“不经审视的人生,不值得过!“
  2. 计算机组成原理试题(三)(附参考答案)
  3. RocketMQ源码解析之消息生产者(获取topic路由信息)
  4. 利用javascript写一个石头剪刀布的简易小游戏
  5. PhysX两轮载具简单实现
  6. php关键词分析工具,搜索引擎关键词查询分析工具
  7. Django短信验证码
  8. 详解谷歌VR平台Daydream:有手柄就是不一样
  9. 最大公约数(GCD)和最小公倍数(LCM)
  10. xp系统计算机蓝屏,xp蓝屏,教您教你怎么修复xp蓝屏问题