当前位置: 首页 > ai >正文

基于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
  1. 存储三元组信息需要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.4config:       /usr/local/neo4j/neo4j-community-4.2.4/conflogs:         /usr/local/neo4j/neo4j-community-4.2.4/logsplugins:      /usr/local/neo4j/neo4j-community-4.2.4/pluginsimport:       /usr/local/neo4j/neo4j-community-4.2.4/importdata:         /usr/local/neo4j/neo4j-community-4.2.4/datacertificates: /usr/local/neo4j/neo4j-community-4.2.4/certificatesrun:          /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,可返回数据库内所有节点、关系、属性。

http://www.xdnf.cn/news/2152.html

相关文章:

  • 力扣面试150题--合并两个有序链表和随机链表的复制
  • BT152-ASEMI机器人率器件专用BT152
  • TEC制冷片详解(STM32)
  • 电机试验平台:实现精准测试与优化设计
  • 【开源飞控】调试
  • 统计定界子数组的数组
  • 下垂控制属于构网型控制技术
  • pytest 技术总结
  • CCF CSP 第30次(2023.05)(4_电力网络_C++)
  • Fedora 43 计划移除所有 GNOME X11 相关软件包
  • Android 13 接入 MediaSession 详细文档
  • 机器学习——朴素贝叶斯法运用
  • 网络攻防第一~四集
  • T型三电平逆变器的SPWM线电压 线与中点电压有几种电平
  • 关闭网桥的STP,解决RHEL10上qemu使用u-boot加载uImage自动加载失败的问题
  • 驱动汽车供应链数字化转型的标杆解决方案:全星研发项目管理APQP软件系统:
  • DP主站转485操作流程
  • vuePress开发和使用
  • WebAssembly全栈革命:在Rust与JavaScript之间构建高性能桥梁
  • 如何轻松将RS232转为Profibus DP,提升PLC效率?
  • ClickHouse查询执行与优化
  • 数据过滤器
  • 阿里云域名智能解析至国内外AWS的合规化部署指南
  • Windows11系统中GIT下载
  • 系统架构设计中的DSSA方法:理论、实践与行业深度应用
  • 【SwitchyOmega安装教程】
  • 【Token系列】01 | Token不是词:GPT如何切分语言的最小单元
  • 思科路由器重分发(RIP动态路由+静态路由)
  • 强化学习:高级策略梯度理论与优化方法
  • react的fiber 用法