共计 4280 个字符,预计需要花费 11 分钟才能阅读完成。
@TOC
一、性能介绍
你好!这是一款实体关系联结标注的本地小程序,以 $Python3$ 实现。本零碎是一种标注文本语料中命名实体与关系或属性的半自动化软件系统,利用 $Python$ 编程实现可视化界面和次要性能,利用 $HTML$ 和 $CSS$ 提醒标注教程与标准(无需关怀它们如何实现)。
利用本零碎进行文本标注将原始段落文本更新为带有当时定义的命名实体、关系或属性的文本标签数据。通过主动调配快捷键、背景色将不同实体在文本中进行辨别,并生成固定格局文本出现在标注界面。选中固定符号,将实体对之间标注关系,主动生成关系序号、关系类别以及头尾实体序号。执行导出生成一对一的文本和标签后果,通过格式化、撤销、勾销标注等性能实现标注的更新。本零碎帮忙自然语言解决的标注专家对文本中实体或实体关系进行提取,导出后果用作机器训练、常识图谱构建等方向。
次要性能: 次要性能实现文本命名实体标注、实体间关系标注。
- 文本标注:用户依据提前约定的命名实体、关系属性标注标准,对导入的段落文本进行标注,次要通过背景色、快捷键以及自定义特殊符号组合造成文本的命名实体标注与区别。通过选中固定符号,标注实体间关系,零碎自动更新标注的关系类别等信息。
- 撤销、勾销标注:点击撤销按钮可实现操作回滚,返回到上一状态。也能够通过选中曾经标注的实体、关系进行勾销标注,零碎会删除段中特殊符号。
- 格式化:导入文件之后,通过格式化文本,革除文本中多余的空行空格等冗余有效字符。
-
导出文件:导出文件即能够将用户标注的段落文本,解析生成文本与标签一对一的后果文件,存储在用户读取文本同一目录下。
1、代码文件夹构造
在 $biaozhu$ 文件夹中,有 $configs$、$images$、$utils$ 三个文件夹,并且有 $biaozhu.py$、$login.py$、$recode\_1.py$、$recode\_2.py$、$ 注册器.py$ 共 5 个 $Python$ 代码文件。
- $configs$ 文件中,是用以自定义命名实体、关系的文件,你能够应用文本文件形式关上,并自定义命名实体类别、关系。(自定义实体、关系,除了 $configs$ 文件夹,$biaozhu.py$ 也须要批改)
- $images$ 文件夹中,是一些图片文件,无需关怀。
- $utils$ 文件夹中,除了用作渲染色彩的 $Python$ 文件外,还存有一些 $HTML$、$CSS$ 文件(即便你齐全不理解它们也不影响你失常应用)。
- $biaozhu.py$ 是主文件,你只须要运行它,就能够立刻开始标注工作。
- $login.py$ 是一个登录窗口,和 $biaozhu.py$ 拆散,如果你对它不感兴趣,也能够将它删除,即不登陆间接开始标注工作。
- 如果你心愿尝试先登录,再标注的流程,那么你将用到 $ 注册器.py$。执行 $ 注册器.py$,会生成一个注册码,凭借注册码,能够在 $login.py$ 注册你的信息(本地模仿),程序会主动跳转到 $biaozhu.py$ 主文件。
- 留神,$login.py$、$ 注册器.py$ 两个文件是非必要的,你能够间接运行 $biaozhu.py$ 开始你的工作。
2、运行环境
本零碎通过 $Windows$、$Python3.7$ 开发。在运行代码之前,你须要查看你的 $Python$ 本地环境是否具备上面这些工具,其中一些必备 python 迷信库
。
# Windows python3.7
ast、tkinter、platform、collections、json、re、time、PIL、webbrowser、os、sys、datetime;
3、自定义命名实体、关系模板
自定义命名实体、关系,则须要在两处批改。第 1 处是 $configs$ 文件夹、第 2 处是 $biaozhu.py$ 文件中。
- 在 $configs$ 文件夹中,蕴含 $entity.config$ 和 $relation.config$ 两个文件,通过文本文件的形式即可关上。
例如 $entity.config$ 中,存储了命名实体字典,键为键盘上的快捷键,值为具体的命名实体。比方选中一段文本,按下键盘上的 $a$ 即可将选中的文本标注为 $dis$ 这种实体。$relation.config$ 中,自定义关系,与之相似。
- 在 $biaozhu.py$ 文件中,结构两个字典 $dict1$,$dict2$,别离示意键盘快捷键到命名实体,命名实体英文简写到键盘快捷键两个映射。
通过下面两个步骤的胜利批改,即可将本工具用作你本人的本地化工作。(你能够尝试在这里将两个步骤并为一个步骤)
4、导入文件
- 运行 $biaozhu.py$ 主文件,自动弹出下方所示的主界面,即可开始标注工作。
- 进入主页面后点击右上方红色 关上文件,抉择待标注的文本文件(文件格式,后缀为 $txt$、$ann$、$anns$ 最为合适)。导入文件后,会常驻提醒去读文本所在的本地地位、提醒以后键盘该当处于英文大写状态、导入文件状态、以及以后光标所处的文本段落地位。
5、抉择自定义实体和关系文件
- 在主页面右侧 抉择模板 中,点击 选实体 下拉框抉择提前自定义的命名实体文件,点击 选关系 下拉框抉择提前自定义的关系文件。这样的设计能够不便你进行多个标注工作。
- 如果读取的文件中有很多有效的空行空格等状况,点击右侧菜单栏的“格式化”,清理读取文本格式,不便后续标注。
6、文本标注
- 胜利导入文本、选取实体和关系文件后,即可开始标注。放弃键盘处于大写状态,用鼠标选中待标注的实体,在键盘上点击右侧菜单栏默认调配的快捷键即可实现实体的标注。无需把所有实体都标注实现后再标注关系,能够实体与关系交替标注。(显然,联合你标注工作的须要,能够只标注实体,不标注关系)。简言之,选中文本,按下键盘快捷键,界面主动渲染色彩和标注类别,并生成一个同心圆。 同心圆是为了不便两个实体之间标注关系。
- 通过选中固定的特殊符号(同心圆),按下快捷键,即可标注关系。标注关系时,零碎会主动的为每个关系分配关系的序号、关系的类别、头尾实体信息。倡议标注两个命名实体之后,紧接着标注两者关系。零碎会主动生成标记信息,例如对“碘适量”这个实体标注关系 $R7\_K1$、对“碘不足”这个实体标注关系 $R7\_K2$。$R7\_K1$ 它示意第 7 对关系,关系类别为 $K$ 的 1(头)实体, 解码时,它会主动去寻找 $R7\_K2$ 的 2(尾)实体。
7、撤销和勾销标注
在标注过程中,如果须要返回到上一步或者返回之前多步,能够点击右侧菜单栏的“撤销”,即可撤销。如果在标注实现后,发现须要勾销标注某一实体或者关系,须要用鼠标选中待勾销标注段,键入快捷键,即可勾销标注,避免格局谬误,勾销标注后残余文本将固定在原始地位。
选中文本
抉择撤销
8、导出和导出并退出零碎
点击 导出 即可将标注文件导出到本地,导出的内容款式即以后页面所看见的款式(并没有解析为三元组后再导出,因为这样能够不便下次持续标注),文件存储的地位和导入文件地位在同一目录下。也能够抉择“导出并退出零碎”即可导出文件并且退出零碎,导出的文件会以读取文件名 + 用户信息 + 导出工夫三者整体作为文件名保留在本地。如果无需导出文件间接退出,点击右上侧零碎敞开按钮,会提醒保留文件,即可退出零碎。
9、导出文件后解析
- 间接导出的文件格式是没有解析的,起因在于不解析,能够不便下次持续标注,即导出文件后,再关上导出的文件持续标注 (下次关上时,关系标签会从新标号,这不影响失常应用,因为在解析时,标签会匹配最近的一个合乎规定的标签),另外一个起因在于,解析局部的工作也是私有化的,不同的常识图谱标注工作有不同的需要,模块化不便后续工作。为了便于了解,这里将 $biaozhu.py$ 导出的标注文件取名为 $A$ 文件。
这是间接导出的文件 -A - 运行 $encode\_1.py$ 文件,读入 $biaozhu.py$ 导出的标注文件 $A$,将其转换成上面这种格局的文件 $B$,相似于 $Brat$ 标注工具的 $ann$ 文件。$B$ 文件中,$encode\_1.py$ 将每一段文字,都打上了标签。
- 为什么不间接转换成适宜上游工作的一对一标签模式呢?因为在上一个步骤中,能够手动的或者通过编程规则化的修改一些文本和标签。例如,类别为 $O$ 的文本太多了,或者反复内容太多了,那么就能够删除,假使转换成一对一的标签模式后再解决,将会减少一些不必要难度。
运行 $encode\_2.py$ 文件,读入 $encode\_1.py$ 生成的 $B$ 文件,最终将其转换为一对一适宜上游工作的文件 $C$。($encode\_2.py$ 实现的是实体关系联结抽取标注,你能够调整代码,以适应你本人的图谱工作,它很容易实现)。同时,会导出五元组 $CSV$ 文件(倡议通过 $wps$ 或者记事本关上),在 $CSV$ 文件中,会显头实体、头实体类别、头尾实体间关系、尾实体类别、尾实体。
主动生成五元组表格,不便疾速导入 $Neo4j$ 图库、$SQL Server$、$MySQL$ 结构化数据库。
生成的一对一适宜上游工作标签。(你能够更改 $encode\_2.py$, 以调整标签生成规定)
10、标注标准和 KG 标准
在标注过程中,如果须要查看标注教程、KG 标准和标注标准,点击右侧菜单栏按钮,即可主动关上 HTML 网页查看信息。因为波及到常识成绩,文件夹中的 $KG 标准.html$ 以及 $ 标注标准.html$ 我会提供空白文件,但不会影响到你失常应用。
11、零碎提醒
如果键入了有效快捷键或者未选中文本,零碎右上侧会提醒以后状态。例如:未选中文本、有效快捷键、导入胜利、导出失败、配置信息有误等。当原始文本为 PDF、图片、表格等模式存在,须要通过自定义转换器转换成文本文档,再进一步通过下面步骤进行标注。
二、长处与将来工作
- 本我的项目应用非凡格局符号和背景色标注段落文本中的实体与关系,应用正则解析标注后果,相比个别的标注软件减少了标注实体间关系的性能以及撤销、勾销标注性能。相比大型的标注平台,本我的项目中软件具备操作简便间接、应用门槛低等长处。
- 将来能够实现一键标注性能,即选中一个实体,即可将全篇同名实体全副标注。将来还能够将其通过网页模式部署,显然这也会波及到用户信息的问题。
三、标注软件获取形式
获取程序包,以下形式皆可:
- 欢送在评论区留言你的邮箱,我将定期回复。
- 通过博客私信性能,向我发送信息。
- 间接拜访我的 GitHub 地址 - 公开收费:” 火星 ” 标注工具
- 查看:我的资源
致谢
感激 芳樽里的歌 的工作,其将开源标注工具 $YEDDA$ 移植到了 $Python3$。
本文的标注工具是在 芳樽里的歌 根底上的改良优化版本。
本文由 mdnice 多平台公布