基于电影知识图谱的智能问答系统

1,391次阅读
没有评论

基于电影知识图谱的智能问答系统系列章节传送门:
基于电影知识图谱的智能问答系统(一) — Mysql数据准备

基于电影知识图谱的智能问答系统(二) — Neo4j导入CSV文件

基于电影知识图谱的智能问答系统(三) — Spark环境搭建

基于电影知识图谱的智能问答系统(四) — HanLP分词器

基于电影知识图谱的智能问答系统(五) — Spark朴素贝叶斯分类器

基于电影知识图谱的智能问答系统(六) — 问题训练样本集敲定

基于电影知识图谱的智能问答系统(七) — Neo4j语句那点事

番外篇(2022年11月15日16:45:35)

=========================================================================

如果docker官方的镜像中心无法访问(国外的需要墙)下载不了image,可以参考以下的操作来解决:

1、找到“daemon.json”文件;

2、使用vim命令将其打开;

3、添加“{ “registry-mirrors” :[“https://docker.mirrors.ustc.edu.cn”]}”内容;

4、重启docker即可。

=========================================================================

定制了2个docker镜像,分别是带数据的neo4j数据库镜像和带hanlp字典数据及训练样本数据和应用程序的tomcat镜像,如下:

镜像地址:
Docker Hub
https://hub.docker.com/r/appleyk/neo4j-movies

镜像地址:
Docker Hub
https://hub.docker.com/r/appleyk/tomcat8-movies

其中tomcat镜像由于带有hanlp数据部分,所以镜像本身有点大,如果你的docker没有配置镜像加速代理服务的话拉取会很慢,所以在我的阿里云镜像仓库中也推送了一份如下:

阿里云镜像地址:registry.cn-hangzhou.aliyuncs.com/appleyk/tomcat8-movies

拉取方式:

docker pull registry.cn-hangzhou.aliyuncs.com/appleyk/tomcat8-movies:v1.0
使用docker启动neo4j容器效果如下(无需考虑版本和数据导入,只需按配置来即可):

使用docker启动tomcat容器效果如下(无需考虑hanlp数据和训练样本,只需按配置来即可):

GitHub地址:GitHub – kobeyk/Spring-Boot-Neo4j-Movies: SpringBoot集成Neo4j图数据库,利用Spark的朴素贝叶斯分类器实现基于电影知识图谱的智能问答系统。
码云(gitee)地址:Spring-Boot-Neo4j-Movies: SpringBoot集成Neo4j图数据库,利用Spark的朴素贝叶斯分类器实现基于电影知识图谱的智能问答系统。
注意最新代码为分支:v0.1.2

注:本篇不再过多的讲解如何demo实现了,集成也很是简单的,前面几章也已经给本篇做足了铺垫。项目中的代码注释也是非常的详细,最后会附上整个项目的git仓库地址。
一、效果预览
(1)电影简介
前端展示:

后台效果:

(2)电影评分
前端展示:

后台效果:

(3)电影演员列表
前端展示:

后台效果:

(4)演员A和演员B合作过哪些电影
前端展示:

后端效果:

由于章子怡本来是一个完整的人名,但是HanLP分词的时候,却意外的“失手”了,因此导致最后查询无果

我们再换个问题试验一把

后台效果:

(5)某演员出演过那种类型的电影或演过某种类型的电影有哪些

……etc,其余不在做演示,下面直接来看如何利用Spring-Boot搭建我们的智能问答系统

二、项目目录结构图

三、Movie节点类
这里只拿电影信息的节点类来进行演示,比如,movie对应的节点在Java中定义类如下:

package com.appleyk.node;

import java.util.List;

import org.neo4j.ogm.annotation.NodeEntity;
import org.neo4j.ogm.annotation.Relationship;

import com.fasterxml.jackson.annotation.JsonProperty;

@NodeEntity
public class Movie extends BaseEntity{

private Long mid;
private Double rating;
private String releasedate;
private String title;
private String introduction;

@Relationship(type = "is")
@JsonProperty("电影类型")
private List<Genre> genres;


public Movie() {

}

public Long getMid() {
    return mid;
}

public void setMid(Long mid) {
    this.mid = mid;
}

public Double getRating() {
    return rating;
}

public void setRating(Double rating) {
    this.rating = rating;
}

public String getReleasedate() {
    return releasedate;
}

public void setReleasedate(String releasedate) {
    this.releasedate = releasedate;
}

public String getTitle() {
    return title;
}

public void setTitle(String title) {
    this.title = title;
}

public String getIntroduction() {
    return introduction;
}

public void setIntroduction(String introduction) {
    this.introduction = introduction;
}

public List<Genre> getGenres() {
    return genres;
}

public void setGenres(List<Genre> genres) {
    this.genres = genres;
}

}
其中属性和neo4j中的movie节点的属性一一对应

电影信息节点里面带有关系is,对应neo4j中该电影的类型

通过Controller对外提供的查询接口如下:

外部调用效果如下:

四、加载自定义带词性的字典数据
注:不要使用HanLP提供的自定义词典路径,因为这个除了不能随心所欲的定义分词的词性以外,还极容易出现分词紊乱,词性对不上的bug,为了满足我们对专有电影名、电影分数及电影类型词性的定义,我们使用额外加载的方式设置HanLP的自定义分词,application.properties中设置自定义词典的路径如下:

这三个文件的下载地址:自定义词典.zip_免费高速下载|百度网盘-分享无限制

注:也可以根据自己的需求进行设置

五、项目完整地址
GitHub下载地址:Spring-Boot集成Neo4j并利用Spark的朴素贝叶斯分类器实现基于电影知识图谱的智能问答系统

完结!!!
番外篇:如何将项目导入到IDEA并运行测试效果?

(1)IDEA项目结构图(导入pom文件,配置好Maven后如下)

(2)项目配置文件

(3)内嵌html测试前端访问页面

(4)启动项目

(5)浏览器访问主页Index.html

正文完
可以使用微信扫码关注公众号(ID:xzluomor)
post-qrcode
 0
评论(没有评论)

文心AIGC

2023 年 12 月
 123
45678910
11121314151617
18192021222324
25262728293031
文心AIGC
文心AIGC
人工智能ChatGPT,AIGC指利用人工智能技术来生成内容,其中包括文字、语音、代码、图像、视频、机器人动作等等。被认为是继PGC、UGC之后的新型内容创作方式。AIGC作为元宇宙的新方向,近几年迭代速度呈现指数级爆发,谷歌、Meta、百度等平台型巨头持续布局
文章搜索
热门文章
潞晨尤洋:日常办公没必要上私有模型,这三类企业才需要 | MEET2026

潞晨尤洋:日常办公没必要上私有模型,这三类企业才需要 | MEET2026

潞晨尤洋:日常办公没必要上私有模型,这三类企业才需要 | MEET2026 Jay 2025-12-22 09...
“昆山杯”第二十七届清华大学创业大赛决赛举行

“昆山杯”第二十七届清华大学创业大赛决赛举行

“昆山杯”第二十七届清华大学创业大赛决赛举行 一水 2025-12-22 17:04:24 来源:量子位 本届...
MiniMax海螺视频团队首次开源:Tokenizer也具备明确的Scaling Law

MiniMax海螺视频团队首次开源:Tokenizer也具备明确的Scaling Law

MiniMax海螺视频团队首次开源:Tokenizer也具备明确的Scaling Law 一水 2025-12...
天下苦SaaS已久,企业级AI得靠「结果」说话

天下苦SaaS已久,企业级AI得靠「结果」说话

天下苦SaaS已久,企业级AI得靠「结果」说话 Jay 2025-12-22 13:46:04 来源:量子位 ...
最新评论
ufabet ufabet มีเกมให้เลือกเล่นมากมาย: เกมเดิมพันหลากหลาย ครบทุกค่ายดัง
tornado crypto mixer tornado crypto mixer Discover the power of privacy with TornadoCash! Learn how this decentralized mixer ensures your transactions remain confidential.
ดูบอลสด ดูบอลสด Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
ดูบอลสด ดูบอลสด Pretty! This has been a really wonderful post. Many thanks for providing these details.
ดูบอลสด ดูบอลสด Pretty! This has been a really wonderful post. Many thanks for providing these details.
ดูบอลสด ดูบอลสด Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
Obrazy Sztuka Nowoczesna Obrazy Sztuka Nowoczesna Thank you for this wonderful contribution to the topic. Your ability to explain complex ideas simply is admirable.
ufabet ufabet Hi there to all, for the reason that I am genuinely keen of reading this website’s post to be updated on a regular basis. It carries pleasant stuff.
ufabet ufabet You’re so awesome! I don’t believe I have read a single thing like that before. So great to find someone with some original thoughts on this topic. Really.. thank you for starting this up. This website is something that is needed on the internet, someone with a little originality!
ufabet ufabet Very well presented. Every quote was awesome and thanks for sharing the content. Keep sharing and keep motivating others.
热评文章
库克提拔复旦校友掌舵苹果基础模型!庞若鸣走后涨薪止血,谷歌旧部占据半壁江山

库克提拔复旦校友掌舵苹果基础模型!庞若鸣走后涨薪止血,谷歌旧部占据半壁江山

库克提拔复旦校友掌舵苹果基础模型!庞若鸣走后涨薪止血,谷歌旧部占据半壁江山 衡宇 2025-12-21 10:...
清华孙茂松:对工业界而言,大厂可以Scaling,其他玩家重在垂直应用 | MEET2026

清华孙茂松:对工业界而言,大厂可以Scaling,其他玩家重在垂直应用 | MEET2026

清华孙茂松:对工业界而言,大厂可以Scaling,其他玩家重在垂直应用 | MEET2026 Jay 2025...
奥迪+华为=油车智能天花板?

奥迪+华为=油车智能天花板?

Failed to fetch content Read More 
LeCun离职前的吐槽太猛了

LeCun离职前的吐槽太猛了

LeCun离职前的吐槽太猛了 一水 2025-12-21 19:13:08 来源:量子位 “LLM到不了AGI...
自变量王潜:具身智能是物理世界的独立基础模型|MEET2026

自变量王潜:具身智能是物理世界的独立基础模型|MEET2026

自变量王潜:具身智能是物理世界的独立基础模型|MEET2026 一水 2025-12-21 19:11:12 ...