【知识图谱】【红楼梦】

news2024/9/24 1:24:57

参考链接

  • 安装、使用教程(知乎):https://zhuanlan.zhihu.com/p/634006024
  • Git :https://github.com/chizhu/KGQA_HLM
    • 注:原项目为 【 重庆邮电大学,2018 林智敏 的毕业设计 】
    • 【 感谢大佬的分享 】
  • java 的 jdk 下载地址: https://www.oracle.com/java/technologies/downloads/

环境准备

  • java 的 jdk 下载地址: https://www.oracle.com/java/technologies/downloads/
    在这里插入图片描述
  • noe4j 下载链接:https://neo4j.com/download/
  • 安装、使用教程(知乎):https://zhuanlan.zhihu.com/p/634006024
    • 对 neo4j 进行了简单的介绍
    • 并对 neo4j 的优势进行了讲解
  • neo4j 激活码:在第一次打开 neo4j 的时候需要用到

命令行启动 neo4j,并使用

  • cmd 中启动命令:neo4j console
    在这里插入图片描述 - Neo4j使用
      1. 浏览器打开地址:http://localhost:7474/
      1. 初始登录用户名密码:默认均为:neo4j
      1. 第一次登录的时候,需要修改密码(最低8位密码)
        在这里插入图片描述

红楼梦项目

  • Git :https://github.com/chizhu/KGQA_HLM

  • 环境安装:pip install -r requirement.py

  • 修改neo_db目录下的配置文件config.py,设置图数据库的账号(neo4j)和密码(8 位密码)。

  • 切换到neo_db目录下,执行python create_graph.py 建立知识图谱

  • ltp 模型下载:https://pyltp.readthedocs.io/zh-cn/latest/api.html#id2

    • ltp:Language Technology Platform
    • 文件夹下有很多模型,其实只需要下载一个版本中的一个压缩文件夹就行。然后解压对应的压缩包,回去对应的模型文件。
  • 在KGQA目录下,修改ltp.py里的ltp模型文件的存放目录

    • 模型路径如果为相对路径,模型一直加载不成功
    • 需要将模型的路径改成据对路径,即可完成
  • 运行python app.py,浏览器打开localhost:5000即可查看

项目架构

在这里插入图片描述

ltp.py 修改的密码如下

  • 主要应该就是将两个模型的相对路径,改成了绝对路径
# -*- coding: utf-8 -*-
import pyltp
import os

LTP_DATA_DIR = './model/'  # ltp模型目录的路径,模型的路径要改成对应的绝对路径。

def cut_words(words):
    # seg_model_path = os.path.join(LTP_DATA_DIR, 'cws.model')
    seg_model_path = r'D:\python\project\knowledge_graph\KGQA_HLM-master\KGQA\model\cws.model'
    segmentor = pyltp.Segmentor(seg_model_path)  # 直接在创建对象时传递模型路径
    words = segmentor.segment(words)
    array_str = "|".join(words)
    array = array_str.split("|")
    segmentor.release()
    return array

def words_mark(array):
    # 词性标注模型路径,模型名称为`pos.model`
    # pos_model_path = os.path.join(LTP_DATA_DIR, 'pos.model')
    pos_model_path = r'D:\python\project\knowledge_graph\KGQA_HLM-master\KGQA\model\pos.model'
    postagger = pyltp.Postagger(pos_model_path)  # 直接在创建对象时传递模型路径
    postags = postagger.postag(array)  # 词性标注
    pos_str = ' '.join(postags)
    pos_array = pos_str.split(" ")
    postagger.release()  # 释放模型
    return pos_array

def get_target_array(words):
    target_pos = ['nh', 'n']
    target_array = []
    seg_array = cut_words(words)
    pos_array = words_mark(seg_array)
    for i in range(len(pos_array)):
        if pos_array[i] in target_pos:
            target_array.append(seg_array[i])
    target_array.append(seg_array[1])
    return target_array

结果展示

首页

在这里插入图片描述

检索人物关系

在这里插入图片描述

红楼梦人物关系全貌

在这里插入图片描述

人物关系问答

在这里插入图片描述

  • 自己尝试过的问题如下:
    • 贾宝玉的爸爸是谁?
    • 贾宝玉的爸爸的爸爸的爸爸的兄弟的儿子的儿子的儿子的儿子的老婆
    • 薛宝钗的老公是谁

END

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Web渗透:Shiro550漏洞(CVE-2016-4437)

Apache Shiro 是一个强大且易于使用的Java安全框架,提供了身份验证(Authentication)、授权(Authorization)、会话管理(Session Management)和密码学支持等功能。Apache Shiro 550反序列化漏洞&a…

set类和map类介绍和简单使用

目录 set类介绍与简单使用 set类 multiset类 map类介绍与简单使用 map类 multimap类 set类介绍与简单使用 set类是一种关联式容器,在数据检索时比序列式容器效率更高。本质是一个常规的二叉搜索树,但是为了防止出现单支树导致效率下降进行了相关优…

188数码管轮询扫描

前言 最近用到了188数码管,总结一下。 188数码管,用5个IO,在不借助外部驱动芯片的情况下,可以点亮20个灯。188数码管广泛应用于电子烟、充电器、充电宝、DVD、高级音响、工业设备控制面板、医疗器械等多个领域,满足不…

FPGA FIR fdatool filter designer MATLAB

位数问题 fdatool 先确定输入信号的位宽,比如17位在fdatool中,选set quantization parameters 选input/output 设置input word length 为17bit(not confirmed) fir compiler implementation 注意: 当设置输入位宽为16位时,ip核…

Java 快速入门学习 -- Day 2

Java 快速入门 Ⅱ maven(图书管理员)IDEA使用 maven框架 maven(图书管理员) maven 仓库,图书馆。要看书的化先从家里找(本地仓库),本地找不到就去中央仓库或者镜像仓库找&#xff0c…

CSA笔记3-文件管理命令(补充)+vim+打包解包压缩解压缩命令

grep(-i -n -v -w) [rootxxx ~]# grep root anaconda-ks.cfg #匹配关键字所在的行 [rootxxx ~]# grep -i root anaconda-ks.cfg #-i 忽略大小写 [rootxxx ~]# grep -n root anaconda-ks.cfg #显示匹配到的行号 [rootxxx ~]# grep -v root anaconda-ks.cfg #-v 不匹配有…

记录些MySQL题集(8)

ACID原则、事务隔离级别及事务机制原理 一、事务的ACID原则 什么是事务呢?事务通常是由一个或一组SQL组成的,组成一个事务的SQL一般都是一个业务操作,例如聊到的下单:「扣库存数量、增加订单详情记录、插入物流信息」&#xff0…

AQS详解

文章目录 AQS 是什么?AQS 的原理是什么?AQS 资源共享方式总结 AQS 是什么? AQS 的全称为 AbstractQueuedSynchronizer ,翻译过来的意思就是抽象队列同步器。这个类在 java.util.concurrent.locks 包下面。 AQS是一个用来构建锁和…

【操作系统】定时器(Timer)的实现

这里写目录标题 定时器一、定时器是什么二、标准库中的定时器三、实现定时器 定时器 一、定时器是什么 定时器也是软件开发中的⼀个重要组件.类似于⼀个"闹钟".达到⼀个设定的时间之后,就执行某个指定 好的代码. 定时器是⼀种实际开发中⾮常常用的组件. ⽐如⽹络通…

base SAS programming学习笔记13(Array)

1.Array array-name{dimension} <elements> array-name&#xff1a;向量名称 dimension&#xff1a;向量长度&#xff0c;默认为1&#xff1b; elements:列出变量名&#xff0c;变量名要么全是数值变量或者全是字符变量 array-name和variable不能相同&#xff1b;也不能和…

【BUG】已解决:java.lang.IllegalStateException: Duplicate key

已解决&#xff1a;java.lang.IllegalStateException: Duplicate key 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页&#xff0c;我是博主英杰&#xff0c;211科班出身&#xff0c;就职于医疗科技公司&#xff0c;热衷分享知识&#xff0c;武汉城市…

Java红娘婚恋相亲交友系统小程序源码

红娘婚恋相亲交友小程序&#xff1a;遇见爱情&#xff0c;从指尖开始&#x1f496; &#x1f4f1; 掌中红娘&#xff0c;随时待命 &#x1f48c; 在这个数字化时代&#xff0c;爱情也迎来了它的新舞台——“红娘婚恋相亲交友小程序”。只需轻轻一点&#xff0c;你的专属红娘就…

记录些MySQL题集(6)

MySQL 单表为什么不要超过 2000W 行&#xff1f; 数据持久化在磁盘中&#xff0c;磁盘的最小单元是扇区&#xff0c;一个扇区 0.5 KB&#xff0c;而由 8 个扇区可以构成一个文件系统块&#xff08;4K&#xff09;&#xff0c;以 InnoDB 存储引擎为例&#xff0c;一个数据页的大…

浅谈C嘎嘎类与对象

本篇文章与大家浅谈一下C嘎嘎的类与对象知识点 类的定义 关键字&#xff1a;class 语法格式&#xff1a; class 类名 { }&#xff1b;//这里的分号不能少 此外&#xff0c;class有三个属性分别是private、public、protected&#xff0c;这三个属性是干啥的&#xff0c;相…

昇思25天学习打卡营第13天|CycleGAN 图像风格迁移互换全流程解析

目录 数据集下载和加载 可视化 构建生成器 构建判别器 优化器和损失函数 前向计算 计算梯度和反向传播 模型训练 模型推理 数据集下载和加载 使用 download 接口下载数据集&#xff0c;并将下载后的数据集自动解压到当前目录下。数据下载之前需要使用 pip install dow…

如何PR到别人仓库(指定分支,无废话)

如何PR到别人仓库&#xff08;指定分支&#xff09; 记录一下&#xff0c;之前都是直接master分支&#xff0c;现在记录如何pr到别人仓库的其他分支 首先进入别人仓库然后点击fork到自己仓库 步骤&#xff08;以博主自己一个例子为例&#xff09; &#xff08;1&#xff09;…

配置和保护SSH

使用SSH访问远程命令行 描述Secure Shell SSH&#xff08;Secure Shell&#xff09; 是一种网络协议&#xff0c;用于在不安全的网络上安全地进行系统管理和数据传输。它最初由 Tatu Ylnen 于1995年设计&#xff0c;并成为保护网络服务免受攻击的标准。SSH提供了多种功能&…

prometheus+grafana应用监控配置

配置Prometheus 官方地址&#xff1a;Download | Prometheus &#xff08;wegt下载压缩包&#xff0c;解压并重命名prometheus&#xff0c;文件放于/data/prometheus即可&#xff09; 配置 service方法(文件放于 /etc/systemd/system/prometheus.service)&#xff1a; [Unit…

Windows与Ubuntu安装ffmpeg

文章目录 前言ffmpeg的简介安装ffmpegWindows下载设置环境变量 Ubuntu 总结 前言 FFmpeg是一款非常强大的开源音视频处理工具&#xff0c;它包含了众多的音视频编解码库&#xff0c;可以用于音视频的采集、编解码、转码、流化、过滤和播放等复杂的处理。在Windows系统上安装FF…

Talk|清华大学袁天远:PreSight - 利用NeRF先验帮助自动驾驶场景在线感知

本期为TechBeat人工智能社区第605期线上Talk。 北京时间7月3日(周三)20:00&#xff0c;清华大学博士生—袁天远的Talk已经准时在TechBeat人工智能社区开播&#xff01; 他与大家分享的主题是: “PreSight - 利用NeRF先验帮助自动驾驶场景在线感知”&#xff0c;他向大家介绍了新…