开源NLP标注工具技术分享
来自:数据堂 AI-Lab

自然语言标注平台能做什么
文本分类(对文本类型进行划分,如情感分类、企业类型分类等)
命名实体识别(对文本实体进行标注,如人名、地名、实体名等等)
关系抽取任务(对文本中词关系,如主谓宾等,或因果关系等) 机器翻译任务(通过平行语料,构建翻译对)
其他NLP相关任务

标注工具汇总
导出数据样式

标注工具介绍

Doccano

Doccano是一个针对标注员的开源文本注释工具。它提供了文本分类、序列标记和序列到序列任务的标注功能。因此,您可以为情感分析、命名实体识别、文本摘要等创建带标签的数据。该标注工具支持多种语言,不会因为语言造成数据难以读取等问题,还能够自动进行线下学习

Doccano平台优势
合作标注:可以进行多人合作,分配标注任务。
语言独立性:你可以对任何语言的文本进行标注。在使用doccano的人群中,已知有英语,中文,日语,阿拉伯语,印度尼西亚语。
自动标注:对一个文本进行了一部分标注后,后台通过学习,能自动对文本进行标注,提高标注效率。

环境依赖:
Python 3.6
Django 2.0.5+
Google Chrome(highly recommended)

YEDDA

YEDDA是一个针对实体类的开源文本注释工具。它提供了序列标记的标注功能。该标注工具一个轻量级但高效的文本边界(span)注释的开源工具。YEDDA为文本跨度标注提供了一个系统的解决方案,从协作用户标注到管理员评估和分析。它克服了传统文本注释工具效率低下的问题,通过命令行和快捷键对实体进行注释,这些实体可配置自定义标签。

该标注工具的优势在于
高效:它支持快捷方式和命令行模式,以加速注释过程。
智能化:为用户提供实时系统建议,减少重复标注。
为客户端程序,减少部署系统难度

环境依赖:
Python 3.4+

IEPY

IEPY是一个专注于关系提取的信息提取开源工具。举一个关系提取的例子,如果我们试图在以下位置找到出生日期:“约翰·冯·诺伊曼(John von Neumann,1903年12月28日至1957年2月8日)是匈牙利和美国的纯数学和应用数学家,物理学家,发明家和数学家。”IEPY的任务是将“John von Neumann”和“December 28, 1903”识别为“was born in”关系的主题和客体

该标注工具的优势在于
系统较为完整,有用户管理功能
主动学习算法,能够通过在线学习完成预识别工作

环境依赖:
Ubuntu
Python
Stanford CoreNLP
Java

Brat

NLP基本上都是监督学习,而监督学习需要海量人工标注的语料,越多越好。而标注文本是一个很繁琐的工作,有一个好用的工具会帮助很多。brat可以用于各种NLP任务,该工具是为实体识别和关系抽取设计的。brat服务器是一个Python程序,默认情况使用Ubuntu系统,网页浏览器使用谷歌Chrome。

该标注工具的优势在于:
标注实体的同时可以进行关系的标注

环境依赖:
Ubuntu
Python
apache2

DeepDive

Deepdive与IEPY类似,也是针对信息抽取类型任务的开源标注工具,deepdive非常适合信息抽取,是构建知识库的利器。能够基于词性标注、句法分析等通过各种文本规则实现实体之间关系的抽取,同时可面向异构、海量的数据

该标注工具的优势在于
界面比较简洁,适合于大量关系抽取任务

环境依赖:
Ubuntu
Python
Stanford CoreNLP

Chinese-Annotator

该平台有几大特性,标注过程背后含有智能算法,将人工重复劳动降到最低此外,标注界面显而易见地友好,让标注操作尽可能简便和符合直觉。标注框架如下图所示,是一个较为完整的系统,包括前端、后台与数据库。

该标注工具的优势在于
主动学习算法,能够通过在线学习完成预识别工作
标注界面清晰明了,操作简便

环境依赖:
python3.6
virtualenv
mongodb

总结:

标注工具对于数据生产任务至关重要,一个好的标注工具能够大大减少标注过程中出现的问题,减少标注人员出现的错误,提高数据生产效率与数据质量,但是有些项目因为周期原因无法使用自研的标注平台,本调研报告旨在把握开源标注工具现状,并结合参与项目情况对标注工具进行梳理,从而能够在新的任务来临时能够快速为项目进行支撑,为项目经理提供合理标注工具提升生产效率