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

it2024-12-08  19

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

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

摘要

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

1. 安装部署

试一试吧

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

2. 标注界面

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

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

3. 使用方法

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

用编辑器打开LittleAnn.html文件,搜索“实体类型1”,跳转到下面这里:

<li><button style="background:#4682B4;float: left;padding: 0.5em" onclick="set_type('实体_实体类型1')">0:实体类型1</button></li>

然后修改这一行的两处“类型1”为你所需实体类型名,例如“地理位置”就改为:

<li><button style="background:#4682B4;float: left;padding: 0.5em" onclick="set_type('实体_地理位置')">0:地理位置</button></li>

如果预设的4个实体类型不够,可以自己在后面添加。对于关系类型的配置,与上面相同,搜索”关系类型1“即可。

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标注命名实体![在这里插入图片描述](https://img-blog.csdnimg.cn/20210107154328748.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2dpdGh1Yl8zNDg5NzUyMQ==,size_16,color_FFFFFF,t_70#pic_center) - 实体类型或者关系类型界面支持数字键选择 - 类型选择界面中,空格键默认选择服务器辅助标注模型提供的结果 - a取消当前标注过的命名实体(含有该实体的三元组会自动丢弃) - 连续点击同一个命名实体会将其锁定,在多个三元组含有同一个头实体时比较方便 - 未选中文本时,按下s或点击实体按钮,会自动选取当前两个字符作为选中文本并进行实体标注

实用功能:

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

5. 辅助标注

人工标注效率非常低,辅助标注是很有必要的。目前,LAnn标注工具设计了两种辅助标注方式:基于编辑距离算法和基于后台深度网络模型的辅助标注;后期计划采用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,后续还要针对标注数据质量的评估和提升展开研究和开发。

最新回复(0)