构建知识图谱的电影问答系列-目录学习笔记

学习教程:

https://www.jiqizhixin.com/articles/2018-06-20-4
https://github.com/IrvingBei/simple_movie_qa_with_KG
https://blog.csdn.net/xyz1584172808/article/details/89319129
300行python代码从零开始构建基于知识图谱的电影问答系统-目录

学习笔记

系统是用python实现的,整个搭建过程要自己先跑一遍
网络爬虫
自然语言处理
知识图谱
图数据库
机器学习
sklearn
查询答案
在知道用户想问啥的时候,我们就可以根据用户的要求来查询,得到答案返回,这部分主要是如何对图数据库进行操作。

一.准备工作

1.实验环境的搭建

(1)python环境的安装


image.png

确实是出错了

14:26:23 jiarongf@172.16.10.223:/data1/jiarongf/Knowledge_Graph/movies_questions
$
ls
requirements.txt
14:28:04 jiarongf@172.16.10.223:/data1/jiarongf/Knowledge_Graph/movies_questions
$
pip install -r requirements.txt
ERROR: Invalid requirement: '<!DOCTYPE html>' (from line 7 of requirements.txt)
14:28:14 jiarongf@172.16.10.223:/data1/jiarongf/Knowledge_Graph/movies_questions
$

所以就先去安装webpy库

14:28:14 jiarongf@172.16.10.223:/data1/jiarongf/Knowledge_Graph/movies_questions
$
pip install web.py
WARNING: Keyring is skipped due to an exception: Failed to unlock the collection!
Collecting web.py
  Downloading web.py-0.62.tar.gz (623 kB)
     |████████████████████████████████| 623 kB 8.3 kB/s
  Installing build dependencies ... done
  Getting requirements to build wheel ... done
    Preparing wheel metadata ... done
Collecting cheroot
  Downloading cheroot-8.4.8-py2.py3-none-any.whl (93 kB)
     |████████████████████████████████| 93 kB 13 kB/s
Collecting jaraco.functools
  Downloading jaraco.functools-3.0.1-py3-none-any.whl (6.7 kB)
Requirement already satisfied: more-itertools>=2.6 in /data/anaconda3/lib/python3.7/site-packages (from cheroot->web.py) (8.2.0)
Requirement already satisfied: six>=1.11.0 in /data/anaconda3/lib/python3.7/site-packages (from cheroot->web.py) (1.14.0)
Building wheels for collected packages: web.py
  Building wheel for web.py (PEP 517) ... done
  Created wheel for web.py: filename=web.py-0.62-py3-none-any.whl size=78567 sha256=0f35123e7c3bcd468fa29770894ee2c6118069810f4d6561028bfbe197c25669
  Stored in directory: /home/jiarongf/.cache/pip/wheels/17/6d/f8/667591be4296666a2c5a3ed45bf15c044c26b85804217db0c2
Successfully built web.py
Installing collected packages: jaraco.functools, cheroot, web.py
Successfully installed cheroot-8.4.8 jaraco.functools-3.0.1 web.py-0.62
14:33:25 jiarongf@172.16.10.223:/data1/jiarongf/Knowledge_Graph/movies_questions
$

因为这里作者说需要python2,可能是因为服务器上有2所以安装成功了,,,服务器是27
执行中才发现其实那个作者说的那个pip的文件其实就是点开那个依赖库显示的内容,然后把他们几行复制下;来,写到一个txt文件中,命名为Depandency_library.txt
再去执行


image.png

image.png

那个是pip网络的问题可以加一个豆瓣的镜像

mkdir ~/.pip
cd ~/.pip
touch pip.conf

vi pip.conf
[global]
index-url = http://pypi.douban.com/simple
[install]
trusted-host = pypi.douban.com

cat pip.conf

接着在去刚刚的目录中重新执行pip install
速度果然快了很多但还是报错了,
报错“:

error: command 'gcc' failed with exit status 1
  ----------------------------------------
  ERROR: Failed building wheel for pandas

但是就是还在安装,一会再接着看看吧,时间漫长的。
报错实在是太多了,还是把依赖库一个一个安一下吧

image.png

pip install pandas成功
pip install py2neo==4.2.0成功
pip install jieba==0.39成功
pip install scikit_learn==0.20.3
image.png

那么查一下怎么安不上:教程:scikit-learn安装步骤_Work hard-CSDN博客
这里说前提条件是:
image.png

pip list 查看python已经安装的库
但是其中的库都满足条件了,
image.png

果然还需要安装很多依赖库:教程:scikit-learn安装方法详解_许野平的博客-CSDN博客
但是检查一遍所有安装的库发现,也有这个包matplotlib

所以重新安装一下

15:18:33 jiarongf@172.16.10.223:/data1/jiarongf/Knowledge_Graph/moviestions
$
pip3 install -U scikit-learn
Looking in indexes: http://pypi.douban.com/simple
WARNING: Keyring is skipped due to an exception: Failed to unlock thlection!
Collecting scikit-learn
  Downloading http://pypi.doubanio.com/packages/f4/cb/64623369f348e9ff898a57ac7c91ed4921f228e9726546614d63ccb/scikit_learn-0.23.2-cp37-cmanylinux1_x86_64.whl (6.8 MB)
     |████████████████████████████████| 6.8 MB 787 kB/s
Requirement already satisfied, skipping upgrade: numpy>=1.13.3 in /dnaconda3/lib/python3.7/site-packages (from scikit-learn) (1.19.1)
Requirement already satisfied, skipping upgrade: threadpoolctl>=2.0./data/anaconda3/lib/python3.7/site-packages (from scikit-learn) (2.1
Requirement already satisfied, skipping upgrade: joblib>=0.11 in /daaconda3/lib/python3.7/site-packages (from scikit-learn) (0.14.1)
Requirement already satisfied, skipping upgrade: scipy>=0.19.1 in /dnaconda3/lib/python3.7/site-packages (from scikit-learn) (1.5.2)
Installing collected packages: scikit-learn
  Attempting uninstall: scikit-learn
    Found existing installation: scikit-learn 0.20.3
    Uninstalling scikit-learn-0.20.3:
      Successfully uninstalled scikit-learn-0.20.3
Successfully installed scikit-learn-0.23.2
15:25:29 jiarongf@172.16.10.223:/data1/jiarongf/Knowledge_Graph/moviestions
$

好了好了终于把环境搭好了
(2)知识图谱基本介绍
知识图谱有了一个初步的印象,其实质就是利用三元组来表示实体的一些信息,而关于这些信息的存储,一种是基于RDF的存储;另一种是基于图数据库的存储。而这里采用的是图数据库存储,主要是图数据库较简单,还直观,选择了图数据库neo4j。
关于这个数据库的安装,请参照关于ubuntu下neo4j的安装与使用不管你是在win下安装,还是linux下安装都是可以的,因为这些坑我都踩过了,
好了,既然要安装这个图数据库,,那就先跳转到那个链接去下载

图数据库neo4j

https://pan.baidu.com/s/1jIDdhbw
下载后传到服务器上


15:25:29 jiarongf@172.16.10.223:/data1/jiarongf/Knowledge_Graph/moviestions
$
ls
Dependency_library.txt  neo4j-community-3.0.7-unix.tar.gz
15:46:08 jiarongf@172.16.10.223:/data1/jiarongf/Knowledge_Graph/movies_questions
$
image.png

image.png

image.png

却发现那个本地打不开,,搜索之后说缺少组件,安装一下windows10系统添加IIS组件-百度经验 (baidu.com)
本地http://localhost打不开怎么办-百度经验 (baidu.com)
Windows10如何安装IIS(互联网信息服务)-百度经验 (baidu.com)
locals打不开,然后就各种试,
windows10系统安装IIS信息服务的方法-系统城 (xitongcheng.com)
这个比较好,
这几个都是互补的要联合看。
win10 配置(开启) iis-百度经验 (baidu.com)
win7新建IIS站点提示无法启动world wide web publishing服务怎么办-系统城 (xitongcheng.com)
IIS网站部署步骤以及常见异常解决方案 - Merryan - 博客园 (cnblogs.com)

总结

1.首先在控制面板的程序的启用或关闭windows功能那里已经把所有的都打开了,
控制面板--程序---启用或关闭windows功能--


image.png

image.png

image.png

这些两个图片上红色框里面的小的文件都勾上,,然后确定,等待一段时间,等全部都装好了,,,关闭)
2.我的电脑--右键--管理--

image.png

image.png

然后点网站
image.png

看一下这个是不是已启动,如果是已启动表明可以登录localhost,,浏览器输入localhost就可打开
image.png

但是其中有很多错误,
比如(1)
image.png

这俩有问题,,就去搜,,发现只要启动word wide web发布服务就可,,还是右键我的电脑--管理---服务
image.png

右键启动,,如果失败,可能报错是依赖服务或组无法启动。报错说依赖服务或组无法启动,,那就去看看什么依赖服务,,鼠标放在world wide web发布服务右键--属性--依存关系---发现是HTTP service 和windows process activate service这两个,,那这两个打开就行(其实只需要打开后面这个就行)
image.png

也就是上图,,右键启动,如果这个无法启动,报错说终结点映射器中没有更多的终结点可用,,那么此时删除电脑上的金山毒霸,重启机子,再打开看,就可以启动成功了,然后再去看world wide web发布服务也是打开了,,设置一个启动类型是自动,就可以自动打开(右键--启动类型--自动),接着再去看那个默认站点,发现也是可用了,然后打开浏览器,输入localhost可以打开了,,,可能我表述的不清晰,,这一块这些问题我都遇到过了,都是慢慢解决的,试错的时间大概是四五个小时吧,是菜鸡,,所以我写的有什么不明白的可以直接问~
好了这个东西终于搞好了,,接着安装neo4j
但是发现还是
image.png

IIS网站部署步骤以及常见异常解决方案 - Merryan - 博客园 (cnblogs.com)
那我也重新按这个教程添加一个网站
image.png

还是不行,发现了官网Knowledge Base - Neo4j Graph Database Platform
查看jdk
image.png

neo4j 开启远程web访问7474端口 以 用浏览器打开远程neo4j的web控制台界面_weixin_33856370的博客-CSDN博客
按1去改,首先去掉#,开放防火墙端口7474入站端口、7687出站端口
Win10系统如何在防火墙里开放端口-百度经验 (baidu.com)
neo4j从安装到远程访问一气呵成_周周的专栏-CSDN博客
Neo4j在linux环境下的安装_hdd2803的博客-CSDN博客
直接让代老师下载好了,登录以后改密码
image.png

来认识一下这个界面吧
教程:Neo4j在linux环境下的安装_hdd2803的博客-CSDN博客
image.png

python的开发环境有了,知识图谱的存储环境有了,就差数据了

2、实验数据

完整跑一遍code.py代码发现报错了

ls
code.py  preprocess_data.py  query.py                    question_template.py  templates
data     __pycache__         question_classification.py  static                test.py
18:23:26 jiarongf@172.16.10.223:/data1/jiarongf/Knowledge_Graph/movies_questions/simple_movie_qa_with_KG-master/movie_QA_with_KQ
$
python code.py 127.0.0.1:1234
Building prefix dict from the default dictionary ...
Loading model from cache /tmp/jieba.cache
Dumping model to file cache /tmp/jieba.cache
Dump cache file failed.
Traceback (most recent call last):
  File "/data1/jiarongf/anaconda3/lib/python3.7/site-packages/jieba/__init__.py", line 152, in initialize
    _replace_file(fpath, cache_file)
PermissionError: [Errno 1] Operation not permitted: '/tmp/tmp1rgl8suk' -> '/tmp/jieba.cache'
Loading model cost 0.619 seconds.
Prefix dict has been built succesfully.
create question object finish!
create question object finish!
http://127.0.0.1:1234/


解决错误:PermissionError: [Errno 1] Operation not permitted: '/tmp/tmpg255ml7f' -> '/tmp/jieba.cache' - fnangle - 博客园 (cnblogs.com)
原因:
是由于jieba在系统根目录下创建缓存文件/temp/jieba.cache来存储模型,但用户权限不够。
一般是在服务器上,因为不是root权限跑代码,所以出现此错误

image.png

image.png

然后改成自己的目录一定记得加引号,可以了,

18:43:12 jiarongf@172.16.10.223:/data1/jiarongf/Knowledge_Graph/movies_questions/simple_movie_qa_with_KG-master/movie_QA_with_KQ
$
python code.py 127.0.0.1:1234
Building prefix dict from the default dictionary ...
Dumping model to file cache /data1/jiarongf/Knowledge_Graph/jieba.cache
Loading model cost 0.604 seconds.
Prefix dict has been built succesfully.
create question object finish!
create question object finish!
http://127.0.0.1:1234/

但是这个网址还是打不开
然后隔了一天才知道,原来是账号密码已经改了,,,然后隔了一天得知,这个网站要改成自己服务器的,这样就可以直接登录了,

2.实验数据以及neo4j语法学习在下一篇笔记

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,189评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,577评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,857评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,703评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,705评论 5 366
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,620评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,995评论 3 396
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,656评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,898评论 1 298
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,639评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,720评论 1 330
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,395评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,982评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,953评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,195评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,907评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,472评论 2 342

推荐阅读更多精彩内容