因为研究方向是知识图谱,就有兴致想要构建一个简单的知识图谱,就在网上查找了一下,参考了neo4j搭建简单的金融知识图谱的思想,就着手从零开始构建。

1、首先就要考虑数据的获得,因为之前没有接触过爬虫之类,参考这篇,就仅仅采用简单的requests+正则表达式,爬取起点中文网的全部作品中的作者,作者ID,作品,作品ID,标签,标签ID,子标签以及作品完成与否这些数据,在这里参考了网上众多的爬虫代码,在这里,后期可以进一步扩展,点进作者页面再进行爬取更多的信息,在此,爬虫的知识太少,只会爬类似页面的信息,比如,1到20页的信息,通常在网址上有不同,很可能是数字规律性的改变,但是,对于起点中文网的作者网址,唯一找到的规律就仅仅只是后面是作者的ID,至于两者怎么结合,怎么爬取,有可能技术不精,还没弄出来,以后可在此增加。

2、获得了这些csv,又出现了问题,就是打开这些csv,竟然乱码了,在网上查找了一番,发现了一个有效的方法,先建一个excel,然后,点击数据,点击自文本,然后,再把想要转化的文本导入,文件原始格式改为简体中文,后面直接就点下一步,再打开csv,就不会乱码了,解决了乱码下一步就是导入neo4j。

这里的au_bo就是作者与小说的关系,其中就包含:START_ID    :END_ID    relation    :TYPE,作者ID和小说ID,两者之间的关系,TYPE可以和关系一样,毕竟只是一个标记。
author就是作者信息,包含index:ID    name    :LABEL,作者ID和作者名字,标签,在这里就很遗憾,没有能够多弄几个数据,以后可以增加。

bo_co这一个还没有实验。

book就是小说信息,包含小说ID和小说名字,标签。

book_pro就是小说的标签,包含小说ID和标签ID,以及两者关系,TYPE,在这里,后来想了想感觉可以不用关系模式,可以合并在book中,后期再试试。

pro1是大标签,大标签ID和大标签的名字,LABEL,比如:1,仙侠之类的

pro2是小标签,小标签ID和小标签的名字,LABEL,比如仙侠中包含了很多小的标签

t1_t2就是大标签与小标签的关系,概念属于。

3、导入neo4j,参考的是这里

首先,为了不写import路径,就选择了简单的方法,在neo4j的bin下,创建一个importdata,然后将包含CSV的文件夹,放在该处,然后,再在cmd中导入,

neo4j-admin import --mode=csv --database=novel.db --nodes importdata\novel\author.csv --nodes importdata\novel\book.csv --nodes importdata\novel\pro1.csv --nodes importdata\novel\pro2.csv --relationships importdata\novel\au_bo.csv --relationships importdata\novel\book_pro.csv --relationships importdata\novel\t1_t2.csv

我的数据库名字是novel.db,然后其中author,book,pro1,pro2这些csv就是节点,au_bo,book_pro,t1_t2就是其中两者的关系

在这里,碰到了问题,就是报错,没有这些csv,问题就在于需要进入neo4j文件下的bin中,在输入上述命令

另一个错误,就是导入过程中的错误,这就在于这些爬下来的数据,不知道为什么有重复又有遗漏的数据,那么就涉及数据清洗,这里还没有仔细研究,后期再研究研究

因为,数据不是很多,就采用人工校对,在关系中的节点必须要存在这些节点,不幸的我,200数据,在仔细筛选中,只剩下130。

每次导入必须把原错误导入的文件夹删除,在neo4j的data的databases中删除。

同时还有个关键,查看什么图谱,必须将neo4j的conf中neo4j.conf

dbms.active_database=novel.db

后面修改为你所需要查看的数据库,此处我的就是novel.db

4、问题众多啊,成功导入后,在cmd中输入neo4j.bat console,然后,在浏览器中输入http://localhost:7474/,就可以看到,我的竟然又乱码了,果然在前面的修改csv,有问题,

就可以将csv用记事本打开,然后,另存为,果然编码是ANSI,在这里需要改为UTF-8,然后,修改完就正确了。

很开心,后面再增加更多内容

简单的知识图谱,neo4j+python的更多相关文章

  1. [知识图谱]Neo4j知识图谱构建(neo4j-python-pandas-py2neo-v3)

    neo4j-python-pandas-py2neo-v3 利用pandas将excel中数据抽取,以三元组形式加载到neo4j数据库中构建相关知识图谱 Neo4j知识图谱构建 1.运行环境: pyt ...

  2. 《利用Python进行数据分析》自学知识图谱-导航

    项目简介 Project Brief <利用Python进行数据分析-第二版>自学过程中整理的知识图谱. Python for Data Analysis: Data Wrangling ...

  3. Task1:知识图谱介绍(1天)

    一.知识图谱简介 "知识图谱本质上是语义网络(Semantic Network)的知识库".但这有点抽象,所以换个角度,从实际应用的角度出发其实可以简单地把知识图谱理解成多关系图( ...

  4. 1. 通俗易懂解释知识图谱(Knowledge Graph)

    1. 通俗易懂解释知识图谱(Knowledge Graph) 2. 知识图谱-命名实体识别(NER)详解 3. 哈工大LTP解析 1. 前言 从一开始的Google搜索,到现在的聊天机器人.大数据风控 ...

  5. 知识图谱和neo4j的基本操作

    一.知识图谱的简介 1.知识图谱是什么 知识图谱本质上是语义网络(Semantic Network)的知识库 可以理解为一个关系图网络. 2.什么是图 图(Graph)是由节点(Vertex)和边(E ...

  6. 知识图谱实战开发案例剖析-番外篇(1)- Neo4j是否支持按照边权重加粗和大数量展示

    一.前言 本文是<知识图谱实战开发案例完全剖析>系列文章和网易云视频课程的番外篇,主要记录学员在知识图谱等相关内容的学习 过程中,提出的共性问题进行展开讨论.该部分内容原始内容记录在网易云 ...

  7. springboot2.0+Neo4j+d3.js构建知识图谱

    Welcome to the Neo4j wiki! 初衷这是一个知识图谱构建工具,最开始是对产品和领导为了做ppt临时要求配合做图谱展示的不厌其烦,做着做着就抽出一个目前看着还算通用的小工具 技术栈 ...

  8. Python知识图谱

    一.Python全栈图谱 2.Python语言高级 Python 全栈工程师前端 Python全栈工程师后端 Python Linux运维自动化开发 Python KaliLinux信息安全开发和使用 ...

  9. [知识图谱]利用py2neo从Neo4j数据库获取数据

    # -*- coding: utf-8 -*- from py2neo import Graph import json import re class Neo4jToJson(object): &q ...

随机推荐

  1. hello1

    1:选择hello1文件夹并单击“打开项目”.展开“Web页”节点,然后双击该index.xhtml文件以在编辑器中查看它. 该index.xhtml文件是Facelets应用程序的默认登录页面.在典 ...

  2. CF 3-6 2级组 D题 STRESSFUL TRAINING 紧张的比赛

    题目大概是这样的: 给出一个数列a[n] ,对于每一个数 a [i] 来说 都会在 T - - 时 -= b[i] 每个数都在任何时刻不能小于0 你可以在每次T - - 之前时给 一 个 a[i] + ...

  3. day16_python_1124

    圈子 圈子是互相影响,走着走着就散了. 道不同不相为谋,与人的认知相关. 圈子如何正向引导? 圈子能决定你的人生走向. 圈子能决定你的格局. 01 昨日内容回顾 序列化模块 将一个数据结构 ----& ...

  4. 记一次前端css样式的三角形的应用

    1)面试题是这样的要求用css实现 <section> <div></div> <div></div> </section> & ...

  5. Cookie中的sessionid与JSONP原理

    一.首先说明一下cookie中的sessionid的作用. 1.cookie只是一些文本内容,多是键值对的形式,是请求头中的一部分 2.http是无连接的 知道这两点,就可以很容易的理解session ...

  6. python笔记8-列表list操作、多维数组

    #!/usr/bin/python #python里面有个这个话,代表在linux下运行的时候#去哪个目录下找python的解释器,在windows上运行不用写# coding:utf-8# __*_ ...

  7. Sql Server索引重建

    公司线上数据有几千万数据,有时候索引碎片会导致索引达不到我们的预期查询效率,这个时候将索引重建将会提升一定效率,不过重建的时候一定得晚上用户少的时候,索引重建需要一定时间. 直接贴自动重建索引脚本吧 ...

  8. 使用Sublime Text 3进行Markdown 编辑+实时预览

    这种做法可能会对你的磁盘IO造成一小部分性能负担,但负面影响足以忽略. 另外,由于这种频率的读写会被磁盘缓存接管,不必担心磁盘寿命的影响. 对于刚安装好的Sublime Text,我们需要安装一个软件 ...

  9. 03_安装vsftp服务器

    1 安装vsftpd组件 [root@bogon ~]# yum -y install vsftpd 安装完后,有/etc/vsftpd/vsftpd.conf 文件,是vsftp的配置文件. 2 添 ...

  10. CSS精简工具——除去多余的css样式

    有时候开发网页中在改版之后,存在很多无意义的样式,对于后期的管理和维护很不友好. 如果手动去删除,很可能会导致出现更混乱的问题. 最近找到一个Chrome插件,CSS remove and combi ...