Doccano 修复 spacy.gold 的bug

news2024/11/15 21:45:31

引言

最初只是想把Doccano标注的数据集转换成BIO(类似conll2003数据集)的标注格式;

按照PR的修改意见实现了修改,但是本人不建议这么做;
应该随着Doccano的升级,Doccano的导出格式发生了变化,而原来的doccano-transformer还停留在2022年

摘要

可先阅读一下教程:【已解决】关于如何将Doccano标注的文本转换成NER模型可以直接处理的CoNLL 2003格式
装包:pip install doccano-transformer

报错信息

运行下述程序后,会报错

from doccano_transformer.datasets import NERDataset
from doccano_transformer.utils import read_jsonl
 
dataset = read_jsonl(filepath='NER.jsonl', dataset=NERDataset, encoding='utf-8')
gen=dataset.to_conll2003(tokenizer=str.split)
 
file_name="CoNLL.txt"
 
with open(file_name, "w", encoding = "utf-8") as file:
    for item in gen:
        file.write(item["data"] + "\n")

报错信息如下:

l In[18], line 1
----> 1 from doccano_transformer.datasets import NERDataset
      2 from doccano_transformer.utils import read_jsonl

File ~/anaconda3/envs/nlp/lib/python3.9/site-packages/doccano_transformer/datasets.py:5
      2 import json
      3 from typing import Any, Callable, Iterable, Iterator, List, Optional, TextIO
----> 5 from doccano_transformer.examples import Example, NERExample
      8 class Dataset:
      9     def __init__(
     10         self,
     11         filepath: str,
     12         encoding: Optional[str] = 'utf-8',
     13         transformation_func: Optional[Callable[[TextIO], Iterable[Any]]] = None
     14     ) -> None:

File ~/anaconda3/envs/nlp/lib/python3.9/site-packages/doccano_transformer/examples.py:4
      1 from collections import defaultdict
      2 from typing import Callable, Iterator, List, Optional
----> 4 from spacy.gold import biluo_tags_from_offsets
      6 from doccano_transformer import utils
      9 class Example:

ModuleNotFoundError: No module named 'spacy.gold'

修复bug

根据该GitHub doccano_transformer项目的github issues和pr 给出的信息修复该bug:

要修改doccano_transformer/examples.py源码文件;
根据报错信息,确定example.py文件所在目录

File ~/anaconda3/envs/nlp/lib/python3.9/site-packages/doccano_transformer/datasets.py:5

根据报错信息,知道笔者的examples.py路径如下:
(每人的所在文件夹不同,请自行修改)

 ~/anaconda3/envs/nlp/lib/python3.9/site-packages/doccano_transformer/examples.py

按照图片所示内容进行修改即可:
在这里插入图片描述

  • 修改点 1

    原始代码:

    from spacy.gold import biluo_tags_from_offsets
    

    修改成:

    from spacy.training import offsets_to_biluo_tags
    
  • 修改点 2

    原始代码:

    tags = biluo_tags_from_offsets(tokens, label)
    

    修改成:

    tags = offsets_to_biluo_tags(tokens, label)
    

修改完上述代码,重新运行代码就不会报错了;

相关阅读

  • BIO序列提取实体(NER命名实体识别)

    该文把BIO标注的数据,转成下述格式:
    {'string': '我是李明,我爱中国,我来自呼和浩特', 'entities': [{'word': '中国', 'type': 'loc'}, {'word': '呼和浩特', 'type': 'loc'}]}
    

参考资料

  • [1] github issues https://github.com/doccano/doccano-transformer/issues/35
  • [2] 该bug的PR参考 https://github.com/doccano/doccano-transformer/pull/38/files

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1480012.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

正确认识肠道内脆弱拟杆菌——其在健康的阴暗面和光明面

谷禾健康 脆弱拟杆菌(Bacteroides fragilis)是拟杆菌门拟杆菌属的重要成员。事实上,脆弱拟杆菌因其免疫调节功能而成为该属中研究最多的共生微生物。它是革兰氏阴性、不形成孢子、杆状专性厌氧菌。在人类健康中扮演着复杂而双面的角色。 这种革兰氏阴性专性厌氧菌常…

架构设计方法(4A架构)-信息架构

1、 信息架构(IA):现实事物在IT世界的建模体现 2、数据资产目录 3、 识别业务对象:业务对象的设计方法 设计方法 1.基于业务流程识别业务活动。 2. 识别业务流程中每个业务活动的输入、输出等BI(Business Item&#…

Zabbix企业运维监控工具

Zabbix企业级监控方案 常见监控软件介绍 Cacti Cacti是一套基于 PHP、MySQL、SNMP 及 RRD Tool 开发的监测图形分析工具,Cacti 是使用轮询的方式由主服务器向设备发送数据请求来获取设备上状态数据信息的,如果设备不断增多,这个轮询的过程就非常的耗时&#xff0…

SpringBoot源码解读与原理分析(三十七)SpringBoot整合WebMvc(二)DispatcherServlet的工作全流程

文章目录 前言12.4 DispatcherServlet的工作全流程12.4.1 DispatcherServlet#service12.4.2 processRequest12.4.3 doService12.4.3.1 isIncludeRequest的判断12.4.3.2 FlashMapManager的设计 12.4.4 doDispatch12.4.4.1 处理文件上传请求12.4.4.2 获取可用的Handler&#xff0…

Vue+SpringBoot打造农村物流配送系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统登录、注册界面2.2 系统功能2.2.1 快递信息管理:2.2.2 位置信息管理:2.2.3 配送人员分配:2.2.4 路线规划:2.2.5 个人中心:2.2.6 退换快递处理:…

5G时代对于工业化场景应用有什么改善

5G 不仅仅是 4G 的技术升级,而是将平板电脑和智能手机的技术升级。除了更好的高清视频流和其他高带宽应用,消费者不会注意到很多性能差异。然而,在工业领域,5G 代表着巨大的飞跃。 在工厂和厂房内, 设备的Wi-Fi 网络经…

低功耗运放D722,具有9MHz的高增益带宽积,转换速率为8.5V/μs

D722是低噪声、低电压、低功耗运放,应用广泛。D722具有9MHz的高增益带宽积,转换速率为8.5V/μs,静态电流为1.7mA(5V电源电压)。D722具有低电压、低噪声的特点,并提供轨到轨输出能力,D722的最大输…

本地maven库缓存导入私库

为了加速编译代码,想将本地maven缓存导入内网私库使用。 脚本网上搜的 #!/bin/bash # copy and run this script to the root of the repository directory containing files # this script attempts to exclude uploading itself explicitly so the script name …

C++指针(二)

个人主页:PingdiGuo_guo 收录专栏:C干货专栏 文章目录 1.数组指针 1.1数组指针的概念 1.2数组指针的用处 1.3数组指针的操作 1.4二维数组如何访问 1.5数组指针访问流程 1.6数组指针的练习题 2.指针数组 2.1指针数组的概念 2.2指针数组的用处 2…

AMEYA360:航顺车规级MCU HK32AUTO39A的汽车侧滑门控制方案

汽车滑门因侧开启方式与传统车门相比,具有易泊车、开启宽度大和方便乘员货物进出的优点,很受消费者的青睐。汽车市场上,无论是面向高端的商务豪华MPV,还是面向城市物流的轻型客车和低端客运微型车都采用了汽车机械滑门系统。 汽车…

韦东山嵌入式Liunx入门驱动开发三

文章目录 一、GPIO和Pinctrl子系统的使用1-1 Pinctrl子系统1-2 GPIO子系统1-3 基于GPIO子系统的LED驱动程序 本人学习完韦老师的视频,因此来复习巩固,写以笔记记之。 韦老师的课比较难,第一遍不知道在说什么,但是坚持看完一遍&…

死记硬背spring bean 的生命周期

1.bean的生命周期 我们平常经常使用类似于new Object()的方式去创建对象,在这个对象没有任何引用的时候,会被gc给回收掉。而对于spring而言,它本身存在一个Ioc容器,就是用来管理对象的,而对象的生命周期也完全由这个容…

为什么软考报名人数越来越多?

2020年软考报名人数404666人,广东省报考人数超过14万人。 ●2021年软考通信考试报名人数突破100万人,估计软考有90多万。 ●2022年软考通信考试共129万人,估计软考占了120多万人。 ●2023年软考具体报名人数没有公布,但工业和信…

three 层级模型

group.remove(mesh1,mesh2);Vector3与模型位置、缩放属性 Group层级模型(树结构) 创建了两个网格模型mesh1、mesh2,通过THREE.Group类创建一个组对象group,然后通过add方法把网格模型mesh1、mesh2作为设置为组对象group的子对象,然后在通过执行scene.a…

ETL数据仓库的使用方式

一、ETL的过程 在 ETL 过程中,数据从源系统中抽取(Extract),经过各种转换(Transform)操作,最后加载(Load)到目标数据仓库中。以下是 ETL 数仓流程的基本步骤&#xff1a…

猫为什么挑食?改善挑食的主食冻干推荐

现代养猫人士往往把自家的小猫看作是生活中的小宝贝,十分宠爱。然而,这种宠爱有时也会导致猫咪养成挑食的不良习惯。那么,猫为什么挑食?当猫咪拒绝吃猫粮时,我们应该如何应对呢? 今天,我要分享一…

【前端素材】推荐优质后台管理系统 Adminity平台模板(附源码)

一、需求分析 1、系统定义 后台管理系统是一种用于管理网站、应用程序或系统的管理界面,通常由管理员和工作人员使用。它提供了访问和控制网站或应用程序后台功能的工具和界面,使其能够管理用户、内容、数据和其他各种功能。 2、功能需求 后台管理系…

C++利用汇编挖掘编程语言的本质..

1.谬论 很多非一手的资料特别是中文资料其实并不可靠 因为很多作者都是直接通过转载他人的作品 也不管他人作品真与假 而且有一部分的作品中的言论和官方描述相去甚远 有的则是翻译的过程中出现了问题 比如sizeof很多人认为是一个函数 其实他并不是一个函数 而是一个运算符 是…

【Godot4自学手册】第十八节主人公的血量显示

今天,我主要学习主人公的血量显示,在屏幕的左上角,会显示主人公的头像,后面会显示血量进度条,当主人公受到伤害时,血量会实时变动,显示绿色血条减少,后是红色血量逐渐减少到正确位置…

进阶了解C++(4)——多态

在上篇文章中,简单的介绍了多态中的概念以及其相关原理。本文将针对多态中其他的概念进一步进行介绍,并且更加深入的介绍关于多态的相关原理。 目录 1. 抽象类: 2. 再谈虚表: 3. 多继承中的虚函数表: 1. 抽象类&am…