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

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

摘要

大约在一年前,三元组联合标注工具LAnn发布出来了:。这是为方便我课题所设计并实现的一款三元组标注软件,限定为封闭关系和”头实体-关系-尾实体“的元组角色。但后来参加了百度所举办的多模态信息抽取比赛,发现用三元组来表征现实世界的事实(知识)是不够的,因此在LAnn的基础上进行了扩展,引入了元组角色标注。 多元组标注工具的基本功能和LAnn一样,但略有差别,本文主要针对这些差别进行介绍。

元组角色标注的引入

在三元组标注的情况中,元组的角色默认为了”头实体-关系-尾实体“,其中头实体和尾实体是我们选定的,关系则是在预定义中的关系选择的。但是在实际情况中,有些事实(知识)是三元组无法表征的,例如”吴京在战狼电影中扮演冷锋的角色“,对于”吴京(头实体),扮演(关系),战狼(在作品),冷锋(尾实体)“这样的事实,元组中的每个元素都是必要的。仍然使用三元组”吴京(头实体),扮演(关系),冷锋(尾实体)“是不准确的,显然吴京扮演过很多的角色。 更进一步的,在事件抽取任务中,有更多的实体参与事件,并且在事件中具有不同的角色,三元组更是无法表征。因此有必要将三元组进行扩展,使用更广泛的多元组,未来甚至是时序多元组。 多元组的引入便无法默认为”头实体-关系-尾实体“的元组角色了,需要指定头实体、尾实体各是哪个元素以及其它元素的元组角色。因此需要引入元组角色的标注。

新的标注过程

  1. 除了需要预定义好实体类型和关系类型,还需要定义元组角色类型(role_type.js)。
  2. 实体标注的过程没有改变。
  3. 在标注完实体后,开始标注关系(事件),依然是点击已标注的实体块,所不同的是点击后会立即跳出元组角色选择框。
  4. 确定好关系(事件)中的每个元素和元素角色后,最终按下回车键,开始选择关系(事件类型),完成一个关系(事件)的标注。 在事件标注情况下,可定义一个特殊实体类型:触发词实体,元组角色可以使用头实体来代替触发词,其余便根据所定义的schema提前定义好实体类型、事件类型(对应于关系类型)和论元角色(对应于元组角色)。 为了便捷,默认第一个选择的实体为头实体元组角色,不跳出元组角色选择框。

多元组的显示

在多元组显示功能设计上,为了避免过多的程序改动和避免过多的连线导致显示混乱,在原有基础上进行了实现: 选中特定的多元组后,多元组中的所有元素用红框突出显示,带箭头的连线只由头实体指向尾实体,关系类型显示为连线标签。

标注数据存储格式

即然增加了每个元素的元组角色信息,如何尽可能少的改动现有格式并存储这些信息需要考量。经过初步的考虑,确定的存储格式为:元组角色信息添加在三元组域中,并且每个元素的元组角色在索引值之后,用“#”隔开,关系类型(事件类型)是多元组的最后一个元素。例如:

0#角色_头实体>4#角色_在作品>8#角色_尾实体>扮演

在后期转换为数据集时,只需再对多元组数据每个元素按照“#”号分隔,得到元素和相应的元组角色即可。

经验分享 程序员 微信小程序 职场和发展