从无到有构建一个电影知识图谱,并基于该KG,开发一个简易的KBQA程序。
如果对相关概念不是很了解,建议可以先看看该代码配套的知乎专栏系列文章。
pip install -r requirements.txt
。这里提供两种运行demo的方式:
进入项目根目录
docker build -t kbqa:V0.1 .
docker run -p 80:80
打开浏览器,输入localhost,即能看到demo界面。
其实就是把Dockerfile里面的命令直接在本地环境运行(记得修改configuration/fuseki_conf.ttl中的文件路径)。
第一步:安装依赖库
pip3.6 install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple/
第二步:将nt格式的三元组数据以tdb进行存储(怎么得到kg_demo_movie.nt文件请参考实践篇二)。
/kbqa/jena/apache-jena-3.5.0/bin/tdbloader --loc="path_of_tdb" "path_of_kg_demo_movie.nt" # 自行指定tdb的路径,记得和configuration/fuseki_conf.ttl中一致
window环境是使用/kbqa/jena/apache-jena-3.5.0/bat/tdbloader.bat
第三步:设置环境变量(windows如何设置请自行查询;也可以不设置streamlit端口,使用默认端口,第五步启动后会提示服务的端口)
export LANG=C.UTF-8 LC_ALL=C.UTF-8 STREAMLIT_SERVER_PORT=80 FUSEKI_HOME=/kbqa/jena/apache-jena-fuseki-3.5.0
第四步:运行fuseki(进入apache-jena-fuseki-3.5.0子目录,windows运行fuseki-server.bat)
./fuseki-server
第五步:运行web服务。
streamlit run streamlit_app.py --server.enableCORS=true
打开浏览器,输入指定的地址即可。
包含ER图模型文件和创建数据库、表,插入所有数据的sql文件。用户可以直接使用sql文件导入数据到mysql中。
通过protege构建的本体,用户可以直接用protege打开,查看或修改。
根据d2rq mapping language编辑的映射文件,将数据库中的数据映射到我们构建的本体上。
利用d2rq,根据mapping文件,由Mysql数据库转换得到的RDF数据。
fuseki server配置文件,指定推理引擎,本体文件路径,规则文件路径,TDB路径等
规则文件,用于基于规则的推理。
web demo文件,基于streamlit库。
我创建了微信群,给大家提供一个交流的渠道。由于各种原因,我可能无法及时回答大家的问题;同时,个人的力量是渺小的,我对各位遇到的问题也不一定都了解,因此希望大家通过这个群能解决自己遇到的问题。群主题不局限于KG,也包括NLP的一些话题。公众号也会提供一些相关的资源和学习材料。
公众号:尘世美小茶馆(simmer_teahouse)