在Linux服务器上部署中医知识图谱
在Linux服务器上部署中医知识图谱
配置Java环境
在Oracle官网或Open JDK官网下载JDK 17安装包,选择与操作系统及系统架构(32位或64位)相匹配的版本,此处使用Ubuntu系统进行演示。
使用以下命令解压JDK安装包:
tar -xvf jdk-17_linux-x64_bin.tar.gz
这将在当前目录下创建一个名为jdk-17
的目录,并将JDK文件提取到其中。
使用以下命令编辑环境变量:
export JAVA_HOME=/yldm0226/KG/jdk-17
export PATH=$JAVA_HOME/bin:$PATH
注意将JAVA_HOME替换为你解压JDK的实际路径。
使用以下命令刷新环境变量,使环境变量生效:
source ~/.bashrc
验证是否安装成功:
java -version
如果安装成功,可以看到类似下面的输出:
openjdk version "17" 2021-09-14
OpenJDK Runtime Environment (build 17+35-2724)
OpenJDK 64-Bit Server VM (build 17+35-2724, mixed mode, sharing)
配置neo4j数据库
在neo4j官网下载neo4j社区版的安装包,选择与操作系统及系统架构(32位或64位)相匹配的版本,此处使用Ubuntu系统进行演示。
使用以下命令解压neo4j安装包:
tar -xvf neo4j-community-5.17.0-unix.tar.gz
使用以下命令编辑环境变量:
export NEO4J_HOME=/yldm0226/KG/neo4j-community-5.17.0
export PATH=$NEO4J_HOME/bin:$PATH
使用以下命令刷新环境变量,使环境变量生效:
source ~/.bashrc
如果想在命令行中运行neo4j,执行以下命令:
neo4j console
如果想在后台运行neo4j,执行以下命令:
neo4j start
启动成功后,可以看到以下输出:
Directories in use:
home: /yldm0226/KG/neo4j-community-5.17.0
config: /yldm0226/KG/neo4j-community-5.17.0/conf
logs: /yldm0226/KG/neo4j-community-5.17.0/logs
plugins: /yldm0226/KG/neo4j-community-5.17.0/plugins
import: /yldm0226/KG/neo4j-community-5.17.0/import
data: /yldm0226/KG/neo4j-community-5.17.0/data
certificates: /yldm0226/KG/neo4j-community-5.17.0/certificates
licenses: /yldm0226/KG/neo4j-community-5.17.0/licenses
run: /yldm0226/KG/neo4j-community-5.17.0/run
Starting Neo4j.
Started neo4j (pid:12498). It is available at http://localhost:7474
There may be a short delay until the server is ready.
访问知识图谱
如果服务器有图形化界面,可以直接在浏览器中访问http://localhost:7474。
如果服务器没有图形化界面,需要借助ssh端口映射实现本地访问服务器上部署的知识图谱。
以Windows11系统为例,打开两个CMD窗口,分别输入以下命令:
ssh -L 7474:localhost:7474 -p ssh端口 用户名@ip
ssh -L 7687:localhost:7687 -p ssh端口 用户名@ip
将ssh端口、用户名和ip替换为自己的。
以上两行命令将本地的7474端口和7687端口映射到了远程服务器的7474端口和7687端口,这样就可以本地访问服务器上部署的知识图谱了。
在本地浏览器中访问http://localhost:7474,可以看到neo4j的Web页面:
在第一次访问http://localhost:7474时,默认的用户名和密码均为neo4j,在登录成功后,会要求我们修改一个密码,请记好这个密码,后面还要用到。
创建知识图谱
拉取开源中医知识图谱项目:
git clone https://github.com/ywjawmw/TCM_KG
安装py2neo:
pip install py2neo
打开中医知识图谱项目中的Create_Graph.py,对代码做简单的修改并将连接数据库中的认证信息改为自己,代码如下:
from py2neo import Graph, Node, Relationship, NodeMatcher, RelationshipMatcher
from tqdm import tqdm
# 连接数据库
graph = Graph("http://localhost:7474", auth=("neo4j", "你设置的neo4j的密码"),name="neo4j")
matcher_node = NodeMatcher(graph)
matcher_relation = RelationshipMatcher(graph)
with open("baseline_all_kg_triples.txt", "r", encoding="utf-8") as file:
for line in tqdm(file.readlines()):
entity_1, entity_2, relation = line.split("\t")
node_1 = matcher_node.match(name=entity_1).first()
if node_1 is None:
node_1 = Node(name=entity_1)
graph.create(node_1)
node_2 = matcher_node.match(name=entity_2).first()
if node_2 is None:
node_2 = Node(relation, name=entity_2)
graph.create(node_2)
if not node_2.has_label(relation):
node_2.add_label(relation)
graph.push(node_2)
r = Relationship(node_1, relation, node_2)
graph.create(r)
运行以上代码,就可以完成知识图谱的构建。
回到http://localhost:7474中,点击Database,就可以看到我们构建的知识图谱的节点和节点之间的关系类型:
我们可以运行命令或者点击左侧的标签查看知识图谱中的节点和关系:
neo4j使用的是Cypher查询语言(是一种专门用于图数据库的查询语言),如果想进一步使用neo4j的命令查询,可以去学习Cypher查询语言。