码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Doccano 修复 spacy.gold 的bug


    引言

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

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

    建议参考这篇文章:Doccano的标注结果转换为BIO格式
    若上述文章已经可解决问题,无需继续往下阅读。

    摘要

    可先阅读一下教程:【已解决】关于如何将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")
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11

    报错信息如下:

    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'
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24

    修复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
    
    • 1

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

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

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

    • 修改点 1

      原始代码:

      from spacy.gold import biluo_tags_from_offsets
      
      • 1

      修改成:

      from spacy.training import offsets_to_biluo_tags
      
      • 1
    • 修改点 2

      原始代码:

      tags = biluo_tags_from_offsets(tokens, label)
      
      • 1

      修改成:

      tags = offsets_to_biluo_tags(tokens, label)
      
      • 1

    修改完上述代码,重新运行代码若继续报错,请参考【已解决】关于如何将Doccano标注的文本转换成NER模型可以直接处理的CoNLL 2003格式里面关于example.py的修改;

    相关阅读

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

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

    参考资料

    • [1] github issues https://github.com/doccano/doccano-transformer/issues/35
    • [2] 该bug的PR参考 https://github.com/doccano/doccano-transformer/pull/38/files
  • 相关阅读:
    postgres源码解析 缓冲池管理器--1
    路由进阶:双点双向路由重发布实验配置
    威纶通软件安装(一步一步,包成功)
    SpringBoot (4)开发实用篇—监控
    React-moveable的使用
    扩容后宝塔不更新硬盘容量
    Android开发基础——自定义控件
    Nginx 监控模块
    【JavaScript】JavaScript 运算符 ① ( 运算符分类 | 算术运算符 | 浮点数 的 算术运算 精度问题 )
    复习C部分:三大循环while篇(内含continue(常用场景2)和break(常用场景1)介绍和使用详情)
  • 原文地址:https://blog.csdn.net/sjxgghg/article/details/136393612
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号