通用文本标注工具 labelme

导语: 一个支持文本类目标注和关键词打分的通用标注工具,为文本分类模型和关键词抽取任务提供训练和测试数据。-- by 慕福楠 & 孙振龙

1. 背景

很多 NLP 任务训练和评估都依赖大量标注数据,对于文本分类,使用标注数据进行模型训练和评测,如商业兴趣分类、电商分类、APP分类;对于关键词抽取,使用标注数据进行评测。在标注数据获取过程中存在以下问题:Excel 标注方式效率低下;腾讯系数据源多,标注数据难于管理;标注质量难以保证,依赖人工抽样,费时费力。因此,我们快速开发了一个通用的文本标注工具并开源,工具名称为labelme,翻译成“来标我”,现在labelme已经支持组内所有的标注任务。

2. 支持的特性

图1 labelme支持的特性

2.1 多场景

目前支持文本类目标注(图2)和关键词标注(图3)两个场景。类目标注支持树状类目体系,标注时自顶向下标注,从root标注到叶节点,例如图2中,先标一级“餐饮美食”,再标二级“餐馆”。关键词标注支持正在打分的关键词在文档中高亮和增加候选中没有的关键词功能。

图2 类目标注界面

图3 关键词标注界面

2.2 多任务

labelme支持多个任务同时标注,通过简单的配置即可增加新的标注任务,配置如图4,然后在系统登录页选择相应的Task进行标注,如图5所示。

图4 配置定义

图5 系统登录页

2.3 质量校验

为了保证标注数据质量,labelme引入质量校验特性,利用专家标注的数据验证普通标注人员的标注数据的准确率。将开发或者产品定义为Owner(专家),将外包同学定义为Labeler(普通标注人员),Owner标注的数据作为Golden Set,Labeler每天的标注数据中掺一定比例的Golden Set,比例可配置(配置定义中的owner_sample_ratio字段),每天以Golden Set作为正确答案,计算Labeler标注的准确率。Labeler之间的标注数据不会有交集,见图6,每天分配给Labeler的Golden Set是Labeler没有标注过的,所以一旦Golden Set用完,系统无法计算准确率,需要Owner定期标注一些Golden Set计算Labeler的准确率。

图6 各角色标注数据交集情况

2.4 Active Learning(待实现)

对于类目标注, 为了提高标注效率和减少不必要的标注,可以利用已有标注数据训练弱分类器,对未标注数据进行预测,假定预测的结果为Pi (i = 1, 2, ...N;N是类目的个数),预测结果为c = argmax_i Pi,即样本的预测类别为c,概率为Pc,labelme将Pc低于threshold的样本返回给标注人员进行标注,Pc高于threshold的样本认为是跟已标注样本很相似,不需要再标注。每天重新训练弱分类器,重新预测未标注样本的类别,重新估计threshold。另外,为了降低系统复杂度,弱分类器与labelme解耦,labelme提供接口给弱分类器,接口包括获取已标注数据和未标注数据,更改未标注数据预测类别,弱分类器由用户自行选择。另外,labelme优先展示概率比较大的类目,提高标注效率。

2.5 CDB数据管理

labelme采用mysql管理标注数据,mysql使用CDB,保证数据安全,毕竟标注数据需要大量人力。

2.6 报表推送

labelme会向任务的owner和labeler推送报表,报告样本总量,已标数据,剩余数量,每个人前一天标注数量和准确率。

3. 未来计划

未来工作包括UI优化和Active Learning。UI优化包括上一页按钮和查询界面,上一页按钮为了修改误标的数据,查询界面是报表的扩展,提供更多维度的查询,比如某个外包同学特定时间段内所有任务的标注量和正确率。对于Active Learning上文提到了未来的实现方式,这里不再赘述。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

理查德的专栏

1 篇文章2 人订阅

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏祁旭翔的专栏

【 SPA 大赛】win10 python3.5.X 下开启 lightgbm 支持

GBDT (Gradient Boosting Decision Tree) 是机器学习中一个长盛不衰的模型,其主要思想是利用弱分类器(决策树)迭代训练以得到最...

3K0
来自专栏量化投资与机器学习

【年度系列】使用Tensorflow预测股票市场变动

我们将使用Tensorflow创建和开发一个简单的模型框架,以及提出一些对初步结果改进的意见。

1013
来自专栏新智元

【重磅】Jeff Dean等提出自动化分层模型,优化CPU、GPU等异构环境,性能提升超 60%

谷歌大脑Jeff Dean等人最新提出一种分层模型,这是一种灵活的端到端方法,用于优化CPU、GPU等的自动化设备配置。该方法在多个主要神经网络模型上测...

2977
来自专栏华章科技

核心算法:谷歌如何从网络的大海里捞到针

作 者: David Austin,Grand Valley State University

948
来自专栏腾讯Bugly的专栏

深度神经网络移动终端GPU加速实践

我们尝试去工程化深度神经网络并最终落地,当中的一些实践经验通过本文记录下来。

4133
来自专栏祝威廉

算法训练和模型部署如何避免多次重写数据预处理代码

前段时间,我们对接算法的工程师哭丧的和我说,模型生成后一般都要部署成API的形态对外提供服务,但是算法工程师并没有提供如何将一条数据转化特征向量的方法,他能拿到...

662
来自专栏吉浦迅科技

DIGITS

给大家介绍一个工具,叫做DIGITS。DIGITS是一个基于WEB UI交互式的深度学习训练系统。对于深度学习的初学者或数据科学家来说,这个工具能够为他们提供极...

3486
来自专栏量子位

无需写代码!谷歌推出机器学习模型分析神器,代号What-If

今天,谷歌推出了已开源的TensorFlow可视化工具TensorBoard中一项新功能:What-If Tool,用户可在不编写程序代码的情况下分析机器学习(...

763
来自专栏人工智能头条

可能是史上最全的Tensorflow学习资源汇总

在之前的Tensorflow系列文章中,我们教大家学习了Tensorflow的安装、Tensorflow的语法、基本操作、CNN的一些原理和项目实战等。本篇文章...

723
来自专栏专知

微软开源的深度学习模型转换工具MMdnn

【导读】MMdnn是微软开源的用于不同深度学习框架(Caffe, Keras, MXNet, Tensorflow, CNTK, PyTorch Onnx和Co...

835

扫码关注云+社区