一、 数据获取
数据获取可以使用python+selenium来进行京东商品数据的爬取,也可以使用八爪鱼工具进行数据采集。采集的数据如图1-1所示。
图1-1部分数据
二、 数据处理
本项目中,根据三元组抽取实体与关系,导入neo4j数据库生成初步的知识图谱,所以先要把表格数据转换为三元组,存储于文本文档中(比如:美的KFR-35GW/WDAA3@,价格,1899.00)。项目目录如图2-1所示。
图2-1项目目录
已经爬取的表格形式的数据,可以用python的openpyxl包提供的方法来处理。
处理思想:按行读取,将每行的第一格(商品名称)存至变量,将本行其余的每一个单元格前面加上变量的值存入csv文件中。
处理步骤:
1、在Python脚本中导入openpyxl模块。
2、调用openpyxl.load_workbook()功能获取一个Workbook对象。
3、读取active成员变量或调用get_sheet_by_name()工作簿方法获取一个Worksheet对象。
4、使用索引或通过row和column关键字参数调取Worksheet对象中的cell()表方法获取一个Cell对象。
5、读取Cell对象的value属性,即可获得单元格的内容。
然后将处理过后的文件直接使用记事本打开,使用编辑中的替换功能就可以完成处理。先将商品名称:替换为空,再将剩下的中文冒号替换为英文逗号。最终如图2-2所示。
图2-2处理后的数据
接下来对总的三元组文件进行抽取实体和关系操作。如图2-3,图2-4所示。
图2-3实体
图2-4关系
三、 环境搭建
Neo4j安装
1、在neo4j官网下载社区版zip压缩包文件,然后解压文件。
2、在win10的此电脑-属性-高级系统设置-环境变量中,添加系统变量NEO4J_HOME,路径为安装包所在的路径如D:\\studyofpostgraduate\\
neo4j-community-4.0.5-windows\\neo4j-community-4.0.5。
3、再配置Path路径,系统变量的Path中添加一行%NEO4J_HOME%\\bin。
4、管理员身份启动命令行输入neo4j.bat console测试安装结果。
5、安装成功后在浏览器中输入http://localhost:7474,以图形界面查看图数据库,用户名和密码一般都默认为neo4j,首次登陆后会让你修改密码。
6、管理员身份启动命令行输入neo4j install-service注册neo4j为计算机的服务项,输入neo4j start启动服务。
//由于之前JDK的版本是1.8不能匹配最新版本的neo4j,因此需要更新一下JDK的版本,选择了JDK11,步骤为先卸载了之前的,然后重新安装了新的,这里直接安装在原路径就不需要再重新设置环境变量了。
四、 节点和关系的导入
1、neo4j stop #先停止neo4j服务
2、然后删掉安装目录neo4j-community-3.5.5\\data\\databases里的默认数据库
3、neo4j-admin import –database graph.db –nodes “D:\\entity.csv” –relationships “D:\\relationship.csv” #注意文件路径
4、neo4j start #重启数据库
5、在http://localhost:7474图形界面输入match(n) return n #查询所有节点
最终如图4-1,4-2所示。
图4-1关系和结点
五、 遇到的问题和解决方法
1、JDK版本与图数据库版本不匹配。升级JDK解决。
2、图数据库的图形界面无法访问。开启服务,等待一段时间解决。
3、Database ‘graph.db’ is unavailable. Run :sysinfo for more info。数据库graph有错误,关掉服务,删掉数据库,重新导入节点和关系解决。
4、运行neo4j.bat console出错,错误为Neo4j Server shutdown initiated by request。意思是说已经初始化完成,再继续初始化就会报错,即使视同install-service或者stop再start都不管用,甚至restart也不可以。那么这个时候只能将%NEO4J_HOME%\\data\\databases里面的所有文件(包括一些初始化文件和图形文件)都删除掉,然后再运行就OK了。
5、Python一些依赖包没有安装导致运行出错。找到缺少的依赖包进行安装得以解决。
六、 知识图谱的应用领域
知识图谱除了应用于搜索引擎做语义检索以外,还有非常多的应用场景,如智能问答客服、金融风控、人物关系图谱、决策辅助、智能制造等。贝壳借助知识图谱应用于他们的贝壳找房系统中,以提升对用户的搜索意图的理解、提升向用户推荐相关房子的智能推荐能力以及搭建智能问答系统来辅助经纪人回答用户有关房子的问答。阿里巴巴将知识图谱作为阿里小蜜机器人的知识库的一部分,阿里小蜜是一个基于大数据和人工智能技术的智能化、体系化客服系统。美团将知识图谱技术应用于他们的 APP 中,他们使用基于知识图谱的问答(KBQA)来完成和用户之间的搜索交互任务,比如帮助用户找到合适的餐饮门店、商超、购买电影票以及预定酒店服务。