将以标注好的数据导入label-studio进行预览和修改---以ner数据为例

待导入数据格式

假设我们json文件中都是以下格式的数据

{"text": "【星岛网讯】美国陆军航空与导弹司令部日前已与洛克希德·马丁导弹与火控公司签订了两份合同,其总价值达5.11亿美元。英国《简氏防务工业》报道,第一份合同属于严格固定价格成本加固定费用合同,合同价值2.66亿美元,内容包括高机动多管火箭炮系统(HIMARS)批量生产型发射装置、维修、加工、训练以及相关的数据报告。合同工作预计于2010年3月底结束,但美国陆军将采购的发射装置数量目前尚不清楚。第二份合同价值2.455亿美元,该合同要求洛克希德·马丁公司开始进行制导型多管火箭炮火箭弹(GMLRS)的大批量生产工作。合同工作预计于2010年11月底完成,但最终将交付的GMLRS火箭弹数量目前尚不清楚。美国陆军目前装备有52门高机动多管火箭炮系统和1070枚GMLRS火箭弹。欢迎订阅知远防务电子报我们在第一时间抢先报导全球最新防务动态,关注世界热点事件,追踪防务发展方向。", "labels": [{"text": "星岛网", "ne": "media", "offset": 1, "length": 3}, {"text": "美国陆军航空", "ne": "org", "offset": 6, "length": 6}, {"text": "司令", "ne": "job", "offset": 15, "length": 2}, {"text": "洛克希德·马丁导弹与火控公司", "ne": "org", "offset": 22, "length": 14}, {"text": "5.11亿美元", "ne": "currency", "offset": 49, "length": 7}, {"text": "英国", "ne": "country", "offset": 57, "length": 2}, {"text": "简氏防务工业", "ne": "media", "offset": 60, "length": 6}, {"text": "2.66亿美元", "ne": "currency", "offset": 97, "length": 7}, {"text": "HIMARS", "ne": "weaponry", "offset": 120, "length": 6}, {"text": "2010年3月底", "ne": "time", "offset": 162, "length": 8}, {"text": "美国陆军", "ne": "org", "offset": 174, "length": 4}, {"text": "2.455亿美元", "ne": "currency", "offset": 202, "length": 8}, {"text": "洛克希德·马丁公司", "ne": "org", "offset": 216, "length": 9}, {"text": "2010年11月底", "ne": "time", "offset": 263, "length": 9}, {"text": "GMLRS火箭弹", "ne": "weaponry", "offset": 282, "length": 8}, {"text": "美国陆军", "ne": "org", "offset": 299, "length": 4}, {"text": "1070枚", "ne": "quantifier", "offset": 322, "length": 5}, {"text": "GMLRS火箭弹", "ne": "weaponry", "offset": 327, "length": 8}]}
{"text": "F94是美国第一种大量生产与服役的喷气拦截机,衍生自T33教练机,由洛克希德马丁设计与制造。它也是20世纪50年代最知名的全天候截击机。", "labels": [{"text": "F94", "ne": "weaponry", "offset": 0, "length": 3}, {"text": "美国", "ne": "country", "offset": 4, "length": 2}, {"text": "T33教练机", "ne": "weaponry", "offset": 26, "length": 6}, {"text": "洛克希德马丁", "ne": "org", "offset": 34, "length": 6}, {"text": "20世纪50年代", "ne": "time", "offset": 49, "length": 8}]}

label-studio版本

label-studio                   1.13.1
label-studio-sdk               1.0.5

1.安装完成之后注册账号进入label-studio页面端

2.申请LS_API_KEY 

代码

import json
from label_studio_sdk import Client

# Label Studio 服务器地址和 API key
LS_URL = 'ip:8080'  # 替换为你的服务器地址
LS_API_KEY = '你账号的key'

# 连接到 Label Studio
ls = Client(url=LS_URL, api_key=LS_API_KEY)

# 获取项目
project = ls.get_projects()[0]
project_id = project.id

# JSON 文件路径
json_file = r'F:\2023-08-23实体抽取\cluener_public\ner_DATA\data\train.json'  # 替换为你的 JSON 文件路径

# 准备导入的数据列表
tasks_to_import = []

# 逐行读取 JSON 文件中的每条数据
with open(json_file, 'r', encoding='utf-8') as f:
    for line in f:
        try:
            # 解析 JSON 行
            data = json.loads(line)
            text = data['text']
            labels = data['labels']

            # 构建标注任务
            annotations = []
            for label in labels:
                entity_text = label['text']
                start_offset = label['offset']
                end_offset = start_offset + label['length']
                label_type = label['ne']

                # 创建单个标注
                annotation = {
                    'value': {
                        'start': start_offset,
                        'end': end_offset,
                        'text': entity_text,
                        'labels': [label_type]
                    },
                    'from_name': 'label',
                    'to_name': 'text',
                    'type': 'labels',
                    'origin': 'manual'
                }
                annotations.append(annotation)

            # 创建任务数据
            task = {
                'data': {'text': text},
                'annotations': [{'result': annotations}]
            }

            tasks_to_import.append(task)

        except json.JSONDecodeError as e:
            print(f"Error decoding JSON: {e}")
        except KeyError as e:
            print(f"Missing key in JSON data: {e}")

# 导入所有标注任务到 Label Studio
if tasks_to_import:
    response = project.import_tasks(tasks_to_import)
    print(f"Successfully imported {len(tasks_to_import)} tasks to Label Studio.")
else:
    print("No tasks to import.")

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值