知识图谱-命名实体-关系-免费标注工具-快速打标签-Python3

news/2024/4/29 18:36:19/文章来源:https://blog.csdn.net/AdamCY888/article/details/127613010

知识图谱-命名实体-关系-免费标注工具-快速打标签-Python3

  • 一、功能介绍
    • 1、代码文件夹结构
    • 2、运行环境
    • 3、自定义命名实体、关系模板
    • 4、导入文件
    • 5、选择自定义实体和关系文件
    • 6、文本标注
    • 7、撤销和取消标注
    • 8、导出和导出并退出系统
    • 9、导出文件后解析
    • 10、标注规范和KG规范
    • 11、系统提示
  • 二、优点与未来工作
  • 三、标注软件获取方式
  • 致谢

一、功能介绍

你好! 这是一款实体关系联合标注的本地小程序,以Python3Python3Python3 实现。本系统是一种标注文本语料中命名实体与关系或属性的半自动化软件系统,应用PythonPythonPython编程实现可视化界面和主要功能,利用HTMLHTMLHTMLCSSCSSCSS提示标注教程与规范(无需关心它们如何实现)。

利用本系统进行文本标注将原始段落文本更新为带有事先定义的命名实体、关系或属性的文本标签数据。通过自动分配快捷键、背景色将不同实体在文本中进行区分,并生成固定格式文本呈现在标注界面。选中固定符号,将实体对之间标注关系,自动生成关系序号、关系类别以及头尾实体序号。执行导出生成一对一的文本和标签结果,通过格式化、撤销、取消标注等功能实现标注的更新。本系统帮助自然语言处理的标注专家对文本中实体或实体关系进行提取,导出结果用作机器训练、知识图谱构建等方向。

主要功能: 主要功能实现文本命名实体标注、实体间关系标注。

  1. 文本标注:用户根据提前约定的命名实体、关系属性标注规范,对导入的段落文本进行标注,主要通过背景色、快捷键以及自定义特殊符号组合形成文本的命名实体标注与区别。通过选中固定符号,标注实体间关系,系统自动更新标注的关系类别等信息。
  2. 撤销、取消标注:点击撤销按钮可实现操作回滚,返回到上一状态。也可以通过选中已经标注的实体、关系进行取消标注,系统会删除段中特殊符号。
  3. 格式化:导入文件之后,通过格式化文本,清除文本中多余的空行空格等冗余无效字符。
  4. 导出文件:导出文件即可以将用户标注的段落文本,解析生成文本与标签一对一的结果文件,存储在用户读取文本同一目录下。

1、代码文件夹结构

在这里插入图片描述

biaozhubiaozhubiaozhu文件夹中,有configsconfigsconfigsimagesimagesimagesutilsutilsutils三个文件夹,并且有biaozhu.pybiaozhu.pybiaozhu.pylogin.pylogin.pylogin.pyrecode_1.pyrecode\_1.pyrecode_1.pyrecode_2.pyrecode\_2.pyrecode_2.py注册器.py注册器.py注册器.py 共5个PythonPythonPython代码文件。

  1. configsconfigsconfigs文件中,是用以自定义命名实体、关系的文件,你可以使用文本文件方式打开,并自定义命名实体类别、关系。(自定义实体、关系,除了configsconfigsconfigs文件夹,biaozhu.pybiaozhu.pybiaozhu.py也需要修改)
  2. imagesimagesimages文件夹中,是一些图片文件,无需关心。
  3. utilsutilsutils文件夹中,除了用作渲染颜色的PythonPythonPython文件外,还存有一些HTMLHTMLHTMLCSSCSSCSS文件(即使你完全不了解它们也不影响你正常使用)。
  4. biaozhu.pybiaozhu.pybiaozhu.py是主文件,你只需要运行它,就可以立即开始标注工作。
  5. login.pylogin.pylogin.py是一个登录窗口,和biaozhu.pybiaozhu.pybiaozhu.py分离,如果你对它不感兴趣,也可以将它删除,即不登陆直接开始标注工作。
  6. 如果你希望尝试先登录,再标注的流程,那么你将用到注册器.py注册器.py注册器.py。执行注册器.py注册器.py注册器.py,会生成一个注册码,凭借注册码,可以在login.pylogin.pylogin.py注册你的信息(本地模拟),程序会自动跳转到biaozhu.pybiaozhu.pybiaozhu.py主文件。
  7. 注意,login.pylogin.pylogin.py注册器.py注册器.py注册器.py两个文件是非必要的,你可以直接运行biaozhu.pybiaozhu.pybiaozhu.py开始你的工作。

2、运行环境

本系统通过WindowsWindowsWindowsPython3.7Python3.7Python3.7 开发。在运行代码之前,你需要检查你的PythonPythonPython本地环境是否具备下面这些工具,其中一些必备 python科学库

# Windows python3.7
ast、tkinter、platform、collections、json、re、time、PIL、webbrowser、os、sys、datetime;

3、自定义命名实体、关系模板

自定义命名实体、关系,则需要在两处修改。第1处是 configsconfigsconfigs文件夹、第2处是biaozhu.pybiaozhu.pybiaozhu.py文件中。

  1. configsconfigsconfigs文件夹中,包含entity.configentity.configentity.configrelation.configrelation.configrelation.config两个文件,通过文本文件的方式即可打开。
    在这里插入图片描述
    例如entity.configentity.configentity.config中,存储了命名实体字典,键为键盘上的快捷键,值为具体的命名实体。比如选中一段文本,按下键盘上的aaa即可将选中的文本标注为disdisdis这种实体。relation.configrelation.configrelation.config中,自定义关系,与之类似。
    在这里插入图片描述

  2. biaozhu.pybiaozhu.pybiaozhu.py文件中,构造两个字典dict1dict1dict1,dict2dict2dict2,分别表示键盘快捷键到命名实体,命名实体英文简写到键盘快捷键两个映射。
    在这里插入图片描述
    通过上面两个步骤的成功修改,即可将本工具用作你自己的本地化任务。(你可以尝试在这里将两个步骤并为一个步骤)

4、导入文件

  1. 运行biaozhu.pybiaozhu.pybiaozhu.py主文件,自动弹出下方所示的主界面,即可开始标注工作。
    在这里插入图片描述
  2. 进入主页面后点击右上方红色打开文件,选择待标注的文本文件(文件格式,后缀为txttxttxtannannannannsannsanns最为适宜)。导入文件后,会常驻提示去读文本所在的本地位置、提示当前键盘应当处于英文大写状态、导入文件状态、以及当前光标所处的文本段落位置。
    在这里插入图片描述

5、选择自定义实体和关系文件

  1. 在主页面右侧选择模板中,点击选实体下拉框选择提前自定义的命名实体文件,点击选关系下拉框选择提前自定义的关系文件。这样的设计可以方便你进行多个标注任务。
    在这里插入图片描述
  2. 如果读取的文件中有很多无效的空行空格等情况,点击右侧菜单栏的“格式化”,清理读取文本格式,方便后续标注。
    未格式化
    格式化之后

6、文本标注

  1. 成功导入文本、选取实体和关系文件后,即可开始标注。保持键盘处于大写状态,用鼠标选中待标注的实体,在键盘上点击右侧菜单栏默认分配的快捷键即可完成实体的标注。无需把所有实体都标注完成后再标注关系,可以实体与关系交替标注。(显然,结合你标注任务的需要,可以只标注实体,不标注关系)。简言之,选中文本,按下键盘快捷键,界面自动渲染颜色和标注类别,并生成一个同心圆。 同心圆是为了方便两个实体之间标注关系。
    选中文本
    按下快捷键
    标注了很多实体
  2. 通过选中固定的特殊符号(同心圆),按下快捷键,即可标注关系。标注关系时,系统会自动的为每个关系分配关系的序号、关系的类别、头尾实体信息。建议标注两个命名实体之后,紧接着标注两者关系。系统会自动生成标记信息,例如对“碘过量”这个实体标注关系R7_K1R7\_K1R7_K1、对“碘缺乏”这个实体标注关系R7_K2R7\_K2R7_K2R7_K1R7\_K1R7_K1它表示第7对关系,关系类别为KKK的1(头)实体, 解码时,它会自动去寻找R7_K2R7\_K2R7_K2 的2(尾)实体。
    标注实体与关系

7、撤销和取消标注

在标注过程中,如果需要返回到上一步或者返回之前多步,可以点击右侧菜单栏的“撤销”,即可撤销。如果在标注完成后,发现需要取消标注某一实体或者关系,需要用鼠标选中待取消标注段,键入快捷键,即可取消标注,防止格式错误,取消标注后剩余文本将固定在原始位置。

选中文本
在这里插入图片描述
选择撤销
在这里插入图片描述

8、导出和导出并退出系统

点击 导出 即可将标注文件导出到本地,导出的内容样式即当前页面所看见的样式(并没有解析为三元组后再导出,因为这样可以方便下次继续标注),文件存储的位置和导入文件位置在同一目录下。也可以选择“导出并退出系统”即可导出文件并且退出系统,导出的文件会以读取文件名+用户信息+导出时间三者整体作为文件名保存在本地。如果无需导出文件直接退出,点击右上侧系统关闭按钮,会提示保存文件,即可退出系统。
在这里插入图片描述
在这里插入图片描述

9、导出文件后解析

  1. 直接导出的文件格式是没有解析的,原因在于不解析,可以方便下次继续标注,即导出文件后,再打开导出的文件继续标注,另外一个原因在于,解析部分的工作也是私有化的,不同的知识图谱标注任务有不同的需求,模块化方便后续任务。为了便于理解,这里将biaozhu.pybiaozhu.pybiaozhu.py导出的标注文件取名为AAA文件。
    这是直接导出的文件-A
    在这里插入图片描述

  2. 运行encode_1.pyencode\_1.pyencode_1.py文件,读入biaozhu.pybiaozhu.pybiaozhu.py导出的标注文件AAA,将其转换成下面这种格式的文件BBB,类似于BratBratBrat标注工具的annannann文件。BBB文件中,encode_1.pyencode\_1.pyencode_1.py将每一段文字,都打上了标签。同时,会导出五元组CSVCSVCSV文件(建议通过wpswpswps或者记事本打开),在CSVCSVCSV文件中,会显头实体、头实体类别、头尾实体间关系、尾实体类别、尾实体。
    在这里插入图片描述
    自动生成五元组表格,方便快速导入Neo4jNeo4jNeo4j图库、SQLServerSQL ServerSQLServerMySQLMySQLMySQL结构化数据库。
    在这里插入图片描述

  3. 为什么不直接转换成适合下游任务的一对一标签形式呢?因为在上一个步骤中,可以手动的或者通过编程规则化的修正一些文本和标签。例如,类别为OOO的文本太多了,或者重复内容太多了,那么就可以删除,倘若转换成一对一的标签形式后再处理,将会增加一些不必要难度。
    运行encode_2.pyencode\_2.pyencode_2.py文件,读入读入BBB文件,最终将其转换为一对一适合下游任务的文件CCC。(encode_2.pyencode\_2.pyencode_2.py实现的是实体关系联合抽取标注,你可以调整代码,以适应你自己的图谱工作,它很容易实现)
    在这里插入图片描述

10、标注规范和KG规范

在标注过程中,如果需要查看标注教程、KG规范和标注规范,点击右侧菜单栏按钮,即可自动打开HTML网页查看信息。由于涉及到知识成果,文件夹中的 KG规范.htmlKG规范.htmlKG规范.html 以及 标注规范.html标注规范.html标注规范.html 我会提供空白文件,但不会影响到你正常使用。
在这里插入图片描述

11、系统提示

如果键入了无效快捷键或者未选中文本,系统右上侧会提示当前状态。例如:未选中文本、无效快捷键、导入成功、导出失败、配置信息有误等。当原始文本为PDF、图片、表格等形式存在,需要通过自定义转换器转换成文本文档,再进一步通过上面步骤进行标注。
在这里插入图片描述

二、优点与未来工作

  1. 本项目使用特殊格式符号和背景色标注段落文本中的实体与关系,使用正则解析标注结果,相比一般的标注软件增加了标注实体间关系的功能以及撤销、取消标注功能。相比大型的标注平台,本项目中软件具有操作简便直接、使用门槛低等优点。
  2. 未来可以实现一键标注功能,即选中一个实体,即可将全篇同名实体全部标注。未来还可以将其通过网页形式部署,显然这也会涉及到用户信息的问题。

三、标注软件获取方式

获取程序包,以下方式皆可:

  1. 欢迎在评论区留言你的邮箱,我将定期回复。
  2. 通过博客私信功能,向我发送信息。

致谢

感谢 芳樽里的歌 的工作,其将开源标注工具 YEDDAYEDDAYEDDA 移植到了Python3Python3Python3
链接: 开源一个文本标注工具。

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SQL学习二十、SQL高级特性

约束(constraint) 管理如何插入或处理数据库数据的规则。 DBMS 通过在数据库表上施加约束来实施引用完整性。 大多数约束是在 表定义中定义的,用 CREATE TABLE 或 ALTER TABLE 语句。 1、主键 (PRIMARY KEY) 主键是…

AMCL代码详解(六)amcl中的重采样

1.重采样判断 上一章讲述了amcl中如何根据激光观测更新粒子权重,当粒子更新完后amcl会需要根据程序判断是否需要进行重采样。这个判断在粒子观测更新权重后进行判断,代码在amcl_node.cpp中: if(!(resample_count_ % resample_interval_)){ p…

[GYCTF2020]Easyphp

尝试了一下万能密码不行,又到处翻了一下,扫目录结果又有www.zip 审计代码好久,序列化和sql结合的题还是第一次见,太菜了呀,花了很久时间才理解这个题 首先看到update.php,这个文件是最亮眼的,…

javascript 原生类 DOMParser 把 字符串格式的HTML文档源码 转换成 document DOM对象

文章目录IntroQADOMParser 在 console 的使用cheerio 在 node 项目中的使用Reference测试sumIntro 有一天我在写爬虫。 其实也说不上是爬虫,就是打开浏览器上网,觉得页面有些数据挺有意思,就打开开发者工具,在 Network/Console 中…

01.初识C语言1

一、前期准备 1.gitee网址(代码托管网站):工作台 - Gitee.com Git教程 - 廖雪峰的官方网站 (liaoxuefeng.com) 用法: 1)新建仓库 2)随意勾选 3)网络仓库构建完成 2.所学知识:计算…

【期末大作业】基于HTML+CSS+JavaScript网上订餐系统(23个页面)

🎉精彩专栏推荐 💭文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 💂 作者主页: 【主页——🚀获取更多优质源码】 🎓 web前端期末大作业: 【📚毕设项目精品实战案例 (10…

Jetson Orin 平台单进程采集四路独立video调试记录

1. 概述 现在有4个摄像头, 如何捕获4个摄像头(/dev/video0 - video3)在一个进程像这样: 现在只能捕捉一个相机使用gst-launch如下: gst-launch-1.0 v4l2src device=/dev/video0 ! video/x-raw,width=1280,height=720 ! videoconvert ! video/x-raw,format=I420 ! xvimagesi…

《设计模式:可复用面向对象软件的基础》——行为模式(2)(笔记)

文章目录五、行为模式5.5 MEDIATOR(中介者)1.意图补充部分2.动机3.适用性4.结构5.参与者6.协作7.效果8.实现9.代码示例10.相关模式5.6 MEMENTO ( 备忘录)1.意图2.别名3.动机4.适用性5.结构6.参与者7.协作8.效果9.实现10.代码示例11.相关模式5.7 OBSERVER (观察者)1.意图2.别名3…

21.C++11

C11的官网:C11 - cppreference.com 1.C11简介 在2003年C标准委员会曾经提交了一份技术勘误表(简称TC1),使得C03这个名字已经取代了C98称为C11之前的最新C标准名称。不过由于TC1主要是对C98标准中的漏洞进行修复,语言的核心部分则没有改动&am…

Java语言实现猜数字小游戏

之前笔者在学习C语言的初级阶段,就已经实现了用C语言简单实现猜数字小游戏,既然笔者最近在学习Java的初级阶段,那么,也应该写一个Java语言实现的猜数字小游戏!! C语言实现猜数字小游戏:原文链接…

浏览器播放rtsp视频流:4、jsmpeg+go实现局域网下的rtsp视频流web端播放

文章目录1.前言2.资料准备3.兼容性及适用性说明4.jsmpeg架构5.基于以上架构的go方案可行性分析6.编译和结果展示(编译坑点)7.最后1.前言 之前的rtsp转webrtc的方案存在如下缺陷:1.只支持h264;2.受限于webrtc的理解难度以及搭建tu…

Hproxy项目前端

hproxy项目前端使用vue-element-admin框架,页面为hook列表,和一个添加hook页面。 添加路由 编辑src/router/index.js文件,在constantRoutes列表追加如下路由内容 {path: /hproxy,component: Layout,redirect: /hproxy/index,hidden: false,c…

各省市软考准考证打印时间,一起来看!

距离软考还有一周,各个省市的准考证也开始打印了! 各地防疫政策一定要遵守,不然错过,又等一年! 周末也有一些省市因疫情推迟、取消考试的。 一起来看! 考完之后,会在这里讨论一些答案&#x…

UWB室内定位系统铸造智能化企业安全管理系统

进入工业4.0时代以来,数字技术不断成熟、扩散和融合,加速推动工业企业数字化、智能化转型。企业推进数字化转型要整体规划、分布实施,需要考虑企业经营管理活动的全过程、全范围、全层级。各大行业已经开始配备UWB人员定位系统,提…

电脑C盘怎么清理到最干净

如果你的电脑C盘运行内存已经快满了,这个时候你怎么处理?让我们来看看如何清理C盘。 c如何清理盘: 方法一:存储状态 点击电脑win键,在设备左侧弹出提示框,进入系统配置,然后点击系统软件选项…

MyBatis Plus实现动态字段排序

利用周末时间,对已有的项目进行了升级,原来使用的是tkmybatis,改为mybatis plus。但是由于修改了返回数据的格式,前端页面字段排序失效了,需要刷新表格才会排序。页面效果如下 easyui的数据表格datagrid支持多字段排序…

商用车进入回暖周期,哪些供应商在领跑「主动安全」前装赛道

由于受到经济周期性影响,去年开始商用车市场出现一波下行行情。 中国汽车工业协会发布数据显示,2022年1-9月,商用车产销分别完成242.6万辆和248.4万辆,同比下降32.6%和34.2%,降幅较1-8月收窄1.5个百分点和2个百分点&a…

ZAB协议

1、定义 ZAB 协议全称:Zookeeper Atomic Broadcast(Zookeeper 原子广播协议)。 ZAB 协议是为分布式协调服务 Zookeeper 专门设计的一种支持 崩溃恢复 和 原子广播 协议,基于该协议,Zookeeper 实现了一种 主备模式 的…

什么是行内元素的盒模型

目录 行内元素的盒模型 display 可选值: visibility 可选值: 行内元素的盒模型 行内元素不支持设置宽度和高度 但是这并不是说明行内元素没有内容区 而是通过width和height不能改变内容区的大小 行内元素的内容区是由他里面的内容决定的&#xff0…

【视觉基础篇】14 # 如何使用片元着色器进行几何造型?

说明 【跟月影学可视化】学习笔记。 如何用片元着色器控制局部颜色? 把图片绘制为纯黑色: const fragment #ifdef GL_ESprecision highp float;#endifvarying vec2 vUv;void main() {gl_FragColor vec4(0, 0, 0, 1);} ;根据纹理坐标值来绘制&#…