标注BIO-精灵标注助手

标注,bio,精灵,助手 · 浏览次数 : 71

小编点评

**目录准备待标注数据将待标数据生成文件数据标注下载标注软件创建项目标注数据导出数据ANN 转 BIO推荐使用 Label Studio准备待标注数据创建 raw_data.txt 待标注数据如何预防高血压?高血压的防治高血压的防治我是小三阳,有糖尿病,高血脂,我该怎么吃药?糖尿病患者能吃减肥药吗.糖尿病的的危害,糖尿病怎样治疗呢医院糖尿病肾病治疗怎么样,糖尿病如何防治?糖尿病人能吃蜂王浆吗,高血糖可以喝蜂蜜吗乳腺癌术后淋巴结转移怎么办,乳腺癌脾脏转移怎么办?糖尿病肾病三期能治愈吗,糖尿病可怕些还是慢性肾炎可怕些?吃多含糖食物会得糖尿病吗?什么人容易的糖尿病将待标数据生成文件generate_ann_data.pyimport osraw_data_path = './data/raw_data.txt'save_folder = './data/biaozhushuju'if not os.path.exists(save_folder): os.makedirs(save_folder)with open(raw_data_path,'r',encoding='utf8') as f: for i,line in enumerate(f.readlines()): line = line.strip() #strip()表示删除掉数据中的换行符 # 每行数据,保存成一个文件, with open(os.path.join(save_folder,'%s.txt' % str(10000+i)),'w',encoding='utf8') as fo: fo.write(line)

正文

推荐使用 Label Studio

准备待标注数据

创建 raw_data.txt 待标注数据

如何预防高血压?高血压的防治高血压的防治
我是小三阳,有糖尿病,高血脂,我该怎么吃药?糖尿病患者能吃减肥药吗.
糖尿病的的危害,糖尿病怎样治疗呢
医院糖尿病肾病治疗怎么样,糖尿病如何防治?
糖尿病人能吃蜂王浆吗,高血糖可以喝蜂蜜吗
乳腺癌术后淋巴结转移怎么办,乳腺癌脾脏转移怎么办?
糖尿病肾病三期能治愈吗,糖尿病可怕些还是慢性肾炎可怕些?
吃多含糖食物会得糖尿病吗?什么人容易的糖尿病

将待标数据生成文件

generate_ann_data.py

import os

raw_data_path = './data/raw_data.txt'

save_folder = './data/biaozhushuju'
if not os.path.exists(save_folder):
    os.makedirs(save_folder)

with open(raw_data_path,'r',encoding='utf8') as f:
    for i,line in enumerate(f.readlines()):
        line = line.strip()  #strip()表示删除掉数据中的换行符

        # 每行数据,保存成一个文件,
        with open(os.path.join(save_folder,'%s.txt' % str(10000+i)),'w',encoding='utf8') as fo:
            fo.write(line)

image

数据标注

下载标注软件

精灵标注助手:http://www.jinglingbiaozhu.com/

创建项目

image

标注数据

image
将后面的数据全部标注
image

导出数据

image
image
image

ANN 转 BIO

ann2bio.py

import glob


def bratann_to_bio_format(text, ann_str, fstream):
    # 将每一行的元素变为list,strip()删除的字符,按照split()中的符号进行每行元素分割为list的元素
    ann_list = ann_str.strip().split('\n')

    label = ['O' for _ in range(len(text))]  # 对所有的文字赋值为标签"O"
    for i, line in enumerate(ann_list):  # enumerate函数用于遍历序列中的元素以及它们的下标
        try:
            # line:T1    疾病 4 7  高血压
            T, typ, word = line.strip().split('\t')
            t, s, e = typ.split()  # 分别t=疾病 s=起始位置下标 e=结束位置
            s, e = int(s), int(e)
            label[s] = 'B-' + t
            while s < e - 1:
                s += 1
                label[s] = 'I-' + t
        except:
            continue

    for t, l in zip(list(text), label):  # list() 构造函数在 Python 中返回一个列表,将文本以字切分为列表
        # str.join(item1,itemm2),join函数是一个字符串操作函数,使用str符号将item1和item2串联起来
        line = ' '.join([t, l]) # 使用空格连接文字和BIO标注,如果需要 tab形式间隔,可以换成 \t
        print(line)
        fstream.write(line)
        fstream.write('\n')  # 每一个文本(一行)写完,然后进行换行
    fstream.write('\n')  # 使用换行符,将每一个文本用一个空行分开,在train.txt文档中可以很清晰的看到句与句的切分


def gen_ner_training_data():
    # 设置标注文件所在文件夹目录
    root_dir = './data/outputs'
    # 设置训练样本输出文件路径
    stream = open('./data/train.txt', 'a+', encoding='utf8')
    # ann:E:\工作空间\NER-data-process\data\biaozhushuju\outputs\10000.ann
    # txt:E:\工作空间\NER-data-process\data\biaozhushuju\10000.txt
    file_list = glob.glob(root_dir + '/*.ann')  # glob.glob() 函数的作用:在一个文件中,要遍历所有的文件内容

    for ann_path in file_list:
        # 转换路径:转换前:'./data/outputs\\10000.ann'
        # 转换为:'./data/outputs/10000.ann'
        ann_path = ann_path.replace('\\', '/')
        # 获得txt路径
        txt_path = ann_path.replace('/outputs', '').replace('ann', 'txt')  # 然后使用txt替换掉ann

        try:
            ft = open(txt_path, 'r', encoding='utf8')
            text = ft.read().strip()
            ft.close()
            fa = open(ann_path, 'r', encoding='utf8')
            ann = fa.read().strip()
            fa.close()
            if ann == '':
                continue
            bratann_to_bio_format(text, ann, stream)
        except Exception as e:
            print(ann_path, e)

    stream.close()


if __name__ == '__main__':
    gen_ner_training_data()

通过上面代码,将 精灵标注助手 标的 ann 文件转在 NLP 算法需要的 BIO 形式
image

来源:https://www.bilibili.com/video/BV1ft4y1g7s7/?spm_id_from=333.337.search-card.all.click

与标注BIO-精灵标注助手相似的内容:

标注BIO-精灵标注助手

[TOC] [推荐使用 Label Studio](https://www.cnblogs.com/vipsoft/p/17562200.html) ### 准备待标注数据 创建 raw_data.txt 待标注数据 ``` 如何预防高血压?高血压的防治高血压的防治 我是小三阳,有糖尿病,高血脂,我

数据标注工具 doccano | 命名实体识别(Named Entity Recognition,简称NER)

目录安装数据准备创建项目创建抽取式任务上传定义标签构建抽取式任务标签任务标注命名实体识别导出数据查看数据 命名实体识别(Named Entity Recognition,简称NER),是指识别文本中具有特定意义的实体。在开放域信息抽取中,抽取的类别没有限制,用户可以自己定义。 安装 详见:数据标注工

数据标注工具 doccano | 文本分类(Text Classification)

目录安装运行 doccano打开 doccanno创建项目上传数据定义标签添加成员开始标注导出数据查看数据统计 数据标注工具 Label-Studio 安装 打开命令行(cmd、terminal)执行安装命令 # Python 3.8+ pip install doccano -i https://

机器学习策略篇:详解清除标注错误的数据(Cleaning up Incorrectly labeled data)

清除标注错误的数据 监督学习问题的数据由输入\(x\)和输出标签 \(y\) 构成,如果观察一下的数据,并发现有些输出标签 \(y\) 是错的。的数据有些标签是错的,是否值得花时间去修正这些标签呢? 看看在猫分类问题中,图片是猫,\(y=1\);不是猫,\(y=0\)。所以假设看了一些数据样本,发现

数据标注工具 Label-Studio

Label-Studio导出数据后可通过label_studio.py脚本轻松将数据转换为输入模型时需要的形式,实现无缝衔接。 items["text"] = line["data"]["text"]

在英特尔至强 CPU 上使用 Optimum Intel 实现超快 SetFit 推理

在缺少标注数据场景,SetFit 是解决的建模问题的一个有前途的解决方案,其由 Hugging Face 与 Intel 实验室 以及 UKP Lab 合作共同开发。作为一个高效的框架,SetFit 可用于对 Sentence Transformers 模型进行少样本微调。 SetFit 仅需很少的

ArcMap中矢量数据修改标注Label的方法

本文介绍在ArcMap软件中,修改图层标签(Label)所显示字段与具体显示内容的方法~

【matplotlib基础】--文本标注

Matplotlib 文本和标注可以为数据和图形之间提供额外的信息,帮助观察者更好地理解数据和图形的含义。 文本用于在图形中添加注释或提供更详细的信息,以帮助观察者理解图形的含义。标注则是一种更加细粒度的文本信息,可以被用来为特定的数据点或区域提供更详细的信息。 本篇通过示例依次介绍文本和标注的常用

论文解读丨【CVPR 2022】不使用人工标注提升文字识别器性能

摘要:本文提出了一种针对文字识别的半监督方法。区别于常见的半监督方法,本文的针对文字识别这类序列识别问题做出了特定的设计。 本文分享自华为云社区《[CVPR 2022] 不使用人工标注提升文字识别器性能》,作者:Hint。 本文提出了一种针对文字识别的半监督方法。区别于常见的半监督方法,本文的针对文

vue3 + mark.js | 实现文字标注功能

页面效果 具体实现 新增 1、监听鼠标抬起事件,通过window.getSelection()方法获取鼠标用户选择的文本范围或光标的当前位置。 2、通过 选中的文字长度是否大于0或window.getSelection().isCollapsed (返回一个布尔值用于描述选区的起始点和终止点是否位于