我的编程空间,编程开发者的网络收藏夹
学习永远不晚

命名实体识别(NER)标注神器——Label Studio 简单使用

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

命名实体识别(NER)标注神器——Label Studio 简单使用

文章目录

前言

近期在做NER的工作,由于缺乏标注数据,所以,你懂的😭😭

Label Studio不仅可以用来标注文本NER任务,还可以用来标注文本分类、图像分类等等其他AI任务。

官网——https://labelstud.io/

其他标注任务自己去探索吧,我这里只讲一下NER任务。

一、安装与启动

安装

pip install -U label-studio

启动

# 打开命令行,在命令行中执行:label-studio

二、基本使用

不出意外的话,在命令行中启动 Label Studio 后,会弹出一个登陆页面请添加图片描述
如上图

第一次使用需要创建账号,注册一下就好了

注册好后登陆进去,然后会跳转到如下页面请添加图片描述
第一次登陆进来,这个页面应该是空白的,这些都是我自己建的项目。你们不用管

下面,我们开始创建自己的项目:

点击右上角的create按钮
请添加图片描述
点击后弹出如下页面,设置自己的项目名和项目描述
请添加图片描述

设置好项目名称和描述后,点击旁边的 Data Import,进入到数据导入页面

请添加图片描述
3、点击Upload Files按钮,从本地选择一个待标注的文件

我的文件格式是一行一行的 .txt 文本,如图:
请添加图片描述
一行表示一条数据。文件格式也可以是CSV,按理说只要是一行一条数据的都可以,感兴趣的同学可以自己探索下。

选择好待标注的文件后,点击确定,会弹出如下界面:
请添加图片描述

这里需要选择是 List of tasks 还是Time Series,这里我选择的是List of tasks

选择好后,点击旁边的 Labeling Setup,页面如下:

请添加图片描述

找到Natural Language Processing,选择Named Entity Recognition
请添加图片描述
8、选择后,弹出如下页面请添加图片描述

默认的四个标签 PER ORG LOC MISC,删掉这四个标签,换成我们自己的标签

从旁边的方框里输入自己的标签名称,再点击Add就可以添加自己自定义的标签了
请添加图片描述
点击我们添加的标签,还能自定义颜色
请添加图片描述
10、至此,我们就选择好了所有的配置,看起来很麻烦事因为我说的比较细,就怕有些同学看不懂。点击右上角的Save按钮,就可以开始标注了请添加图片描述
11、点击Label All Tasks 按钮,开始愉(痛)快(苦)地标注之旅吧
请添加图片描述
12、点击实体名称,再通过鼠标从待标注的文本选择出正确的实体,如图:
请添加图片描述
注意:标注完成后,一定要点击Submit提交已标注的数据,要不然,一天白干

设置一下可以让标签显示在实体右上角
请添加图片描述

标注完成后,点击右上角 Export 可以导出已标注的数据

请添加图片描述
14、这里我们选择CSV,你想导出其他格式的也可以
请添加图片描述
点击下面的Export蓝色按钮,就能导出已标注的数据啦

导出的csv的数据格式
请添加图片描述
16、通过以下代码,我们将其转为以下这种数据格式:
请添加图片描述
转换代码:

def gen_train_data(file_path, save_path):    """    file_path: 通过Label Studio导出的csv文件    save_path: 保存的路径    """    data = pd.read_csv(file_path)    for idx, item in data.iterrows():        text = item['text']        if pd.isna(text):            text = ''        text_list = list(text)        label_list = []        labels = item['label']        label_list = ['O' for i in range(len(text_list))]        if pd.isna(labels):            pass        else:            labels = json.loads(labels)            for label_item in labels:                start = label_item['start']                end = label_item['end']                label = label_item['labels'][0]                label_list[start] = f'B-{label}'                label_list[start+1:end-1] = [f'M-{label}' for i in range(end-start-2)]                label_list[end - 1] = f'E-{label}'        assert len(label_list) == len(text_list)        with open(save_path, 'a') as f:            for idx_, line in enumerate(text_list):                if text_list[idx_] == '\t' or text_list[idx_] == ' ':                    text_list[idx_] = ','                line = text_list[idx_] + ' ' + label_list[idx_] + '\n'                f.write(line)            f.write('\n')

直接传参就可以啦

总结

我愿称其为 NER 标注神器
2、应该可以多人协同、如果有同学搞定多人协同标注,可以写一篇博客教程,将博客链接放在评论区
3、BiLSTM + CRF NER 任务可以参考:https://blog.csdn.net/qq_44193969/article/details/116008734-文章写的有点潦草,代码可以跑通,后续有空会重新编辑一下,感兴趣的同学将就着看吧哈哈

来源地址:https://blog.csdn.net/qq_44193969/article/details/123298406

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

命名实体识别(NER)标注神器——Label Studio 简单使用

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录