NLP标注神器:可同时对文本类型与实体类型进行标注(动图演示)

每天给你送来NLP技术干货!


来自:AI有温度

大家好,我是泰哥。我之前做实体标注项目使用过标注精灵BRATYEDDADeepDive等标注工具,这些工具虽然可以满足实体标注需求,但安装过程复杂、英文界面、有时会有卡顿,对标注人员都很不友好。

而我目前要做的任务需要能同时对数据进行实体标注和文本分类标注,以上提到的工具都很难满足,分开标注效率又太低。于是我找到了rasa-nlu-trainer标注工具,免费、无需安装、无需注册、操作快捷且能同时标注,真是神器!今天就分享给大家。

1 进入标注工具

地址:https://rasahq.github.io/rasa-nlu-trainer,大家直接复制链接就可进入,无需注册登录,十分方便,进入网页后可看到示例:

2d41bbb6b4a4f34f838b439485ed99b5.png

intent列是为文本进行分类标注,点开最左端的小加号后可为句子中的实体进行标注。

接下来为大家示范从导入数据到导出标注数据的整个过程,前方高能!

2 导入待标注数据

此工具要求的导入文件格式为josn,我们可直接点击网页右上角Download进行下载,查看需要的数据格式(为方便演示,我只截取了两条)。

590af0f25e1444e19719aa8773d062cc.png

可以看到它是字典嵌套列表的格式,我们主要构造红框内的内容,然后将外层字典的关键字加上即可。

以下为制作数据集的模板,大家可直接复制使用:

第一步

将待标注数据整理成一个列表(也可由txt直接构造,本文以列表做示范):

moive = ['扬名立万很好看。',
         '沙丘差评!',
         '疯狂的石头太好看啦!',
         '我和我的父辈还行吧',
         '长津湖666']

第二步

编写函数将其转换为固定的传入格式:

def listToJosn(li):
    result = []
    for text in li:
        # 构造每条数据的格式
        item = {
                'text': text,
                'intent':'',
                'entities': []
                }
        result.append(item)
    
    # 添加字典外层关键字
    dic = {"rasa_nlu_data": 
            {"common_examples": result}}

    return dic

# 执行
res = listToJosn(moive)
res
#   {'rasa_nlu_data': {'common_examples': [
#   {'entities': [],'intent': '', 'text': '扬名立万很好看。'},
#   {'entities': [], 'intent': '', 'text': '沙丘差评!'},
#   {'entities': [], 'intent': '', 'text': '疯狂的石头太好看啦!'},
#   {'entities': [], 'intent': '', 'text': '我和我的父辈还行吧'},
#   {'entities': [], 'intent': '', 'text': '长津湖666'}]}}

第三步

然后结果转为josn文件:

import json

with open("a.json", "w") as f:
    f.write(json.dumps(res, ensure_ascii=False, indent=4))

打开查看当前目录下的a.josn文件,已经转换成功:

1cbdb9abbd9e297e167e9fc78a6735c1.png

第四步

点击界面右上角Click to Upload上传文件:

ad9543abf09ca406f8664faa778500ff.png

显示5条数据已经上传成功!

209483a73bde0a024ffe8829e3c936be.png

3 文本分类标注

  • 可自定义标签名称

  • 已定义的名称在下次标注时可自动弹出,操作方便快捷

我们定义1为好评,2为差评,3为中性。界面简洁,操作快捷,演示如下:

d0150d41bee31430aff94715b25b4717.gif

  • 还可以对文本进行关键字筛选。比如我们将带有“好看”的文本筛出,可对这类句子统一标注。

e9ffd0bd7ea83c57266863e66817a7ce.png同样的,也可以对标签进行筛选。将标签1的样本进行筛选查看。

a195b29c97d8fffce7c1a3644b3228d5.png

4 实体识别标注

  • 实体标注可以与文本标注同时进行

  • 可以自定义标注类型,已定义的标签在下次标注时可自动弹出方便选择

5006b67441eaee5a9b9211e724e98184.png
  • 可以实体重叠标注。比如我们不仅需要对“疯狂的石头”进行标注,也要对“石头”也进行标注:

23a06d6a33c2db59c0652ff6a6e41b4e.png

最后标注完,标注的实体有一个底色:

84cb04dc8c45477b06dc7d6f429567ef.png

5 对结果进行导出

833efc06b2397a0f89b52ca69752172e.png

标注完成后,直接按右上角的download就可以将文件进行导出。0db9cb2b49b878cb87e0227e805102e6.png导出结果中text为原数据,intent中为文本标签,entities中为实体标签及标签在句子的索引,非常全面!

之后我们使用Python将其改造成模型适用的数据集,就可以进行训练啦。

6 赶紧试试吧!

rasa-nlu-trainer界面简易但不失功能性,可以同时对数据进行文本与实体标签的标注,操作简单实用,是我用过标注工具中最好用的一款,强烈安利给大家!


投稿或交流学习,备注:昵称-学校(公司)-方向,进入DL&NLP交流群。

方向有很多:机器学习、深度学习,python,情感分析、意见挖掘、句法分析、机器翻译、人机对话、知识图谱、语音识别等。

ba7dba2e791d38e3be0008da07f2040f.png

记得备注呦

整理不易,还望给个在看!
  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值