基于Python+Neo4j实现新冠信息挖掘系统

软件说明书

一、引言

便携本使用说明的目的是充分叙述本软件所能实现的功能及运行环境,以便使用者了解本软件的使用范围和使用方法,并为软件的维护和更新提供必要的信息。

二、软件概述

2.1软件简介

新型冠状病毒肺炎肆虐全球,给人们的健康和生命造成了严重的威胁,其基因型与表型信息能够使人们更好的理解该疾病的发生发展机制,利用计算方法获取新型冠状病毒肺炎相关的基因型与表型信息对其进行分析整理,将使人们进一步认识该疾病,从而辅助医疗决策。

软件用于提取文本中基因型、表型的实体及它们的关系。在分析后文本显示区域会高亮文本显示不同实体的类型。并在打开Neo4j服务后可以将实体关系保存至图形数据库。

2.2软件运行环境

|-------------------|-------------------------|
| 操作系统 | macOS Big Sur 11.4 |
| 数据库(可选,不影响实体识别使用) | Neo4j 4.2.4 |
| python环境 | Python3.6 |
| 设备配置 | CPU:1.1Hz 内存:8GB 硬盘:40G |

2.3系统配置

  1. 系统应用在python3.6环境中,我们需要用到python的工具包
    py3.6安装-官方
    使用pip安装指令如下:

    /bin/bash

    pip install pyside2 pip install py2neo
    $ pip install --upgrade https://storage.googleapis.com/tensorflow/mac/cpu/tensorflow-1.14.0-py3-none-any.whl

  2. 存储三元组信息需要Neo4j服务的支持。
    安装Neo4j服务端
    根据安装界面提示一直点击即可,安装完毕后,neo4j的默认安装路径在"/usr/local/"
    打开终端terminal,在指令行输入
    稍等片刻后即可打开neo4j服务端,正确显示如下:

    $ /usr/local/neo4j/neo4j-community-4.2.4/bin/neo4j console
    Directories in use:
    home: /usr/local/neo4j/neo4j-community-4.2.4
    config: /usr/local/neo4j/neo4j-community-4.2.4/conf
    logs: /usr/local/neo4j/neo4j-community-4.2.4/logs
    plugins: /usr/local/neo4j/neo4j-community-4.2.4/plugins
    import: /usr/local/neo4j/neo4j-community-4.2.4/import
    data: /usr/local/neo4j/neo4j-community-4.2.4/data
    certificates: /usr/local/neo4j/neo4j-community-4.2.4/certificates
    run: /usr/local/neo4j/neo4j-community-4.2.4/run
    Starting Neo4j.
    2021-06-04 06:18:39.090+0000 INFO Starting...
    2021-06-04 06:18:42.941+0000 INFO ======== Neo4j 4.2.4 ========
    2021-06-04 06:18:45.062+0000 INFO Performing postInitialization step for component 'security-users' with version 2 and status CURRENT
    2021-06-04 06:18:45.063+0000 INFO Updating the initial password in component 'security-users'
    2021-06-04 06:18:45.493+0000 INFO Bolt enabled on localhost:7687.
    2021-06-04 06:18:47.412+0000 INFO Remote interface available at http://localhost:7474/
    2021-06-04 06:18:47.414+0000 INFO Started.

在终端打印出2021-06-04 06:18:47.414+0000 INFO Started.后打开浏览器,输入地址http://localhost:7474/后跳转到客户端界面即可完成Neo4j的安装。

2.4软件结构

本软件是一个前后端混合的应用程序。前段通过Qt实现的简单的用户交互的程序,通过ui组件进行交互。

功能实现由后端程序提供,后端程序负责命名实体的提取。neo4j的服务端与实体识别模型分隔开,在没有neo4j服务时也不影响识别模型的使用。关系如下图:

2.5软件性能

后端实现的命名实体识别性能在模型的测评上准确率达94%

在分析时,系统的处理速度为1000字符/s ;保存三元组关系时,需要建立neo4j连接,过程需要2s

三、软件使用说明

3.1训练数据

数据集中将所有字符分为六大类:新冠(COVID)、基因(GENE)、表型(PHEN)、蛋白(PROTEIN)、疾病(DISEASE)及其他类(O)。共计约2421句话。分为三个样本,train(训练集)、test(测试集)及dev(验证集)。其中总计COVID类型有559个,GENE样本有1517个,PHEN样本有2950个,PROTEIN样本有1523个,DISEASE样本有1879个。如下表所示:

|---------|------|-------|------|------|---------|---------|
| 类别 | 句数 | COVID | GENE | PHEN | PROTEIN | DISEASE |
| 训练集 | 1704 | 316 | 960 | 2395 | 1013 | 1277 |
| 测试集 | 344 | 140 | 263 | 296 | 152 | 410 |
| 验证集 | 373 | 103 | 314 | 259 | 358 | 192 |

为提高模型的准确率,减少识别表型和疾病的错误率,可将PHEN和DISEASE类别的实体融合。

数据集来源于两部分

  • 2018年的天池比赛数据集。
  • 新冠研究文献的手动标注。

以上所有数据集在ner/data/,其中来源分布:

|-----|---------|--------|
| | 天池比赛数据集 | 文献手动标注 |
| 训练集 | 1255句 | 449句 |
| 测试集 | 98句 | 246句 |
| 验证集 | 206句 | 167句 |

3.2软件使用

项目可以直接运行,命名实体识别的模型参数已经保存在./ner/ckpt中。如果想自训练,直接执行./ner/train.py文件即可。

  1. 启动程序
    启动有两种方法:
    (1)pyCharm工具
    打开pyCharm后,配置环境

    注意python环境需要3.6 ,其他版本不支持tensorflow1.14.0

    环境配好后即可执行run main方法。
    (2)终端工具terminal
    本机带有python环境,所以使用cd指令到达过程目录下,调用

    $ python main_ui.py

即可。

  1. 启动程序后在一段加载动画后,即可进入主界面
    主界面包含4个按钮
    • :用户导入文本文件,选中文件后打开后即可自动加载到文本框内,文件仅支持txt格式。
    • :点击分析后稍等片刻即可看到界面上识别的高亮实体。
    • :保存信息需要在Neo4j服务端打开的情况下进行,否则会发出提示。
    • :点击后出现一个h5的页面,可以作为一个Neo4j的客户端,使用原生的Neo4j查看方法。

以及一个文本框,文本框内存储文本,可以导入、复制或者直接编辑。

3.2.1打开文件

在本地文件下有txt文件的文本可以通过文件的流处理读取内容到文本框或者可以自己编辑、粘贴等。

3.2.2开始分析

点击开始分析后系统自动调用后台分析文本内的数据,在控制台中的输出可以看到分析后的实体类型数据及可存储的三元组序列。

分析需要一些时间,约1000字/s

分析过后可以看到界面的文本框内颜色的变化:

其中颜色表格如下:

|----------|----------|
| 高亮颜色 | 实体类型 |
| 绿色 | 基因型 |
| 蓝色 | 蛋白 |
| 紫色 | 新冠相关 |
| 红色 | 表型、疾病 |

3.2.3保存信息

在识别文本内容后,如果有三元组信息,会建立neo4j的连接,并保存到neo4j数据库中,保存成功后标签提示成功。

3.2.4图谱页面

打开后可以异步生成一个新的ui界面,默认前往neo4j登陆界面,输入登录的账号密码即可进入neo4j。

打开neo4j后,可以在两个界面之间来回切换,以及三元组数据内容的比对。

3.3neo4j使用

登陆后首先展现的是这个界面。它主要有两个部分构成

  • 左侧是可视化的操作选项、使用教程等,对新手较为友好,但是功能有限,只能用于查询。
  • 顶栏是指令执行框,可执行复杂的数据库语句,适合neo4j相关复杂的开发人员。

打开"database"后有一些结点、关系、属性的标签,点击后会自动执行match指令,并显示在右边的图形图谱中。

如点击 后执行MATCH (n) RETURN n LIMIT 25,可返回数据库内所有节点、关系、属性。

相关推荐
yuanpan5 分钟前
C#如何正确的停止一个多线程Task?CancellationTokenSource 的用法。
开发语言·c#
程高兴7 分钟前
单相交直交变频电路设计——matlab仿真+4500字word报告
开发语言·matlab
hyhrosewind31 分钟前
Python函数基础:说明文档(多行注释),函数嵌套调用,变量作用域(局部,全局,global关键字),综合案例
python·变量作用域·函数说明文档(多行注释)·函数嵌套调用·局部变量和全局变量·函数内修改全局变量·global关键字
我真的不会C1 小时前
QT中的事件及其属性
开发语言·qt
一点.点1 小时前
李沐动手深度学习(pycharm中运行笔记)——04.数据预处理
pytorch·笔记·python·深度学习·pycharm·动手深度学习
一点.点1 小时前
李沐动手深度学习(pycharm中运行笔记)——07.自动求导
pytorch·笔记·python·深度学习·pycharm·动手深度学习
2501_906314322 小时前
优化无头浏览器流量:使用Puppeteer进行高效数据抓取的成本降低策略
开发语言·数据结构·数据仓库
让我们一起加油好吗2 小时前
【C++】类和对象(上)
开发语言·c++·visualstudio·面向对象
大霸王龙2 小时前
Python对比两张CAD图并标记差异的解决方案
python·opencv·计算机视觉
magic 2453 小时前
深入解析Promise:从基础原理到async/await实战
开发语言·前端·javascript